3. Operands#

3.1. General information on operands#

This command treats mesh or skeleton concepts in the same way. In the following, the « mesh » vocabulary will be used.

This command makes it possible to define new mesh groups (or node groups) in an existing mesh: we enrich the ma mesh. No new stitches or knots are created. They must already be present in the mesh in order to be used.

The definition of a new group can be done in several ways:

  • by boolean operation on existing groups: intersection (INTERSEC), meeting (UNION) or difference (DIFFE),

  • according to a geometric criterion: cells where a node belongs to a given sphere,…

for node groups, referring to existing mesh groups. The group of nodes thus defined contains**all* the nodes of the meshes of the original group of elements (keywords TOUT_GROUP_MA and GROUP_MA).

The operator first treats the keyword CREA_GROUP_MA so that one can use the mesh groups thus defined in the keyword CREA_GROUP_NO.

Each time a keyword CREA_GROUP_MA (_NO) occurs, a new named group is defined (keyword NOM). This new group can then be reused in the following occurrences to define new groups by intersection, meeting,…

The keywords DETR_GROUP_MA and DETR_GROUP_NO make it possible to « destroy » groups of meshes or knots. The meshes and knots in these groups are not removed, only the group definitions are removed. These keywords are useful for example in Python loops when you want to create a group at each iteration of the loop: you start by destroying this group and then recreating it under the same name. This avoids having to change the group name every iteration.

It should be noted that most of the functionalities of DEFI_GROUP can be done directly in the SMESH module of SALOME, namely:

  • boolean operation on existing groups,

  • group creation by mesh type (filter SMESH Type),

  • according to a geometric criterion (SMESH LyingOn filter),

  • according to a normal angle criterion for surface meshes (SMESH Coplanar filter),

  • for mesh groups based on node groups (function SMESH “Group based on nodes of other groups”),

  • for node groups, by referring to existing mesh groups (function SMESH “Group based on nodes of other groups”),

  • deleting groups.

3.2. Operands MAILLAGE and GRILLE#

| MESH= ma

ma is the name of the mesh that we want to « enrich ».

GRID= gr

gr is the name of the auxiliary grid that we want to « enrich ».

3.3. Tags DETR_GROUP_MA and DETR_GROUP_NO#

These two factor keywords make it possible to remove the definition of mesh groups or nodes. These keywords are sometimes necessary because the code stops in a fatal error if you try to create a group whose name is already in use. You have to destroy the group before you can reuse its name. The behavior of the two keywords is similar and we will only talk about DETR_GROUP_MA here.

DETR_GROUP_MA =_F (NOM =( gm1, gm2, ... )),

The keyword factor DETR_GROUP_MA is in principle repeatable but it is never necessary because the keyword NOM makes it possible to indicate a list of group names to be destroyed (gm1, gm2,…).

It is important to know that all occurrences of the DETR_GROUP_MA keyword are treated before those of the CREA_GROUP_NO keyword because the objective of this keyword is to be able to reuse the destroyed name. You should also know that the destruction of a non-existing group does not cause any alarm messages. For example, these choices allow you to do in a Python loop:

For i in range (n):

    DEFI_GROUPE (refuse=MA, MAILLAGE =MA,

    DETR_GROUP_MA =_F (NOM ('GM1',),

    CREA_GROUP_MA =_F (NOM =' GM1 ',...

During the first iteration, the group “GM1” does not exist, we ask for its destruction but no alarm message is sent.

Note:

Since the destruction takes place at the beginning of the order, it is impossible to modify a group by making a single call to DEFI_GROUP * . For example, you cannot make a group “grow” (in a loop) by adding a small group ( b1 * ) : for i in range (n) : b1=new group… DEFI_GROUP (reuse=MA, MAILLAGE =MA, CREA_GROUP_MA =_F (NOM =”everything”, UNION =( “all”, “b1”),),) To do this, you have to call twice * DEFI_GROUP : for i in range (n) : b1=new group… DEFI_GROUP (reuse=MA, MAILLAGE =MA, DETR_GROUP_MA =_F (NOM =”everything2”), CREA_GROUP_MA =_F (NOM =”everything2”, UNION =( “all”, “b1”),), DEFI_GROUP (reuse=MA, MAILLAGE =MA, DETR_GROUP_MA =_F (NOM =”everything”), CREA_GROUP_MA =_F (NOM =”everything”, UNION =( “everything2”, “b1”),),

3.4. Keyword CREA_GROUP_MA#

| CREA_GROUP_MA

An occurrence of this factor keyword makes it possible to define a new group of elements.

3.4.1. Operand NOM#

NOM = GMA

One gives here the name (with « quotes ») of the new group of elements.

3.4.2. Operand TYPE_MAILLE#

TYPE_MAILLE = /' TOUT '/'3D'/'2D'/'1D' (DEFAUT =' TOUT ')
/' SEG2 '/' TRIA3 '/' QUAD4 '/... /' PYRAM13 '

This keyword allows you to filter the cells that will be put into the new group of elements. By default, there is no filter, but if the user writes for example: TYPE_MAILLE =”2D”, the created group will only contain surface meshes.

The user can also filter the group to be created for a particular type of mesh (TRIA3, HEXA27,…). All mesh types (POI1, SEG2, SEG3, SEG4,…, PYRAM13) are allowed.

Examples:

CREA_GROUP_MA =_F (NOM =” VOLUM “,” TOUT =” OUI “, TYPE_MAILLE =”3D”)

allows you to create the group of all the volume cells (HEXA, PENTA,…) of the mesh.

CREA_GROUP_MA =_F (NOM =” VOLH27 “,” GROUP_MA =” GMA1 “, TYPE_MAILLE =” HEXA27”)

allows you to create the group of all the “HEXA27” meshes contained in GROUP_MA. GMA1.

3.4.3. Operand TOUT#

TOUT = 'OUI'

This keyword allows you to define a group containing all the cells in the mesh.

3.4.4. Operand INTERSEC#

INTERSEC = (gma1, gma2, gma3, ... ),

The new group of elements will be obtained by taking all the cells in gma1 that also belong to gma2, gma3,… The mesh order remains that of gma1.

3.4.5. Operand UNION#

UNION = (gma1, gma2, gma3,...)

The new group of elements will be obtained by taking all the cells from gma1, then adding the cells from gma2 that do not belong to gma1, then those from gma3 that do not belong to either gma1 or gma2, etc.

3.4.6. Operand DIFFE#

DIFFE = (gma1, gma2, gma3,...)

The new group of elements will be obtained by taking all the cells in gma1 that do not belong to the other groups in the list. The mesh order remains that of gma1.

3.4.7. Sub-group of an existing group: keywords GROUP_MA/POSITION/NUME_INIT/NUME_FIN#

A new mesh group can be created by selecting certain cells from an existing group.

1st possibility:

We create a single mesh group by specifying the required mesh with the keyword POSITION.

Example:

CREA_GROUP_MA = _F (GROUP_MA = G1, POSITION = 'INIT', NOM = G1I)

Group G1I contains the 1st mesh of group G1.

2nd possibility:

A group is created containing the cells between the rows nuini and nufin (inclusive) in an existing group.

Example:

CREA_GROUP_MA =_F (GROUP_MA = G1, NUME_INIT = 3, NUME_FIN = 7, NOM = G1P)

The G1P group contains the cells 3, 4, 5, 5,…, 7 of G1.

Attention:

These keywords use the concept of the order of the cells in a group of elements. This order is often unknown to the user. It may depend on the preprocessor. This is the order of the meshes when defining GROUP_MA in the Aster mesh file.

3.4.8. Operand OPTION = “FACE_NORMALE”#

OPTION = 'FACE_NORMALE'

This option allows you to define a GROUP_MA consisting of surface meshes whose normal is parallel to the direction of the vector defined by its components if the keyword VECT_NORMALE is used or to that of the first vector of the new base defined by the change of coordinate system due to nautical angles.

In 3D, it is assumed that surface meshes are plane facets. They are of type TRIA3, TRIA6, QUAD4,, QUAD8, or QUAD9. If we call \({X}_{1}\), \({X}_{2}\), and \({X}_{3}\) the position vectors of the first three vertex nodes of the element, the normal is determined by the vector product: \(({X}_{2}\mathrm{-}{X}_{1})\mathrm{\wedge }({X}_{3}\mathrm{-}{X}_{1})\).

In 2D, it is assumed that surface meshes are straight segments. They are SEG2 or SEG3. If we call \({X}_{1}\) and \({X}_{2}\) the position vectors of the two end nodes of the element, the normal is defined by \(({X}_{2}\mathrm{-}{X}_{1})\mathrm{\wedge }z\) where \(z\) is the unit vector perpendicular to the plane and where 0. has been assigned as the third component to \(({X}_{2}-{X}_{1})\).

Note:

A « facet » mesh will be retained if its normal is collinear to the normal vector defined by VECT_NORMALE. This condition must be verified to a certain precision (keyword ANGL_PREC) .

When you choose a ANGL_PREC (for example 30. degrees), you are in fact defining the group of cells whose normal belongs to the cone with axis VECT_NORMALE and with an angle at the top ANGL_PREC.

This can be used (for example) to group the cells of a spherical half envelope (ANGL_PREC = 90). ) .

_images/Shape1.gif

3.4.8.1. Operand ANGL_NAUT#

ANGL_NAUT = a in 2D
               (a, b) in 3D

Nautical angles (a, b), defined in degrees, are the angles that make it possible to pass from the global coordinate system for defining the coordinates of the nodes to a coordinate system whose first vector designates the direction in which the normal of the surface cells that we want to recover is oriented.

For the definition of nautical angles, see operator AFFE_CARA_ELEM [U4.42.01] operand ORIENTATION.

3.4.8.2. Operand VECT_NORMALE#

VECT_NORMALE = (x, y) in 2D
                  (x, y, z) in 3D

The coordinates x, y, z are those giving the direction in which the normal of the surface cells that we want to recover is oriented.

3.4.8.3. Operand ANGL_PREC#

ANGL_PREC = a

It is the tolerance, in degrees, that we accept on the angle formed by the vector provided by the user and the vector normal to the surface element to affirm that these two vectors have the same direction.

The default value for a is \(0.5\) degree.

3.4.8.4. Operand VERI_SIGNE#

VERI_SIGNE = 'NON',
                    'OUI', [DEFAUT]

If we assign the value “NON” to VERI_SIGNE, the GROUP_MA will consist of surface cells whose normal is parallel to the vector given by the user.

If we assign the value “OUI”, the GROUP_MA will consist of surface cells whose normal is parallel and has the same orientation as the vector given by the user.

The value by default is” OUI “.

3.4.9. Operand OPTION = “SPHERE”#

OPTION = 'SPHERE'

This option allows you to define a GROUP_MA consisting of cells where at least one node belongs to a sphere (a circle in 2D) defined by its center and its radius.

3.4.9.1. Operand POINT#

POINT = (x, y) in 2D
           (x, y, z) in 3D

x y z are the coordinates of the center of the sphere.

3.4.9.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword makes it possible to indicate which node coincides with the center of the sphere.

3.4.9.3. Operand RAYON#

RAYON = r

r is the radius of the sphere (of the circle in 2D).

3.4.10. Operand OPTION = “CYLINDRE”#

OPTION = 'CYLINDRE'

This option allows you to define a GROUP_MA consisting of meshes in which at least one node belongs to a cylinder defined by its axis and its radius.

The axis is defined by a vector and a point belonging to this axis. This option only makes sense in 3D.

3.4.10.1. Operand POINT#

POINT = (x, y, z)

x y z are the coordinates of a point located on the axis of the cylinder.

3.4.10.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword makes it possible to indicate a node located on the axis of the cylinder.

3.4.10.3. Operand RAYON#

RAYON = r

r is the radius of the cylinder.

3.4.10.4. Operand ANGL_NAUT#

ANGL_NAUT = (a, b)

The nautical angles a, b defined in degrees, are the angles that make it possible to pass from the global coordinate system for defining the coordinates of the nodes to a coordinate system whose first vector designates the direction of the cylinder axis.

For the definition of nautical angles see operator AFFE_CARA_ELEM [U4.42.01] operand ORIENTATION.

3.4.10.5. Operand VECT_NORMALE#

VECT_NORMALE = (x, y, z)

x y z are the coordinates of a vector orienting the cylinder axis.

3.4.11. Operand OPTION = “BANDE”#

OPTION = 'BANDE'

This option allows you to define a GROUP_MA consisting of cells where at least one node belongs to a « band » defined by a « middle » plane (a 2D line) and the half-width on either side of this plane.

The plane is defined by a vector normal to this plane and a point belonging to it.

3.4.11.1. Operand POINT#

POINT = (x, y) in 2D
           (x, y, z) in 3D

x y z are the coordinates of a point belonging to the « middle » plane of the band.

3.4.11.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword makes it possible to define one belonging to the « middle » plane of the band.

3.4.11.3. Operand ANGL_NAUT#

ANGL_NAUT = a in 2D
               (a, b) in 3D

The nautical angles a, b, defined in degrees, are the angles that make it possible to pass from the global coordinate system for defining the coordinates of the nodes to a coordinate system whose first vector is orthogonal to the « middle » plane of the band.

For the definition of nautical angles, see operator AFFE_CARA_ELEM [U4.42.01] operand ORIENTATION.

3.4.11.4. Operand VECT_NORMALE#

VECT_NORMALE = (x, y) in 2D
                  (x, y, z) in 3D

x y and z are the components of a vector perpendicular to the « middle » plane of the band.

3.4.11.5. Operand DIST#

DIST = d

d is the half-width of the band.

3.4.12. Operand OPTION = “APPUI”#

This option allows you to retrieve the mesh group where some nodes belong to the set of nodes specified by the GROUP_NO keyword.

GROUP_NO = l_gno

This keyword defines the list of nodes that will be used to support the meshes.

Let’s call this list lno1.

TYPE_APPUI =
    /'TOUT': the mesh will be retained if all its nodes belong to lno1
    /'SOMMET': the mesh will be retained if all its "vertex" nodes belong to lno1
    /'AU_MOINS_UN': the mesh will be retained at least one of its nodes belongs to lno1
    /'MAJORITE': the mesh will be retained if more than half of its nodes belong to lno1

3.4.13. Operand OPTION = “FISS_XFEM”#

This option allows you to retrieve the group of cells of type X- FEM specified by the keywords TYPE_GROUP.

FISSURE = (fiss1, fiss2,...)


TYPE_GROUP =
    /'HEAVISIDE': the mesh will be retained if it is of the Heaviside type
    /'CRACKTIP': the mesh will be retained if it is of the Crack-tip type
    /'MIXTE': the mesh will be selected if it is of mixed type (Heaviside and Crack-tip)
    /'XFEM ':the mesh will be selected if it is Heaviside, Crack-tip or Mixed
    /'FISSUREE': the mesh will be retained if all its knots are enriched

For a precise definition of the concepts of Heaviside mesh and Crack-tip mesh, see R7.02.12, §3.2.5.

3.5. Keyword CREA_GROUP_NO#

| CREA_GROUP_NO

An occurrence of this factor keyword makes it possible to define a new group of nodes (for the keywords GROUP_MA and TOUT_GROUP_MA, we create several groups of nodes « at once »).

3.5.1. Operand NOM#

NOM = no

One gives here the name (with « quotes ») of the new group of nodes.

3.5.2. Operand INTERSEC#

INTERSEC = (gno1, gno2, gno3,...)

The new group of nodes will be obtained by taking all the nodes in gno1 that also belong to gno2, gno3,… The order of the nodes remains that of gno1.

3.5.3. Operand UNION#

UNION = (gno1, gno2, gno3,...)

The new group of nodes will be obtained by taking all the nodes from gno1, then adding the nodes from gno2 that do not belong to gno1, then those from gno3 that do not belong to gno1 or gno2, etc.

3.5.4. Operand DIFFE#

DIFFE = (gno1, gno2, gno3,...)

The new group of nodes will be obtained by taking all the nodes in gno1 that do not belong to the other groups in the list. The order of the nodes remains that of gno1.

3.5.5. Subgroup of an existing group: keywords GROUP_NO/POSITION//NUME_INIT/NUME_FIN#

A new node group can be created by selecting some nodes from an existing group.

1st possibility:

A group of a single node is created by specifying the node you are looking for using the keyword POSITION.

Example:

CREA_GROUP_NO = _F (GROUP_NO = G1, POSITION = 'INIT', NOM = G1I)

Group G1I contains the 1st node of group G1.

2nd possibility:

A group is created containing the nodes between the ranks nuini and nufin (inclusive) in an existing group.

Example:

CREA_GROUP_NO =_F (GROUP_NO = G1, NUME_INIT = 3 NUME_FIN = 7, NOM = G1P)

The G1P group contains nodes 3, 4, 5, 5,…, 7 of G1.

Attention:

These keywords use the concept of the order of the nodes in a group of nodes. This order is often unknown to the user. It may depend on the preprocessor. This is the order of the nodes when defining GROUP_NO in the Aster mesh file.

3.5.6. Operand OPTION = “ENV_SPHERE”#

OPTION = 'ENV_SPHERE'

This option allows you to define a GROUP_NO consisting of the nodes located on the envelope of a sphere to within a given precision.

3.5.6.1. Operand POINT#

POINT = (x, y), in 2D
           (x, y, z), in 3D

x y z are the coordinates of the center of the sphere.

3.5.6.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword defines the node that coincides with the center of the sphere.

3.5.6.3. Operand RAYON#

RAYON = r

r is the radius of the sphere.

3.5.6.4. Operand PRECISION#

PRECISION = eps

eps is the tolerance with which one defines the belonging of a node to the envelope of the sphere. This tolerance is to be taken in the following sense:

If \(d\) is the distance of a node from the center of the sphere, we say that this node belongs to the group if:

\(∣d-r∣\le \text{eps}\)

3.5.7. Operand OPTION = “ENV_CYLINDRE”#

OPTION = 'ENV_CYLINDRE'

This option allows you to define a GROUP_NO consisting of nodes located on the envelope of a cylinder to within a given precision.

This option only makes sense in 3D.

3.5.7.1. Operand POINT#

POINT = (x, y, z)

x y z are the coordinates of a point belonging to the axis of the cylinder.

3.5.7.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword is used to define a node belonging to the cylinder axis.

3.5.7.3. Operand RAYON#

RAYON = r

r is the radius of the cylinder.

3.5.7.4. Operand ANGL_NAUT#

ANGL_NAUT = (ab)

The nautical angles a, b defined in degrees, are the angles that make it possible to pass from the global coordinate system for defining the coordinates of the nodes to a coordinate system whose first vector designates the direction of the cylinder axis.

For the definition of nautical angles, see operator AFFE_CARA_ELEM [U4.42.01] operand ORIENTATION.

3.5.7.5. Operand VECT_NORMALE#

VECT_NORMALE = (x, y, z)

x y z are the coordinates of a vector orienting the cylinder axis.

3.5.7.6. Operand PRECISION#

PRECISION = eps

eps is the tolerance with which one defines the belonging of a node to the cylinder envelope.

This tolerance is to be taken in the following sense:

If \(d\) refers to the distance from the current point to the cylinder axis, we say that the current point belongs to the cylinder shell if:

\(∣d-r∣\le \text{eps}\)

3.5.8. Operand OPTION = “PLAN”#

This option allows you to define a GROUP_NO consisting of nodes located on a line (in 2D) or in a plane (in 3D) to within a given precision.

3.5.8.1. Operand POINT#

POINT = (x, y), in 2D
           (x, y, z), in 3D

x y z are the coordinates of a point belonging to the plane (on the right).

3.5.8.2. Operand GROUP_NO_CENTRE#

GROUP_NO_CENTRE = grno

This keyword is used to define a node belonging to the plane (on the right).

3.5.8.3. Operand ANGL_NAUT#

ANGL_NAUT = a, in 2D
               (a, b), in 3D

The nautical angles a, b defined in degrees, are the angles that make it possible to pass from the global coordinate system for defining the coordinates of the nodes to a coordinate system whose first vector is orthogonal to the “middle” plane of the band.

For the definition of nautical angles, see operator AFFE_CARA_ELEM [U4.42.01] operand ORIENTATION.

3.5.8.4. Operand VECT_NORMALE#

VECT_NORMALE = (x, y), in 2D
                  (x, y, z), in 3D

x y and z are the components of a vector perpendicular to the plane (to the right).

3.5.8.5. Operand PRECISION#

PRECISION = eps

eps is the tolerance with which one defines the belonging of a node to the plane (or to the right).

This tolerance is to be taken in the following sense:

if \(d\) refers to the distance from the node to the plane (or to the right), we say that this node belongs to this plane (or to this line) if:

\(∣d∣\le \text{eps}\)

3.5.9. Operand OPTION = “SEGM_DROI_ORDO”#

This option is used to order a set of nodes located approximately on a line segment AB.

GROUP_NO = gno2,

We define the set of nodes that we want to order.

GROUP_NO_ORIG = GNOA,

GROUP_NO_EXTR = GNOB,

We define the nodes \(A\) and \(B\), the origin and the end of the segment \(\mathrm{AB}\).

PRECISION = prec,

CRITERE = 'RELATIF',
                 'ABSOLU',

These two arguments are safeguards, they are used to verify that the nodes you want to order (lno2 or gno2) are on segment \(\mathrm{AB}\). If a node’s deviation from \(\mathrm{AB}\) is greater than prec the code stops in a fatal error.

If the criterion chosen is” RELATIF “, the distance between a node and \(\mathrm{AB}\) will be divided by the length of \(\mathrm{AB}\).

3.5.10. Operand OPTION = “NOEUD_ORDO”#

This option is used to create an ordered group_no containing the nodes of a set of meshes composed of segments (SEG2, SEG3 or SEG4). All of these meshes must form a continuous line. The line can be « open » (with 2 ends) or « closed » (it is then a simple loop).

GROUP_MA = GMAAb

Name of the group_ma whose nodes you want to order.

The GMAAb meshes should form an open line.

GROUP_NO_ORIG = GNOA,

GROUP_NO_EXTR = GNOB,

The keywords are used to define the nodes \(A\) and \(B\), the origin and end of the line \(\mathrm{AB}\).

Node \(A\) will be numbered first, then the GMAAb mesh topology is used to number the nodes from near to near.

If node \(A\) is not provided by the user, the program will choose as the « origin » node, the first GMAAB node, which belongs to only one mesh segment. The origin is therefore arbitrary: the program could just as easily have fallen on the other end.

We check that the last numbered node is \(B\) (if this one is given).

3.5.10.1. Case of closed lines#

If the line is a loop, you cannot automatically determine its ends. To define the origin of curvilinear abscissa, the user can specify the origin and end nodes. These 2 knots must be the same. But he can also write: ORIGINE =” SANS “. The « origin » node will then be picked at random on the closed line.

To orient a closed line, you cannot use the knowledge of the origin and end nodes. If he wishes, the user can then enter the keyword VECT_ORIE (2 or 3 coordinates depending on the dimension of the space). As the direction of travel of the loop, we will choose the GMAAb mesh that touches the origin node and that minimizes the angle with the vector provided by VECT_ORIE.

3.5.11. Operand OPTION = “TUNNEL”#

This option is used to create the group_no formed by nodes located inside a « tunnel » whose axis and radius are provided. The nodes selected will be those whose distance from the axis is less than the radius.

The « tunnel » axis is defined by the line meshes provided via the GROUP_MA_AXE keyword.

The tunnel axis must have an « origin » defined by the keyword GROUP_NO_ORIG.

The RAYON keyword is used to define the « radius » of the tunnel.

You can limit the tunnel by giving its length with the keyword LONGUEUR. This length is measured from the origin of the tunnel.

The candidate nodes to be part of the tunnel are those carried by the meshes defined by the keywords: TOUT =” OUI “and GROUP_MA.

3.5.12. Operand OPTION = “INCLUSION”#

OPTION = 'INCLUSION',
GROUP_MA = lgma, [l_group_ma]
CAS_FIGURE =/'2D'
                /'3D'
                /'2.5D'
 DISTANCE_MAX = distma
GROUP_MA_INCL = lgma_inc, [l_group_ma]
 MAILLAGE_INCL = ma_inc, [mesh]

This option allows you to create the group of nodes of the lgma cells that are geometrically inside the cells of lgma_inc.

If MAILLAGE_INCL is not provided, lgma_inc is a list of GROUP_MA of the mesh that is being enriched (ma). Otherwise they are GROUP_MA from ma_inc.

The keyword CAS_FIGURE is mandatory, it is used to determine which cells in lgma_inc should be used to determine inclusion:

“2D”: we are only interested in the surface meshes (TRIA and QUAD) of a 2D mesh (plane \(\mathrm{XOY}\)).

“3D”: we are only interested in volume meshes (TETRA, PENTA,…)

“2.5D”: we are only interested in surface meshes (TRIA and QUAD) of a 3D mesh (shell).

The DISTANCE_MAX keyword is optional. It is used to give a small tolerance to define whether a node is included in a mesh. Indeed, a node located « just » on an interface between 2 meshes is likely to be considered « external » to the 2 meshes and therefore as not being part of the inclusion. This is why a default value of distma is taken by the code. 1% of the length of the smallest edge of the ma_inc mesh was chosen.

In the case of a « shell » mesh (2.5D), if the surface is not flat, it is almost impossible for a facet element to be geometrically included in other meshes: there is almost always a deviation in the direction « normal » to the surface. In this case, it will therefore generally be necessary to provide a distma value greater than the default value.

3.5.13. Operand OPTION = “INTERVALLE_VALE”#

This option is used to create the group_no formed of nodes whose value of a component (cmp) of a field at the nodes (cham_no) is between two values (vmin and vmax).

The field and the component that will be used to select the nodes are given by the keywords CHAM_GD and NOM_CMP.

The vmin and vmax values are provided using the VALE keyword.

Example:

DEFI_GROUP (reuse = MAIL, MAILLAGE = MAIL,

CREA_GROUP_NO = _F (NOM =” GN700 “, OPTION =” INTERVALLE_VALE”,

CHAM_GD = TEMPER, NOM_CMP =” TEMP “, VALE =( 700., 800.),),);

The GROUP_NO “GN700” will be composed of all the nodes of the grid MAIL whose temperature in the field TEMPER is between 700. and 800.

3.5.14. Operand OPTION = “FISS_XFEM”#

This option allows you to retrieve the group of XFEM nodes specified by the TYPE_GROUP keywords.

    FISSURE = (fiss1, fiss2,...)


    TYPE_GROUP =
        /'XFEM': the node will be retained if it is an enriched node
        /'HEAVISIDE': the node will be retained if it is a Heaviside rich node
        /'CRACKTIP': the node will be retained if it is a Cracktip rich node
        /'MIXTE': the node will be retained if it is a mixed rich node (Heaviside and Cracktip)
        :ref:`3.2 <RefNumPara__15136_1529317046>`
        /'ZONE_MAJ': the node will be retained if it is contained in the level sets update area. In the case where the crack mesh is passed through the keyword MAILLAGE (§), the update area coincides:

* in the absence of an auxiliary grid associated with the crack, with the calculation domain around the bottom,


* in the presence of an auxiliary grid associated with the crack, with the projection domain between grid and mesh, regardless of the calculation domain used on the grid.
3.2

In the case where a grid is based on the keyword GRILLE (§), the update area always coincides with the calculation domain used on the grid.

/”TORE”: the node will be retained if it is contained in a torus built around the crack bottom with a radius given by the RAYON_TORE keyword. If the domain location was used for the crack calculation, this option cannot be selected. In this case, the group of nodes is created using the update area (the option TYPE_GROUP =” ZONE_MAJ “is automatically selected) and the user’s choice is ignored.

For a precise definition of the concepts of rich node, Heaviside node, Crack-tip node, auxiliary grid, computing domain and its location, see R7.02.12, §3.2.5.

3.5.15. Operand RAYON_TORE#

# If TYPE_GROUP =” TORE “

RAYON_TORE = r,

The radius r of the torus to be used for the selection of the nodes is specified.

3.5.16. Operand OPTION = “RELA_CINE_BP”#

For each triplet of links (3 directions of space) contained in the list of kinematic relationships of a cable_precont concept from DEFI_CABLE_BP, this option creates a group of nodes containing the cable node and the concrete nodes concerned. The name of this group is the value given to PREF_GRNO followed by the name of the cable node.

    CABLE_BP = cable_bp

Cable_precont concept name.


    PREF_GRNO = pref

Prefix given to the node groups created.

3.5.17. Operands GROUP_MA and NOM#

GROUP_MA = LGMA

For each group of elements in the lgma list, a group of nodes is created formed from the nodes carried by the cells in this group of elements.

NOM = lgno

If lgno is provided by the user, this list should be of the same length as lgma. These are the names we want to give to the new node groups.

If lgno is not provided, the node groups will have the same names as the mesh groups that gave rise to them.

 CRIT_NOEUD =

/' TOUS '[DEFAUT]: we take all the knots of each stitch.

/” SOMMET “:

we only take the « top » nodes of the meshes (that is to say the ends of the edges).

/'MILIEU':

We only take the « middle » knots of the mesh edges.

/'CENTRE':

We only take nodes that are neither « vertex » or « middle », that is to say the nodes at the center of facets or volume elements.

3.5.18. Operand TOUT_GROUP_MA#

TOUT_GROUP_MA = 'OUI'

This keyword has the same meaning as the previous one, except that node groups are created for all the existing mesh groups.

3.5.19. Operand ALARME = “OUI” [DEFAUT]/”NON”#

if ALARME = “NON”, the code does not sound an alarm; for example when asked to create a GROUP_NO and this group is empty. The default value for this keyword is” OUI “.

3.5.20. Operand INFO#

if INFO = 1, we print in the file “MESSAGE”, the number of groups created and for each group, the name of the group and the number of entities constituting it.

if INFO = 2, we print in the file “MESSAGE”, the number of groups created and for each group, the name of the group, the number of entities constituting it then the list of entities constituting it and then the list of entities constituting the group (s).