Operands ==== Keyword MAILLAGE ---- MAILLAGE is the name of the mesh associated with the study on which the finite elements are assigned. note For axisymmetric models, the axis of revolution is axis :math:`Y` of the mesh. The whole structure should be meshed in :math:`X\ge 0`. The :math:`{Ox}` axis therefore designates the radial direction. The components of the calculated fields will therefore be: :math:`X` for the direction radial, :math:`Y` for the axial direction and :math:`Z` for the orthoradial direction (circumferential). Keyword AFFE ---- The AFFE keyword defines the types of finite elements that will be affected on the entities of selected meshes. For each occurrence, a model is specified. note Remember that we apply the overload rule (see [:ref:`U1.03.00`]): * assignments are made by superimposing the effects of the different keywords * in case of conflict, the last keyword entered prevails over the previous ones. The entities in the mesh are specified by the keyword "TOUT = 'OUI '"which affects the totality mesh cells and "GROUP_MA = g_mail" which assigns to a list of mesh groups. The type of finite element is specified by the following keywords: * PHENOMENE: modelled physical phenomenon (associated conservation equation) * MODELISATION: type of interpolation and discretization * FORMULATION: type of formulation in some cases Keywords PHENOMENE, MODELISATION and FORMULATION ~~~~ The first two keywords PHENOMENE and MODELISATION are mandatory for each occurrence of the keyword factor AFFE. This pair of keywords defines the type bijectively element assigned to a mesh type. In some cases, it may be necessary to specify the FORMULATION used: * For discretization like HHO (3D_HHO, AXIS_HHO or D_PLAN_HHO), we can specify whether it is a linear ("FORMULATION =' LINEAIRE '``) or quadratic approach ("FORMULATION =' QUADRATIQUE '``), see documentation [:ref:`R3.06.14 `]; * For discretizations in fluid or in fluid-structure interaction, we can specify whether It's a formulation with three variables :math:`(U,P,\mathrm{\varphi })` with two variables :math:`(U,P)` or :math:`(U,\mathrm{\psi })`, see documentation [:ref:`R4.02.02 `]. * For second gradient models in mechanics, we can specify if it is the historical formulation of the second gradient model that should be used ("FORMULATION =' DIL '``) or the incompressible formulation ("FORMULATION =' DIL_INCO '``). notes * the PHENOMENE keyword must have the same value for all occurrences of the keyword factor AFFE. * by affecting the finite elements on the volume (and/or surface) cells of the group of elements ``g_mail``, if this group of elements also contains the edge meshes (and/or edges) of volume (and/or surface) meshes, so we also automatically assign to them the finite elements required for certain calculation options (load assignment) exteriors for example). If you need to assign models to these interfaces additional meshes, it is then appropriate to provide split meshes in the mesh: this is by example the case in fluid-structure interaction. The possible models are indicated below by listing them by "packages": **ACOUSTIQUE** ACOUSTIQUE 2D continuous media PLAN: [:ref:`R4.02.01`] ACOUSTIQUE 3D continuous media 3D: [:ref:`R4.02.01`] **THERMIQUE** THERMIQUE 2D shell COQUE_AXIS: [:ref:`R3.11.01`] COQUE_PLAN: [:ref:`R3.11.01`] THERMIQUE 2D continuous midfielders AXIS_DIAG: [:ref:`R3.06.07`] AXIS_FOURIER AXIS: [:ref:`R3.06.02`] PLAN_DIAG: [:ref:`R3.06.07`] PLAN: [:ref:`R3.06.02`] PLAN_HHO: [:ref:`R3.06.14`] AXIS_HHO: [:ref:`R3.06.14`] THERMIQUE case COQUE: [:ref:`R3.11.01`] THERMIQUE 3D continuous backgrounds 3D_DIAG: [:ref:`R3.06.07`] 3D: [:ref:`R3.06.02`] 3D_HHO: [:ref:`R3.06.14`] **MECANIQUE 2D** MECANIQUE 2D discrete elements 2D_DIS_TR 2D_DIS_T MECANIQUE 2D fluid-vibroacoustic structure 2D_FLUIDE: [:ref:`R4.02.02`] 2D_FLUI_ABSO: [:ref:`R4.02.05`] 2D_FLUI_PESA: [:ref:`R4.02.04`] 2D_FLUI_STRU: [:ref:`R4.02.02`] AXIS_FLUIDE: [:ref:`R4.02.02`] AXIS_FLUI_ABSO: [:ref:`R4.02.05`] AXIS_FLUI_STRU: [:ref:`R4.02.02`] D_PLAN_ABSO: [:ref:`R4.02.05`] MECANIQUE 2D continuous midfielders AXIS: [:ref:`R3.01.01`] AXIS_FOURIER AXIS_SI: [:ref:`R3.06.10`] C_PLAN_SI: [:ref:`R3.06.10`] C_PLAN: [:ref:`R3.01.01`] D_PLAN_SI: [:ref:`R3.06.10`] D_PLAN: [:ref:`R3.01.01`] D_PLAN_HHO: [:ref:`R3.06.14`] MECANIQUE 2D almost incompressible: [:ref:`R3.06.08`] AXIS_INCO_UP D_PLAN_INCO_UP AXIS_INCO_UPG D_PLAN_INCO_UPG MECANIQUE 2D non local D_PLAN_GRAD_VARI D_PLAN_GVNO: [:ref:`R5.04.04`] AXIS_GVNO: [:ref:`R5.04.04`] D_PLAN_GRAD_SIGM: [:ref:`R5.03.24`] D_PLAN_DIL: [:ref:`R5.04.03`] D_PLAN_GRAD_HHO: [:ref:`R3.06.14`] MECANIQUE 2D plates and shells COQUE_AXIS: [:ref:`R3.07.02`] MECANIQUE 2D joint elements for crack propagation PLAN_JOINT: [:ref:`R3.06.09`] AXIS_JOINT: [:ref:`R3.06.09`] PLAN_JOINT_HYME: [:ref:`R3.06.09`] PLAN_INTERFACE: [:ref:`R3.06.13`] PLAN_INTERFACE_S: [:ref:`R3.06.13`] AXIS_INTERFACE: [:ref:`R3.06.13`] AXIS_INTERFACE_S: [:ref:`R3.06.13`] MECANIQUE 2D thermo-hydro-mechanical: [:ref:`R7.01.10`] AXIS_HH2MD AXIS_HH2MS AXIS_HHMD AXIS_HHMS AXIS_HHM AXIS_HMD AXIS_HMS AXIS_HM AXIS_THH2D AXIS_THH2S AXIS_THH2MD AXIS_THH2MS AXIS_THHD AXIS_THHS AXIS_THHMD AXIS_THHMS AXIS_THMD AXIS_THMS AXIS_THM AXIS_HHD AXIS_HHS AXIS_HH2D AXIS_HH2S D_PLAN_HH2MD D_PLAN_HH2MS D_PLAN_HHMD D_PLAN_HHMS D_PLAN_HHM D_PLAN_HMD D_PLAN_HMS D_PLAN_HM D_PLAN_THH2D D_PLAN_THH2S D_PLAN_THH2MD D_PLAN_THH2MS D_PLAN_THHD D_PLAN_THHS D_PLAN_THHMD D_PLAN_THHMS D_PLAN_THMD D_PLAN_THMS D_PLAN_THM D_PLAN_HHD D_PLAN_HHS D_PLAN_HS D_PLAN_HH2D D_PLAN_HH2S D_PLAN_HMS_DIL: [:ref:`R7.01.10`] and [:ref:`R5.04.03`] D_PLAN_HM_SI_DIL: [:ref:`R7.01.10`] and [:ref:`R5.04.03`] D_PLAN_THMS_DIL: [:ref:`R7.01.10`] and [:ref:`R5.04.03`] D_PLAN_HH2MS_DIL: [:ref:`R7.01.10`] and [:ref:`R5.04.03`] MECANIQUE 2D hydraulic unsaturated in finite volumes D_PLAN_HH2SUDA: [:ref:`R7.01.34`] MECANIQUE 2D joint elements with hydromechanical coupling AXIS_JHMS PLAN_JHMS For 2D meshes, allows you to specify the groups of cells or the likely meshes to be cut by the crack when the contact is defined on the lips of the crack. Are allowed the following types of meshes: QUAD8 and TRIA6 and the edge meshes of these elements, be the SEG3. If the meshes are linear, they must first be transformed into meshes quadratic (with LINE_QUAD from the [:ref:`CREA_MAILLAGE `] command). **MECANIQUE 3D** MECANIQUE 3D bars and cables 2D_BARRE: [:ref:`R3.08.01`] BARRE: [:ref:`R3.08.01`] CABLE_POULIE: [:ref:`R3.08.02`] CABLE: [:ref:`R3.08.02`] CABLE_GAINE: [:ref:`R3.08.10`] MECANIQUE 3D discrete elements DIS_TR DIS_T MECANIQUE 3D fluid-structure 3D_FAISCEAU: [:ref:`R4.07.05`] 3D_FLUIDE: [:ref:`R4.02.02`] MECANIQUE 3D absorbent border 3D_ABSO: [:ref:`R4.02.05`] 3D_FLUI_ABSO: [:ref:`R4.02.05`] MECANIQUE 3D concrete reinforcement grids GRILLE_MEMBRANE: [:ref:`R3.08.07`] GRILLE_EXCENTRE: [:ref:`R3.08.07`] MECANIQUE 3D continuous backgrounds 3D_SI: [:ref:`R3.06.10`] 3D: [:ref:`R3.01.01`] 3D_HHO: [:ref:`R3.06.14`] MECANIQUE non local 3D 3D_GRAD_VARI 3D_GVNO: [:ref:` R5.04.04`] 3D_DIL: [:ref:`R5.04.03`] 3D_GRAD_HHO: [:ref:`R3.06.14`] MECANIQUE 3D plates, shells and membranes COQUE_3D: [:ref:`R3.07.04`] DKT: [:ref:`R3.07.03`] DST: [:ref:`R3.07.03`] Q4G: [:ref:`R3.07.03`] DKTG: [:ref:`R3.07.03`] Q 4GG: [:ref:`R3.07.09`] MEMBRANE: [:ref:`R3.08.07`] COQUE_SOLIDE: [:ref:`R3.07.10`] (non-QA item) MECANIQUE 3D beams FLUI_STRU POU_FLUI_STRU POU_D_E: [:ref:`R3.08.01`] POU_D_EM: [:ref:`R3.08.08`] POU_D_SQUE: [:ref:`R3.08.08`] POU_D_T: [:ref:`R3.08.01`] POU_D_TGM POU_D_TG POU_D_T_GD MECANIQUE Almost incompressible 3D: [:ref:`R3.06.08`] 3D_INCO_UP 3D_INCO_UPG 3D_INCO_UPO MECANIQUE 3D thermo-hydro-mechanical 3D_HHMD 3D_HHM 3D_HMD 3D_HM 3D_THHD 3D_THHMD 3D_THHM 3D_THMD 3D_THM 3D_THVD 3D_THH2MD 3D_THH2M 3D_HH2MD 3D_HH2MS 3D_THH2S 3D_THH2D 3D_HHD 3D_HHS 3D_HS 3D_HH2D 3D_HH2S 3D_HMS_DIL: [:ref:`R5.04.03`] 3D_HM_SI_DIL: [:ref:`R5.04.03`] 3D_THMS_DIL: [:ref:`R5.04.03`] 3D_HH2MS_DIL: [:ref:`R5.04.03`] MECANIQUE 3D hydraulics unsaturated in finite volumes 3D_HH2SUDA: [:ref:`R7.01.34`] MECANIQUE 3D pipes TUYAU_3M: [:ref:`R3.08.06`] TUYAU_6M: [:ref:`R3.08.06`] For 3D meshes, allows you to specify the groups of cells or the likely meshes to be cut by the crack when the contact is defined on the lips of the crack. The following types of meshes are allowed: HEXA20, PENTA15,, TETRA10, and meshes on the edge of these elements, namely QUAD8 and TRIA6. If the meshes are linear, They must first be transformed into quadratic cells (with LINE_QUAD of the command [:ref:`CREA_MAILLAGE `]). MECANIQUE 3D joint elements for crack propagation 3D_JOINT: [:ref:`R3.06.09`] 3D_JOINT_HYME: [:ref:`R3.06.09`] 3D_INTERFACE: [:ref:`R3.06.13`] 3D_INTERFACE_S: [:ref:`R3.06.13`] Keyword AFFE_SOUS_STRUC ---- The AFFE_SOUS_STRUC keyword can only be used for a model using substructures statics [:ref:`U1.01.04 `]. SUPER_MAILLEest the list of supermeshes that you want to assign in the model. As for the finite elements, it is not mandatory to affect all the meshes of the mesh. It's AFFE_MODELE that confirms which substructures will be used in the pattern. The difference with classical finite elements is that on supermeshes, we don't Choose neither MODELISATION nor PHENOMENE because the macroelement (built by the [:ref:`MACR_ELEM_STAT `]) operator that will be assigned on the supermesh has its own modeling and its own phenomenon (the ones that were used to calculate it). Careful! Your model must contain at least one finite element (keyword AFFE in when using static substructures defined from a physical mesh (read by LIRE_MAILLAGE) because it is not possible to have only macroelements in this case. If "TOUT = 'OUI '", all (super) meshes are affected. Keyword VERI_JACOBIEN ---- The VERI_JACOBIEN keyword is used to check that the meshes in the model are not too distorted. We calculate the Jacobian for the geometric transformation that transforms the reference element into each real stitch of the model. If on the various integration points of a mesh, the Jacobian changes the sign, it's because this mesh is very "badly done". An alarm is then issued. Keyword VERI_NORM_IFS ---- The VERI_NORM_IFS keyword is used to check that all the normals on the interfaces fluid-structure (modeling in FLUI_STRU) are well oriented in the same direction. If this is not the case, an alarm is issued and the user is invited to re-orient these normals either in its mesh directly, or via the [:ref:`MODI_MAILLAGE `] command. Keyword VERI_PLAN ---- The VERI_PLAN keyword is used to verify that the QUAD4 meshes used in the plate formulations (DKT, DST, etc.) are very flat. We build a plane on the first three nodes of the element, then we calculate the distance of the fourth point in relation to this plan. If the distance is greater than :math:`1,0 \times 10^{-4}`, then the alarm is issued with the list of the meshes concerned. Keyword factor GRANDEUR_CARA ---- The keyword factor GRANDEUR_CARA is used to define some characteristic physical quantities of the problem being treated. These quantities are currently used to "a-size" some terms of error estimators in HM. See [:ref:`R4.10.05`]. Keyword factor DISTRIBUTION ---- The keyword factor DISTRIBUTION distributes the finite elements of the model for the parallelism of elementary calculations, assemblies and certain linear solvers, see [:ref:`Notice d'utilisation du parallélisme `]. It defines how the meshs/elements will be distributed (or not) for the parallelized phases. The user therefore has the possibility of controlling this distribution between the processors. Parallelism operates: * on elementary calculations and on the assemblies of matrices and vectors (that's what the keyword factor DISTRIBUTION allows you to control), * to the resolution of the linear system if the solver is parallelized ([:ref:`Mot-clé SOLVEUR `]). note In the case of parallelism mode (parallel mesh type ``mesh_p``), the mode of distribution is mandatory CENTRALISE because the mesh has already been distributed and it is not It is not possible to redistribute the calculations again. If another distribution method is chosen for this parallelism mode, it will automatically be switched to mode CENTRALISE without warn the user. It is possible to change the distribution method during its study. Just use the [:ref:`MODI_MODELE `] command. It may be convenient to continue parallel computing with a different number of processors. of the one used for the initial calculation. In particular, we may want to achieve some sequential post-treatments. It is recommended to use the command [:ref:`MODI_MODELE `] to define which distribution to use in continuation. Plus precisely, when the initial calculation used parallelism by groups of elements (GROUP_ELEM or SOUS_DOMAINE), the MODI_MODELE command is useless. On the other hand, when the initial calculation used "element-wise" parallelism (MAIL_CONTIGU or MAIL_DISPERSE), the MODI_MODELE command is mandatory. If we forget it, we are arrested during the calculation by an error message. Keyword METHODE ---- When "METHODE = 'CENTRALISE '", parallelism only starts at the linear solver level. Each processor builds and provides the solver with the entire system to be solved. Elementary calculations are not parallelized. This is the mandatory distribution method in the case of a parallel mesh of the type ``p_mesh``. "METHODE = 'GROUP_ELEM '``allows perfect load balancing (in terms of numbers of elementary calculations) *a priori*, that is to say that each processor will perform, for a type of given element, the same number of elementary calculations (to one nearest). Of course this is not In no way prejudges final load balancing, especially in non-linear calculations where the cost of an elementary calculation depends on parameters other than the type of element. In this mode, the elements of the model are grouped by "group" in order to share some calculations which makes it possible to gain in efficiency. The number of items per group can be chosen in the [:ref:`DEBUT `] command. Moreover, it is the only mode in a position to distribute the elementary calculations induced by late elements, i.e. through loadings such as boundary conditions dualized or contact. The distribution by "METHODE =' MAIL_DISPERSE '``takes place on the stitches. They are distributed equally on the various available processors. The stitches are distributed over the different processors as you do when dealing cards to several players. We also talk about "cyclical" distribution. For example, with a model comprising 8 meshes, performed on 4 processors, we obtain the following distribution: .. csv-table:: "Distribution mode", "Mesh 1", "Mesh 2", "Mesh 2", "Mesh 3", "Mesh 3", "Mesh 4", "Mesh 5", "Mesh 6", "Mesh 7", "Mesh 8" "MAIL_DISPERSE ", "Proc. 0", "Proc. 1", "Proc. 1", "Proc. 2", "Proc. 3", "Proc. 0", "Proc. 1", "Proc. 2", "Proc. 2", "Proc. 3" We can see that with this distribution mode, a processor will process regularly spaced meshes in the order of the mesh cells. The advantage of this distribution is that "statistically": each processor will process as many hexahedra, pentahedra,..., and triangles. The workload for elementary calculations will generally be well distributed. On the other hand, the matrix assembled on a processor will be very "scattered", unlike what happens for the next MAIL_CONTIGU mode. The distribution by "METHODE =' MAIL_CONTIGU '``takes place on the stitches. They are divided into contiguous meshes packets on the various available processors. For example, with a model with 8 meshes, a machine with 4 processors available, we gets the following distribution: .. csv-table:: "Distribution mode", "Mesh 1", "Mesh 2", "Mesh 2", "Mesh 3", "Mesh 3", "Mesh 4", "Mesh 5", "Mesh 6", "Mesh 7", "Mesh 8" "MAIL_CONTIGU ", "Proc. 0", "Proc. 0", "Proc. 0", "Proc. 0", "Proc. 0", "Proc. 0", "Proc. 0", "Proc. 3", "Proc. 3", "Proc. 3" For this distribution method, the workload for elementary calculations may be less balanced. For example, a processor may only have to process "easy" edge meshes. On the other hand, the matrix assembled on a processor is generally more compact. The CHARGE_PROC0_MA keyword is only available for distribution methods MAIL_DISPERSE and MAIL_CONTIGU. In fact, these distribution methods do not include: In general, the load of the calculations is not equal because of the dualized boundary conditions, including the elementary calculations are processed by the processor 0. If you want to relieve CPU 0 (or on the contrary overload it), you can use the keyword keyword CHARGE_PROC0_MA. It allows the user to choose the load percentage that we want to assign to processor 0. For example, if the user chooses "CHARGE_PROC0_MA =80" the CPU 0 will process 20% fewer elements than other processors, 80% of the load it should handle if the sharing was fair between processors. The distribution by the "METHODE =/'SOUS_DOMAINE '"method of the meshes is based on a decomposition of the mesh into sub-domains, built by an external partitioning tool defined by the PARTITIONNEUR keyword. The number of subdomains can be determined by the user, using the NB_SOUS_DOMAINE keyword. By default, the number of subdomains is taken equal to the number of processors involved in the calculation. The elements of the finite element model carried by the cells of each sub-domain are then divided into groups of similar elements (as in the distribution corresponding to method GROUP_ELEM), in order to best balance the elementary calculations. The prior partitioning of the mesh into sub-domains ensures that all the elements of a group of finite elements belong to a single subdomain.