1. Definition of the analytical constraint field#

It is assumed that the model contains continuous finite elements (MODELISATION =”3D”).

We want the stress components at each Gauss point to have the following expressions:

SIZZ = RHO *G*Z

SIXX = SIYY = KP* SIZZ

where:

RHO: density

G: acceleration due to gravity

Z: 3rd space coordinate

KP: soil « thrust » coefficient

The proposed solution consists in:

  1. define three « formula » functions corresponding to SIXX, SIYY and SIZZ,

  2. constitute a field whose components are the previous functions,

  3. evaluate the formulas of the field by providing it with the geometry field necessary for their evaluation.

1.1. Step 1: Define formulas#

RHO =1000.

G=10.

MP=3.

SIZZ = FORMULE (REEL = » » «  » (REEL :Z) = RHO *G*Z « «  »)

SIXX = FORMULE (REEL = » » « (REEL :Z) = KP* SIZZ (Z) « «  »)

SIYY = FORMULE (REEL = » » « (REEL :Z) = KP* SIZZ (Z) « «  »)

1.2. Step 2: Create the SIG1 formula field#

SIG1 = CREA_CHAMP (OPERATION =” AFFE “, TYPE_CHAM =” ELGA_NEUT_F”,

MODELE =MO, PROL_ZERO =” OUI “,

AFFE =_F (TOUT = “OUI”, NOM_CMP = (“X1”, “X2”, “X3”,),

VALE_F = (SIXX, SIYY, SIZZ,))

Remarks

  • The field SIG1que you create is a cham_elemaux Gauss points (ELGA),

  • the only fields that can have « function » components are the fields of the size NEUT_F . You must therefore remember that the component “x1’de * SIG1est in reality “ SIXX “, etc…. ,

  • the keyword PROL_ZERO =” OUI “is mandatory because for all element types, the cham_elem_ NEUT_Ront currently has 6 components: “X1”, “X2”,…, “X2”,…, “X6”. It is therefore necessary to agree to « extend » by zero the field on the 3 unaffected components. Extending by « zero » for a field whose components are texts (names of functions) consists in assigning the string «  » to each component that is not present in the field. So be careful, this is not a null function. This can be seen by using INFO =2 to print the field SIG1.

1.3. Step 3: Evaluate the formulas in field SIG1#

Field SIG1 is a field known at the Gauss points of the model elements. At each point, we will want to evaluate the functions SIXX, SIYY and SIZZ. To do this, you must have the values of all the variables appearing in the functions (here Z). These variables must be known on the same points as the field of functions. It is therefore necessary to have a field containing the geometry of the Gauss points (cham_elem_ GEOM_R/ELGA).

This field of geometry of the Gauss points (CHXG) is obtained from the mesh (MA) by the following 2 commands:

CHXN = CREA_CHAMP (OPERATION =” EXTR “, TYPE_CHAM =” NOEU_GEOM_R”,

NOM_CHAM =” GEOMETRIE “, MAILLAGE =MA)

CHXG = CREA_CHAMP (OPERATION =” DISC “, TYPE_CHAM =” ELGA_GEOM_R”,

MODELE =MO, CHAM_GD = CHXN

The first command extracts the geometry field (at the nodes) from the mesh. The second transforms the geometry field at the nodes into a geometry field at Gauss points using the shape functions of the finite elements of the model.

We can then evaluate the functions using the operator CREA_CHAMP/OPERATION =” EVAL “:

SIG2 = CREA_CHAMP (OPERATION =” EVAL “, TYPE_CHAM =” ELGA_NEUT_R”,

MODELE =MO, CHAM_F = SIG1, CHAM_PARA =( CHXG,))

The field (SIG2) obtained by evaluating a field of the quantity NEUT_F is a field of the quantity NEUT_R whose components have the same names as the components of NEUT_F: “X1”, “X2”,…, “X6”.

Attention:

The components “X4”, “X5”, “X6’are undefined (in reality they contain the largest possible real), because they correspond to a non-existent function.

We still have to change the size of the SIG2 field (NEUT_R -> SIEF_R) to complete the fabrication of our analytical constraints field:

SIGINI = CREA_CHAMP (OPERATION =” ASSE “, TYPE_CHAM =” ELGA_SIEF_R”,

MODELE =MO, PROL_ZERO =” OUI “,

ASSE =_F (TOUT = “OUI”, CHAM_GD = SIG2,

NOM_CMP = (“X1”, “X2”, “X3”,),

NOM_CMP_RESU = (“SIXX”, “SIYY”, “SIZZ”,)))

Notes:

  • only the components “X1”, “x2’and “x2’and “x3’of the field SIG2sont copied in this operation to give the components “ SIXX “, “”, “ “, “”, “ “, “ SIGINI, “ SIYY”, and “x3’of the field* . SIZZ This stress field must also contain components related to shear (“SIXY”, “ SIYZ “, “ SIXZ”). To get them (with a zero value), you must use the extension by zero (PROL_ZERO =” OUI “),

  • the manipulations made to obtain the zero shear components would have been simpler if a null function had been explicitly assigned to these 3 components. We would not have had to « play » with the extensions. But we would have benefited from the coincidence that the magnitudes SIEF_Ret * NEUT_Ront both have 6 components for the cham_elem (ELGA) on the elements of the model.