3. Operands#
3.1. 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 \(Y\) of the mesh. The whole structure should be meshed in \(X\ge 0\). The \({Ox}\) axis therefore designates the radial direction. The components of the calculated fields will therefore be: \(X\) for the direction radial, \(Y\) for the axial direction and \(Z\) for the orthoradial direction (circumferential).
3.2. 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 [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
3.2.1. 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 [R3.06.14];For discretizations in fluid or in fluid-structure interaction, we can specify whether It’s a formulation with three variables \((U,P,\mathrm{\varphi })\) with two variables \((U,P)\) or \((U,\mathrm{\psi })\), see documentation [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
ACOUSTIQUE 3D continuous media
THERMIQUE
THERMIQUE 2D shell
COQUE_AXIS: [R3.11.01]
COQUE_PLAN: [R3.11.01]
THERMIQUE 2D continuous midfielders
AXIS_DIAG: [R3.06.07]
AXIS_FOURIER
AXIS: [r3.06.02 Linear modeling of continuous medium elements in thermal]
PLAN_DIAG: [R3.06.07]
PLAN: [r3.06.02 Linear modeling of continuous medium elements in thermal]
PLAN_HHO: [R3.06.14]
AXIS_HHO: [R3.06.14]
THERMIQUE case
COQUE: [R3.11.01]
THERMIQUE 3D continuous backgrounds
3D_DIAG: [R3.06.07]
3D: [r3.06.02 Linear modeling of continuous medium elements in thermal]
3D_HHO: [R3.06.14]
MECANIQUE 2D
MECANIQUE 2D discrete elements
2D_DIS_TR
2D_DIS_T
MECANIQUE 2D fluid-vibroacoustic structure
2D_FLUIDE: [R4.02.02]
2D_FLUI_ABSO: [R4.02.05]
2D_FLUI_PESA: [R4.02.04]
2D_FLUI_STRU: [R4.02.02]
AXIS_FLUIDE: [R4.02.02]
AXIS_FLUI_ABSO: [R4.02.05]
AXIS_FLUI_STRU: [R4.02.02]
D_PLAN_ABSO: [R4.02.05]
MECANIQUE 2D continuous midfielders
AXIS: [R3.01.01]
AXIS_FOURIER
AXIS_SI: [R3.06.10]
C_PLAN_SI: [R3.06.10]
C_PLAN: [R3.01.01]
D_PLAN_SI: [R3.06.10]
D_PLAN: [R3.01.01]
D_PLAN_HHO: [R3.06.14]
MECANIQUE 2D almost incompressible: [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: [R5.04.04]
AXIS_GVNO: [R5.04.04]
D_PLAN_GRAD_SIGM: [r5.03.24 Large deformation model GDEF_LOG]
D_PLAN_DIL: [R5.04.03]
D_PLAN_GRAD_HHO: [R3.06.14]
MECANIQUE 2D plates and shells
MECANIQUE 2D joint elements for crack propagation
PLAN_JOINT: [R3.06.09]
AXIS_JOINT: [R3.06.09]
PLAN_JOINT_HYME: [R3.06.09]
PLAN_INTERFACE: [R3.06.13]
PLAN_INTERFACE_S: [R3.06.13]
AXIS_INTERFACE: [R3.06.13]
AXIS_INTERFACE_S: [R3.06.13]
MECANIQUE 2D thermo-hydro-mechanical: [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: [R7.01.10] and [R5.04.03]
D_PLAN_HM_SI_DIL: [R7.01.10] and [R5.04.03]
D_PLAN_THMS_DIL: [R7.01.10] and [R5.04.03]
D_PLAN_HH2MS_DIL: [R7.01.10] and [R5.04.03]
MECANIQUE 2D hydraulic unsaturated in finite volumes
D_PLAN_HH2SUDA: [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 [CREA_MAILLAGE] command).
MECANIQUE 3D
MECANIQUE 3D bars and cables
2D_BARRE: [R3.08.01]
BARRE: [R3.08.01]
CABLE_POULIE: [R3.08.02]
CABLE: [R3.08.02]
CABLE_GAINE: [r3.08.10 Item CABLE_GAINE]
MECANIQUE 3D discrete elements
DIS_TR
DIS_T
MECANIQUE 3D fluid-structure
3D_FAISCEAU: [R4.07.05]
3D_FLUIDE: [R4.02.02]
MECANIQUE 3D absorbent border
3D_ABSO: [R4.02.05]
3D_FLUI_ABSO: [R4.02.05]
MECANIQUE 3D concrete reinforcement grids
GRILLE_MEMBRANE: [r3.08.07 Elements MEMBRANE and GRILLE_MEMBRANE]
GRILLE_EXCENTRE: [r3.08.07 Elements MEMBRANE and GRILLE_MEMBRANE]
MECANIQUE 3D continuous backgrounds
3D_SI: [R3.06.10]
3D: [R3.01.01]
3D_HHO: [R3.06.14]
MECANIQUE non local 3D
3D_GRAD_VARI
3D_GVNO: [:ref:` R5.04.04`]
3D_DIL: [R5.04.03]
3D_GRAD_HHO: [R3.06.14]
MECANIQUE 3D plates, shells and membranes
COQUE_3D: [r3.07.04 Finite elements of solid shells]
DKT: [R3.07.03]
DST: [R3.07.03]
Q4G: [R3.07.03]
DKTG: [R3.07.03]
Q 4GG: [r3.07.09 Plate elements: Q4GG modeling]
MEMBRANE: [r3.08.07 Elements MEMBRANE and GRILLE_MEMBRANE]
COQUE_SOLIDE: [r3.07.10 Finite elements of « solid » shells — COQUE_SOLIDE] (non-QA item)
MECANIQUE 3D beams
FLUI_STRU
POU_FLUI_STRU
POU_D_E: [R3.08.01]
POU_D_EM: [R3.08.08]
POU_D_SQUE: [R3.08.08]
POU_D_T: [R3.08.01]
POU_D_TGM
POU_D_TG
POU_D_T_GD
MECANIQUE Almost incompressible 3D: [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: [R5.04.03]
3D_HM_SI_DIL: [R5.04.03]
3D_THMS_DIL: [R5.04.03]
3D_HH2MS_DIL: [R5.04.03]
MECANIQUE 3D hydraulics unsaturated in finite volumes
3D_HH2SUDA: [R7.01.34]
MECANIQUE 3D pipes
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 [CREA_MAILLAGE]).
MECANIQUE 3D joint elements for crack propagation
3D_JOINT: [R3.06.09]
3D_JOINT_HYME: [R3.06.09]
3D_INTERFACE: [R3.06.13]
3D_INTERFACE_S: [R3.06.13]
3.3. Keyword AFFE_SOUS_STRUC#
The AFFE_SOUS_STRUC keyword can only be used for a model using substructures statics [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 [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.
3.4. 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.
3.5. 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 [MODI_MAILLAGE] command.
3.6. 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 \(1,0 \times 10^{-4}\), then the alarm is issued with the list of the meshes concerned.
3.7. 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 [r4.10.05 Residual error indicator for HM models].
3.8. 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 [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 ([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 [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 [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.
3.9. 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 [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:
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:
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.