C modeling ==== Characteristics of modeling ---- We do two calculations on a model with plane constraints (C_PLAN): * Elasto-plastic calculation: we load up to :math:`p=243\mathit{MPa}`; * Elasto-plastic calculation: a calculation is made by piloting beyond the limit load; Characteristics of the mesh ---- We use the same mesh as modeling B, which includes 315 TRIA6 and 686 nodes. Calculation with limit load ---- "Manual" detection of the limit load ~~~~ Start the AsterStudy module. Then in the left column, click on the Case View tab. We define the command file for the calculation case (right click on CurrentCase and choose Add Stage). Note: Add commands via Menu Commands → Show All. The command file is almost identical to the previous modeling. The only difference is that here we propose to activate the automatic management of the list of moments, that is to say that the temporal discretization is entirely managed by STAT_NON_LINE. * Read the mesh in MED format: Command LIRE_MAILLAGE. * Orient the normal of the edge on which the traction load will be applied: Mesh Category/Command MODI_MAILLAGE/ORIE_PEAU_2D by assigning the top group in GROUP_MA. We keep the same mesh name when using reuse. * Define the finite elements used: Command AFFE_MODELE to assign the phenomenon MECANIQUEet 2D plane stress modeling (C_PLAN) to all elements. * Read the traction curve provided in the file forma03c.21 Command LIRE_FONCTION. * Define material: Command DEFI_MATERIAU/ELAS and TRACTION. * Assign material: Command AFFE_MATERIAU. * Assign conditions to kinematic boundaries: Command AFFE_CHAR_CINE/MECA_IMPO for symmetry on the quarter plate (the left and bottom groups). * Affect the load: Command AFFE_CHAR_ MECA/FORCE_CONTOUR for the force distributed over the top of the plate. The easiest way is to define a unit load (FY=1.0), which will then be multiplied by a ramp function over time. * Create a linear ramp function :math:`f=t` to multiply the unit mechanical load: Command DEFI_FONCTION. For example, it varies between :math:`(\mathrm{0.,}0.)` and :math:`(\mathrm{1000.,}1000.)` * **Activate automatic time step management** with the command DEFI_LIST_INST/METHODE =' =' AUTO 'and DEFI_LIST with PAS_MINI =1.e-6, PAS_MAXI =100 and VALE =( 0., 50., 243) which gives the three mandatory moments of passage of the automatic list. * Calculate the evolution of elasto-plastic: Command STAT_NON_LINE/COMPORTEMENT//RELATION =' VMIS_ISOT_TRAC 'with the list of times defined previously. It is first proposed to determine the limit load "by hand". The limit load corresponds to the moment when a Gauss point reaches the equivalent Von Mises value of around :math:`\mathrm{270MPa}`. Through the analytical calculation (see § :ref:`2.2 `), an upper bound of the load was determined which causes plasticization at this limit value of :math:`\mathrm{270MPa}` (around the hole). To do this, proceed as in the previous modeling but do a loading clear of :math:`p\mathrm{=}\mathrm{230MPa}`. Initially, a value of :math:`p\mathrm{=}\mathrm{245MPa}` is a good reference. We see that beyond a certain load, the tangent matrix becomes singular: this is the sign that we have reached the limit load and therefore a horizontal tangent on the traction curve. The code will attempt to cut the time step to go beyond this limit point. By dichotomy (cutting the time step), it will approach the limit loading value. According to the meshes, we find only :math:`{p}_{\text{lim}}\mathrm{\approx }\mathrm{243MPa}`. The cause of the difficult convergence is indeed the proximity of the limit load. That is why the time step must be subdivided. We can see this by the load value and by the stress-displacement curve at the top of the structure: we can see that for :math:`p\mathrm{=}240\mathit{MPa}` the limit load is not completely reached (no horizontal asymptote) but that we are getting closer to it. The isovalues of :math:`p` show a zone of plastic deformation concentration (similar to a sliding line) inclined by approximately :math:`53°` with respect to the vertical, ranging from point :math:`B` to the right edge. This corresponds quite well to the theory that the sliding lines are inclined by :math:`\mathrm{54,44}°` (see [:ref:`bib2 `]). Here, of course, we have an approximation of the sliding line, which in theory has zero thickness. We can also record the maximum vertical displacement following :math:`Y` of the point :math:`G`. It is around :math:`\mathrm{5.7mm}`. Calculation beyond the limit load per pilot ~~~~ The best solution if one wishes to reach the limit load and even go beyond it (by solving an incremental elastoplastic problem) is to use the control of the stress imposed by the movement of a point. That's what we're offering here. For example, we can use the movement DY of the point :math:`G` to control the constraint :math:`{\sigma }_{\mathit{yy}}` imposed on :math:`\mathit{FG}`. We will increase it up to :math:`6\mathit{mm}` for example (in the previous calculation, we observed that the maximum displacement following :math:`Y` of the point :math:`G` was approximately :math:`\mathrm{5.7mm}`, :math:`\mathrm{6mm}` is therefore well beyond the limit load). We will take a coefficient equal to 1. We will therefore use a fictional time :math:`t` such as :math:`\Delta t\mathrm{=}\Delta {U}_{Y}(G)\mathrm{\times }1`. That is to say, the fictional time varies here between :math:`0` and :math:`6s` (to represent a PilotageDY displacement of :math:`G` between :math:`0` and :math:`6\mathrm{mm}`). Note: as an alternative to this type of calculation, a method for calculating the limit load is available in Code_Aster (in :math:`\mathrm{3D}`, axisymmetric and plane deformation): it uses a Norton-Hoff material, almost incompressible elements and direct methods of limit analysis providing a framework for the limit load (cf. documents [:ref:`U2.05.04 `] and [:ref:`R7.07.01 `]). Start the AsterStudy module. Then in the left column, click on the Case View tab. We define the command file for the calculation case (right click on CurrentCase and choose Add Stage) Note: Add commands via Menu Commands → Show All. The main steps for creating and launching the calculation case are as follows: * Read the mesh in MED format: Command LIRE_MAILLAGE. * Orient the normal of the edge on which the traction load will be applied: Mesh Category/Command MODI_MAILLAGE/ORIE_PEAU_2D by assigning the top group in GROUP_MA. We keep the same mesh name when using reuse. * Define the finite elements used: Command AFFE_MODELE to assign the phenomenon MECANIQUEet 2D plane stress modeling (C_PLAN) to all elements. * Read the traction curve provided in the file forma03c.21 Command LIRE_FONCTION. * Define material: Command DEFI_MATERIAU/ELAS and TRACTION. * Assign material to all elements: Command AFFE_MATERIAU. * Assign conditions to kinematic boundaries: Command AFFE_CHAR_CINE/MECA_IMPO for symmetry on the quarter plate (the left and bottom groups). * **Affect load**: Command AFFE_CHAR_ MECA/FORCE_CONTOUR: Command/for the force distributed across the top of the plate. We define a unit load (FY=1.0) that will be controlled in STAT_NON_LINE. * **Create time discretization** using commands DEFI_LIST_REEL (10 time steps up to :math:`t=4s`) and DEFI_LIST_INST by activating the automatic cutting of the time step: ECHEC/EVENEMENT =' ERREUR 'and ACTION =' DECOUPE'). * **Change the load type (distributed force)**: in the STAT_NON_LINE/EXCIT command, use TYPE_CHARGE =' FIXE_PILO 'for the force applied. And activate the steering: keyword factor PILOTAGE: TYPE =' DDL_IMPO '. COEF_MULT =1.0. GROUP_NO ='G'. NOM_CMP ='DY'. * Calculate the evolution of elasto-plastic: Order STAT_NON_LINE/COMPORTEMENT/RELATION =' VMIS_ISOT_TRAC '. Observe in the "message" file the value of the parameter ETA_PILOTAGE, :math:`\mathrm{\eta }`. To know the load resulting from piloting, all you have to do is do :math:`{F}_{\mathit{pilote}}=\mathrm{\eta }\times {F}_{y}` with :math:`{F}_{y}=1.0`, the unit load that is imposed. In principle, we obtain a good approximation of the limit load (by upper value) that can be compared to the analytical upper bound (:math:`243\mathrm{MPa}`). We can trace, in continuation, the resultant force-displacement curve in :math:`G` as a function of time. **Extraction of the control parameter:** * Extract the values of the parameter ETA_PILOTAGEdans the result: command RECU_FONCTION/NOM_PARA_RESU on the parameter ETA_PILOTAGE. * Print function :math:`\text{ETA\_PILOTAGE}\mathrm{=}f(t)`: Command IMPR_FONCTION. With Salome, we can visualize the deformation, the stress isovalues :math:`\mathrm{SIYY}` and the cumulative equivalent plastic deformation. At time 6, we can notice, on the cumulative plastic deformation isovalues, the location of the deformations in the vicinity of :math:`B`. Tested sizes and results ---- The value of the limit load for the elastoplastic calculation without control is tested, in relation to the analytical solution of the minimum limit: .. csv-table:: "**Component**", "**Reference Type**", "**Value**", "**Tolerance**" "SIGM_NOEU — :math:`\mathit{SIYY}` in :math:`G` "," ANALYTIQUE "," :math:`243\mathit{MPa}` "," 1.00%" We test the value of the limit load for the elastoplastic calculation with control (imposed vertical displacement of :math:`6\mathit{mm}` at the point :math:`G`), compared to the analytical solution of the minimum limit, of the solution without control: .. csv-table:: "**Component**", "**Reference Type**", "**Value**", "**Tolerance**" "SIGM_NOEU — :math:`\mathit{SIYY}` in :math:`G` "," ANALYTIQUE "," :math:`243\mathit{MPa}` "," 1.00%" "SIGM_NOEU — :math:`\mathit{SIYY}` in :math:`G` "," AUTRE_ASTER "," :math:`243.05\mathit{MPa}` "," 0.30%" "ETA_PILOTAGEen INST =6"," ANALYTIQUE "," :math:`243\mathit{MPa}` "," 1.00%"