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

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

TUYAU_3M: [r3.08.06 Finite elements of straight and curved pipes with ovalization, swelling and warping in elasto-plasticity]

TUYAU_6M: [r3.08.06 Finite elements of straight and curved pipes with ovalization, swelling and warping in elasto-plasticity]

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.