3. Operands#
3.1. general operands#
3.1.1. Operand TYPE_CHAM, assigning a type to the result field#
This keyword (mandatory) is first used to type the result field of the command. It is composed of 2 « words » linked by an « underlined blank » (_):
TYPE_CHAM = “XXXX_GD” where:
XXXX =/'NOEU' Field at nodes (cham_no)
/”CART” Constant field per mesh (map) /”ELNO” Field by elements at the nodes (cham_elem) /”ELGA” Elemental field at Gauss points (cham_elem) /”ELEM” Constant field per element (cham_elem)
GD=/'DEPL_R' displacement
/”SIEF_R” constraint /”TEMP_R” temperature /”FLUX_R” flow /…
The type of the result field is deduced from this information given by the user. For example:
TYPE_CHAM = 'NOEU_DEPL_R' -> cham_no (DEPL_R)
TYPE_CHAM = 'CART_SIEF_R' -> map (SIEF_R)
TYPE_CHAM = 'ELNO_EPSI_R' -> cham_elem (EPSI_R)
TYPE_CHAM = 'ELGA_VARI_R' -> cham_elem (VARI_R)
This keyword is also used to specify (for the command) what type of field should be in the result. It is required for “AFFE”, “ASSE”, and “DISC” operations.
Examples:
OPERATION = 'AFFE' + TYPE_CHAM = 'CART_DEPL_R' => a map of DEPL_R.
OPERATION = 'ASSE' + TYPE_CHAM = 'NOEU_EPSI_R' => a field of EPSI_R.
OPERATION = 'DISC' + TYPE_CHAM = 'NOEU_SIEF_R' => a field of SIEF_R.
There are only two operations for which this keyword is an unnecessary constraint (but mandatory!) for the user (OPERATION =” EVAL “and OPERATION =” EXTR”) because for these two operations, the nature of the result field is imposed by the choice of the operation.
Entering the TYPE_CHAM keyword is (unfortunately) tedious for OPERATION =” EXTR “. It is derived from the NOM_CHAM keyword. The correspondence is given in [3.9.1].
Important note
The possibility of creating cham_elemof any quantity is conditioned by the state of development (computer science) of the finite element types in the model. Everything is not yet possible; for example, to create a cham_elemde FLUX_Rsur a model containing the elements DKT, this finite element must have planned to do so (which is not the case today) .
A precise list of the quantities allowed for each type of finite element cannot be given here. We will just say approximately:
for iso-parametric elements of mechanics, the quantities are allowed: GEOM_R, , , INST_R, NEUT_R, NEUT_F, EPSI_R, , * , * SIEF_R, ,, ,, ,, ,,, ,,, ,, ,, ,, , VARI_R,, ,,, ,,,, * ,,, ,,, , , * , , *, DOMMAGet HYDR_R
for iso-parametric thermal elements, the quantities are allowed: GEOM_R, * INST_R, * NEUT_Ret * ** NEUT_F. *
3.1.2. Operand CHAM_GD#
With operations ASSE and COMB, you can reuse an existing field. In this case, you must indicate here which field is being reused.
3.1.3. Operand MAILLAGE = mailla#
When creating a CHAM_NO or CARTE, you must generally specify which mesh will be based on this field. To do this, we use the keyword MAILLAGE.
3.1.4. Operand PROL_ZERO#
When creating a CHAM_ELEM, the values existing in the field are determined by the finite elements of the model. For example, a SIGM_ELGA field on a 2D model must contain the 4 components SIXX, SIYY, SIZZ, and SIXY.
If the construction of the field does not make it possible to calculate all the expected values, we are faced with a problem. If the PROL_ZERO keyword is set to “OUI”, missing values will be set to zero.
If the PROL_ZERO keyword is set to “NON”, the code will stop in error.
This problem also concerns (but more rarely) CHAM_NO when you want to impose the numbering of their components (see the keywords NUME_DDL and CHAM_NO).
3.1.5. Operands MODELE, OPTION#
When creating a CHAM_ELEM, you must specify which finite elements the field will be defined on. To do this, we use the keyword MODELE.
To describe the structure of a CHAM_ELEM, it is not enough to give (via MODELE) an element type for each mesh, because an element type can have several « shapes » for a given quantity. To create the desired field, the user can use the OPTION keyword. For example, if he writes: X= CREA_CHAMP (… MODELE =mo, OPTION =” SIEF_ELGA “,…), the field created by CREA_CHAMP will have the same shape as if it had been calculated by CALC_CHAMP/CONTRAINTE =” SIEF_ELGA”. If the user does not use the OPTION keyword, CREA_CHAMP will (if possible) choose a form by default.
Note: for the “ASSE” operation, when assembling cham_elem, it is generally better not to provide the OPTION keyword. The option that will be chosen will be that of the field provided in the 1st occurrence of the keyword factor ASSE if the quantity associated with this field is the same as that of the result field.
3.1.8. Operand TITRE = title#
Title we want to give to the result field [U4.03.01].
3.1.9. Operand INFO = /1 /2#
INFO = 1
No impression.
INFO = 2
Print on the file “MESSAGE” of the result field.
3.2. Operand OPERATION = /” AFFE “/” ASSE “/” “/” EVAL “/” “/” DISC “/” EXTR “/” R2C “/” C2R “/” COMB “#
This operand is used to choose the « mode » of production of the result field. You can create a field:
by assigning values to knots or meshes (OPERATION =” AFFE “),
by assembling pieces of fields defined on pieces of meshes (OPERATION =” ASSE “),
by modifying the geometric representation (discretization) of a field (passing nodes <-> Gauss points for example) (OPERATION =” DISC “),
by extracting a field from an SD of type SD_RESULTAT (evol_ther, evol_noli, mode_meca,…) (OPERATION =” EXTR “).
by extracting numeric values from a table whose columns have predefined names: “MAILLE”, “NOEUD”…
by combining fields linearly (OPERATION =” ASSE “),
by « combining » (multiplication, exponential,…) fields (OPERATION =” EVAL “),
by evaluating the functions of a function field to make it a real field (OPERATION =” EVAL “),
by transforming a field with real nodes into a complex field (or vice versa) (OPERATION =”R2C”/”C2R”),
by making a linear combination of several fields with the same numbering (OPERATION =” COMB “). Unlike the “ASSE” operation, the result field will keep the Lagrange ddls associated with the dualization of boundary conditions.
3.3. Operands for OPERATION = “AFFE”#
This operation makes it possible to assign values (real, integer, complex or function) to geometric entities (nodes or meshes) of a mesh.
The quantity associated with the field is implicitly given by the keyword TYPE_CHAM (above).
3.3.1. Keyword factor AFFE#
The operands are grouped under the keyword factor AFFE. This key word is repeatable. The principle of overload is applied between the different occurrences of the AFFE keyword: if a geometric entity is affected several times, the last assignment wins.
3.3.2. Operands TOUT =” OUI “, GROUP_MAetGROUP_NO#
The geometric entities that we want to assign are given by the operands TOUT =” OUI “, GROUP_MA, and GROUP_NO.
If TYPE_CHAM =” NOEU_xxx “, nodes are assigned; the use of the GROUP_MA operand is possible and means that all the nodes of the specified meshes are affected.
If TYPE_CHAM: “EL.. _xxx” (or “CART_xxx”), cells are assigned; the use of the GROUP_NO operand is then forbidden.
Note:
For the keyword factor AFFE, the keyword TOUT =” OUI “means:
« all the nodes in the mesh » for the fields _no,
« all the meshes of the mesh » for maps,
« all the elements of the model » for the cham_elem,
3.3.3. Operand NOM_CMP#
The names of the components you want to assign are given by the NOM_CMP operand.
If the quantity is” VARI_R “, the components must be named” V1 “,” v2 “,” V3 “,…
If the quantity is” VARI_R “, and PROL_ZERO =” OUI” is chosen, components whose number is less than the largest assigned number are set to zero. For more details see document [U2.01.09].
3.3.4. Operands VALE, VALE_I, VALE_C, or VALE_F#
The values to be assigned are given by the operands VALE, VALE_I, VALE_C or VALE_F depending on the nature (real, integer, complex, function (or formula)) of the components of the quantity (DEPL_R: real, DEPL_C: complex, TEMP_F: function/formula,…).
3.3.5. note#
The persistence rule (see U1.03.00) applies to the various components that can be affected.
3.3.6. Examples#
Creation of a field at the movement nodes. We want to impose the numbering of the field (that of cnomod):
DEPL1 = CREA_CHAMP (OPERATION = 'AFFE',
TYPE_CHAM =” NOEU_DEPL_R “, MAILLAGE = MA, CHAM_NO = CNOMOD, AFFE = ( _F (TOUT =” OUI “, NOM_CMP =(” DX “,” DY “,” DZ “), VALE =( 0.,0.,0.),),), _F (GROUP_MA =( “GM1”, “GM2”), NOM_CMP = “DX”, VALE = 3.5e-2), _F (GROUP_NO =( “GN5”, “GN7”, “”, “GN9”), NOM_CMP = “DY”, VALE = 1.6e-2), )
)
Creating a temperature map (functions):
TEMPF = CREA_CHAMP (OPERATION = 'AFFE',
TYPE_CHAM =” CART_TEMP_F “, MAILLAGE = MA, AFFE =( _F (TOUT =” OUI “, NOM_CMP =(” TEMP “), VALE_F = F1), _F (GROUP_MA =( “GM1”, “GM2”, “), NOM_CMP =(” TEMP “), VALE_F = F2),)
)
3.4. Operands for OPERATION = “ASSE”#
3.4.1. Generalities#
This operator « assembles » « pieces of fields » to make a new one. Each occurrence of the ASSEdéfinit keyword is a piece of field. A field piece is called the restriction of an existing field (map/cham_no or cham_elem) on a set of geometric entities (cells or nodes) and on a set of components.
There is a principle of overloading the occurrences of the ASSE keyword if the pieces overlap each other.
Currently, it is possible to manufacture:
a cham_no by assembling pieces of cham_no.
a cham_elem by assembling pieces of cham_elem and/or cards.
a map by assembling pieces of cards and/or cham_elem/ ELEM.
The “ASSE” operation also makes it possible to change the quantity associated with a field; for example, transform a deformation field (EPSI_R) into a stress field (SIEF_R). To do this, use the key words NOM_CMP and NOM_CMP_RESU.
The assembly of field pieces can be done by combining the pieces (keywords CUMUL and COEF_R). This allows you to use this command to make linear combinations of CHAM_NO or CHAM_ELEM.
3.4.2. Operands MAILLAGE, MODELE#
Same use as for OPERATION = “AFFE” [§3.3.1] and [§3.3.2].
3.4.3. Operands for the keyword factor ASSE#
Each occurrence of the keyword factor ASSE defines a piece of field that is assembled in the result field.
3.4.3.1. Operand CHAM_GD = ch1#
ch1 is the (existing) field with which we want to make a piece of field.
3.4.3.2. Operands TOUT =” OUI “, GROUP_MAetGROUP_NO#
These operands are used to define the geometric restriction of the ch1 field. If ch1 is a CHAM_NO, you can use all of these operands. If ch1 is a CHAM_ELEM (or a CARTE), you cannot use the GROUP_NO operand.
The keyword TOUT =” OUI “here means: « all nodes, meshes, or elements that carry components (from the list NOM_CMP) in the ch1 field ».
3.4.3.3. Operands NOM_CMP and NOM_CMP_RESU#
The NOM_CMP operand is used to define the components on which we want to restrict the ch1 field. If NOM_CMP is absent, we take all the components of ch1.
The NOM_CMP_RESU operand is used to rename (if desired) the components of ch1. If NOM_CMP_RESU is provided, NOM_CMP must also be provided and the two matching lists must be of the same length.
Example 1: Transform a EPSI_R field into a VARI_R field
CHVARI = CREA_CHAMP (OPERATION =” ASSE “, TYPE_CHAM =” ELGA_VARI_R”,
MODELE =ME,
ASSE =_F (CHAM_GD = CHEPSI, TOUT =” OUI “,
NOM_CMP =( “EPXX”, “EPYY”),
NOM_CMP_RESU =( “V3”, “V1”),)
Example 2: Swap the SIXX and SIYY cmps of a SIEF_R field
CHS2 = CREA_CHAMP (OPERATION =” ASSE “, TYPE =” NOEU_SIEF_R”,
MAILLAGE = MY,
ASSE =_F (CHAM_GD = CHS1, TOUT =” OUI “,
NOM_CMP =( “SIXX”, “SIYY”),
NOM_CMP_RESU =( “SIYY”, “SIXX”,),))
3.4.3.4. Operands CUMUL, COEF_R, and COEF_C#
The operand CUMUL =” OUI “means that the values of the occurrence in question will be added to any values that already exist.
If CUMUL =” NON “, the assigned value replaces the value that may already be present (CUMUL =” OUI” is invalid for « text » fields (k8/k16,…) of course).
The operand COEF_R = coefr allows the field piece to be multiplied by the real coefficient coefr before assembling it into the result field.
Example:
Make the cham_elem: ch3 = 2. ch1 + 3. ch2
CH3 = CREA_CHAMP (OPERATION = 'ASSE',
MODELE = MO, TYPE_CHAM =' ELGA_EPSI_R ',
ASSE = (_F (CHAM_GD = CH1, TOUT =' OUI ',
CUMUL =' OUI ', COEF_R = 2. ),
_F (CHAM_GD = CH2, TOUT =' OUI ',
CUMUL =” OUI “, COEF_R = 3.),)
)
Note about complex fields
The COEF_Cn keyword is only accepted if the result field (CH3) and the argument fields (CH1et CH2) are all complex. To make a linear combination with complex coefficients of real fields, it is necessary to transform the real fields into complex fields beforehand. See OPERATION = “R2C”.
3.4.4. Examples#
Example 1
Make a temperature field by extracting an already calculated field (in an evol_ther) and redefining it (to 25. degrees) on the group of elements solder1.
CH1 = CREA_CHAMP (OPERATION = 'EXTR', TYPE_CHAM =' NOEU_TEMP_R ',
RESULTAT = EVOTH, NOM_CHAM = 'TEMP', INST = 12.)
CH2 = CREA_CHAMP (OPERATION = 'AFFE', TYPE_CHAM =' NOEU_TEMP_R ',
MAILLAGE =MY,
AFFE =_F (TOUT =” OUI “, NOM_CMP =” TEMP”, VALE = 25.))
CH3 = CREA_CHAMP (OPERATION = “ASSE”,
MAILLAGE = MA, TYPE_CHAM =” NOEU_TEMP_R “,
ASSE = (_F (CHAM_GD = CH1, TOUT =” OUI “,),
_F (CHAM_GD = CH2, GROUP_MA = SOUDUR1),)
)
Example 2:
Make a cham_elem of VARI_R (to use it as the initial state for stat_non_line) by retrieving the internal variables (6 and 8) of a law of behavior to make them variables 1 and 2 of the (new) law of behavior that will be used in the coming STAT_NON_LINE.
CH1 = CREA_CHAMP (OPERATION = 'EXTR', TYPE_CHAM =' ELGA_VARI_R ',
RESULTAT = STNL, NOM_CHAM = 'VARI_ELGA', INST = 4.)
CH2 = CREA_CHAMP (OPERATION = 'ASSE',
MODELE = MO, TYPE_CHAM =' ELGA_VARI_R ',
ASSE = _F (CHAM_GD = CH1, TOUT =' OUI ',
NOM_CMP = (“V6”, “V8”), NOM_CMP_RESU =( “V1”, “V2”),)
3.5. Operands for the keyword factor COMB#
This keyword makes it possible to calculate the linear combination of several fields with the same numbering. Unlike the “ASSE” operation, the result field will also contain the Lagrange coefficients corresponding to the dualization of the boundary conditions.
Each occurrence of the keyword factor COMB defines an element of the linear combination.
3.5.1. Operand CHAM_GD = ch1#
ch1 is the (existing) fiel_no that we want to combine linearly.
3.5.2. Operand COEF_R = code#
coefr is the real coefficient applied to ch1 for the combination.
3.5.3. example#
To calculate C = 1. *A - 2.*B, we write:
C= CREA_CHAMP (OPERATION =” COMB “, TYPE_CHAM =” NOEU_DEPL_R”,
COMB =(
F (CHAM_GD =A, COEF_R = 1. ),
F (CHAM_GD =B, COEF_R =-2. ),
))
3.6. Operands for OPERATION = “EVAL”#
This operation is used to transform a function field into real fields by evaluating the functions of the function field.
The function field must be a field of the quantity “NEUT_F” and the result field will always be a field of “NEUT_R”. This field can be transformed into a field of any other size by using the command CREA_CHAMP/OPERATION =” ASSE “a second time.
An example of the use of the “EVAL” operation is given in the document [U2.01.09] « Analytical definition of a constraint field… »
3.6.1. Operand CHAM_F = cf#
cf is the name of the function field to be evaluated (CHAM_NO, CARTE, or CHAM_ELEM).
3.6.2. Operand CHAM_PARA = l_chpara#
l_chpara is the list of « parameter » fields for evaluating functions. All fields in l_chpara should be discretized in the same way as cf. For example, if cf is a CHAM_ELEM/ELGA, all fields in l_chpara must also be CHAM_ELEM/ELGA.
The list of parameter fields must be sufficient to allow the evaluation of all the functions referenced in chf and it is also necessary that no component of a parameter field be present in another parameter field of the list.
Note: For example, for fields by elements, it is not possible to provide two fields of magnitude NEUT even if the same components must not be taken into account on both fields because each field has components X1 to X30.
3.6.3. Examples#
3.6.3.1. Example 1#
We want to create a cham_elem (SIEF_R) at Gauss points whose components are analytical functions of geometry and time. For this example, we assume that we have already manufactured two fields at Gauss points CHGEOMG: geometry field and CHINSTG: moment field.
RHO =1000.
G=10.
MP=3.
SIZZ = FORMULE (NOM_PARA = 'Z', VALE = 'RHO *G*Z')
SIXX = FORMULE (NOM_PARA = ('Z', 'INST'), VALE = 'KP*SIZZ (Z) +3.* INST ')
# Assignment of functions:
# -----------------------------------------------
SIG1 = CREA_CHAMP (OPERATION =' AFFE ', TYPE_CHAM =' ELGA_NEUT_F',
MODELE =MO, PROL_ZERO =' OUI ',
AFFE =_F (TOUT =' OUI ', NOM_CMP =(' X1 ',' X2 '),
VALE_F =( 'SIXX', 'SIZZ', ''))
# Evaluation of functions:
# -----------------------------------------------
SIG2 = CREA_CHAMP (OPERATION =' EVAL ', TYPE_CHAM =' ELGA_NEUT_R',
MODELE =MO, CHAM_F = SIG1, CHAM_PARA =( CHGEOMG, CHINSTG))
# transformation of the field from NEUT_R to SIEF_R:
# -----------------------------------------------
SIG3 = 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'),
NOM_CMP_RESU =( 'SIXX', 'SIZZ'),
))
3.6.3.2. Example 2#
We want to calculate a temperature field at the nodes (\(\mathrm{CH3}\)) containing the product of 2 other fields at the temperature nodes (\(\mathrm{CH1}\) and \(\mathrm{CH2}\))
# 1) transformation of fiel_no/ TEMP_R (CH1 and CH2) into a fiel_no/ NEUT_R:
# --------------------------------------------------------------------
CHN = CREA_CHAMP (OPERATION =' ASSE ', TYPE_CHAM =' NOEU_NEUT_R', MAILLAGE =MA,
ASSE =( _F (TOUT = 'OUI', CHAM_GD = CH1,
NOM_CMP = ('TEMP',),), NOM_CMP_RESU = ('X1',)),
_F (TOUT = 'OUI', CHAM_GD = CH2,
NOM_CMP = ('TEMP',),), NOM_CMP_RESU = ('X2',)),))
# 2) multiplication CH3N = CHN /X1 * CHN /X2:
# ----------------------------------------
FMULT = FORMULE (NOM_PARA = ('X1', 'X2'), VALE = 'X1*X2')
CHFMU = CREA_CHAMP (OPERATION =' AFFE ', TYPE_CHAM =' NOEU_NEUT_F', MAILLAGE =MA,
AFFE =_F (TOUT = 'OUI', NOM_CMP = 'X3', VALE_F = FMULT))
# We chose the X3 component here, but we could choose any component from X1 to X30.
CH3N = CREA_CHAMP (OPERATION =' EVAL ', TYPE_CHAM =' NOEU_NEUT_R',
CHAM_F = CHFMU, CHAM_PARA =( CHN))
# 3) transformation of fiel_no/ NEUT_R (CH3N) into cham_no/ TEMP_R:
# --------------------------------------------------------------------
CH3 = CREA_CHAMP (OPERATION =' ASSE ', TYPE_CHAM =' NOEU_TEMP_R', MAILLAGE =MA,
ASSE =_F (TOUT = 'OUI', CHAM_GD = CH3N,
NOM_CMP = ('X3',), NOM_CMP_RESU = ('TEMP',)),)
3.7. Operands for OPERATION = “DISC”#
This operation is used to modify the « discretization » of an existing field. For example, transforming a field at the nodes into fields at the Gauss points.
The two fields (data and result) are associated with the same quantity. There is an exception: the case of operation DISC which allows you to transform a fiel_no_ VAR2_R (or a card_ VAR2_R) into a cham_elem_ VARI_R (see for example the hplp100b test).
The discretization desired by the user for his result field is indicated by the keyword TYPE_CHAM.
Only the following cases are currently processed by the order:
CARTE |
-> CHAM_ELEM/ELNO |
CARTE |
-> CHAM_ELEM/ELGA |
CARTE |
-> CHAM_ELEM/ELEM |
CARTE |
-> CHAM_NO |
CHAM_NO |
-> CHAM_ELEM/ELNO |
CHAM_NO |
-> CHAM_ELEM/ELGA |
CHAM_NO |
-> CHAM_ELEM/ELEM |
CHAM_ELEM/ELNO |
-> CHAM_NO |
CHAM_ELEM/ELGA |
-> CHAM_ELEM/ELNO |
CHAM_ELEM/ELGA |
-> CHAM_NO |
CHAM_ELEM/ELEM |
-> CHAM_ELEM/ELGA |
CHAM_ELEM/ELEM |
-> CHAM_ELEM/ELNO |
The ingredients of the treatments are:
CARTE/ELEM -> ELxx:
The (unique) value carried by a mesh is copied to all the points of the mesh.
NOEU -> ELxx:
The passage of the values of the nodes to the internal points of the mesh is done using the shape functions of the finite elements of the model.
ELGA -> ELNO:
The passage of the values of the internal points to the nodes of the mesh is done using the Gauss->Nodes extrapolation matrix.
ELNO -> NOEU:
The transition to the values of the nodes of the mesh is done by arithmetic mean of the values carried by the nodes of the concurrent elements.
3.7.1. Operand CHAM_GD = ch1#
ch1 is the field whose « discretization » we want to modify.
3.7.2. keyword MODELE#
Same use as for OPERATION = “AFFE” [3.3.2]
3.7.3. example#
# CHXG = CHAMP FROM GEOMETRIE AUX POINTS FROM GAUSS:
# ---------------------------------------------------------
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 =ME, CHAM_GD = CHXN)
3.8. Operands for OPERATION = “NORMALE”#
This operation is used to calculate vectors that are « normal » to the facets of a model. The user must indicate with the keywords MODELE, and GROUP_MA the name of the model concerned as well as the « facets » whose normals he wants to calculate. The « facets » can be « skin » elements of a 3D mesh or plate/shell elements.
For 2D meshes, « facets » are line elements.
The product field is a fiel_no (quantity GEOM_R) whose components are named X, Y, Z. The normal carried by a node is obtained by averaging the normals of the facets competing in this node. The « normal » vector has a length of 1.
3.9. Operands for OPERATION = “EXTR”#
This operation is generally used to extract a field from an SD of the resultat_sdaster type.
There are 5 additional possibilities:
you can extract the geometry field from the nodes of a mesh. You must then use the keywords: MAILLAGE = ma, NOM_CHAM = “GEOMETRIE” and TYPE_CHAM = “NOEU_GEOM_R”.
you can extract the curvilinear abscissa field from a mesh. You must then use the keywords: MAILLAGE = ma, NOM_CHAM = “ABSC_CURV” and TYPE_CHAM = “CART_ABSC_R”.
you can create a field by extracting from a table the values corresponding to pre-established name parameters: MAILLE, NOEUD, POINT, SOUS_POINT, names of the components.
you can extract the « level sets » associated with a crack XFEM. You must then use the keywords:
FISSURE = fiss_xfem, NOM_CHAM =/'LTNO'/'LNNO'
/”GRLTNO”/”GRLNNO” /”STNO”/”STNOR” /”BASLOC”
and TYPE_CHAM = “NOEU_NEUT_R” except “STNO” for which it will be “NOEU_NEUT_I”
'LTNO' level set tangent
'LNNO' level set normal
'GRLTNO' level gradient and tangent
'GRLNNO' normal level-set gradient
'STNO' node status, 1 integer value
'STNOR' status of the nodes, 1 real value
'BASLOC' local base at the bottom of the crack, with 6/9 real values, 2/3 coordinates for the point and 2/3 coordinates for each of the vectors of the local base in 2D/3D
you can extract the different fields contained in the cara_elem and char_meca data structures. Rather, this feature is reserved for developers. For example, it makes it possible to test the content of these data structures.
Example:
CACOQU = CREA_CHAMP (TYPE_CHAM =” CART_CACOQU “, OPERATION =””, =” EXTR “, CARA_ELEM = CARA, NOM_CHAM =”. CARCOQUE “,)
The various fields that can be extracted are given in the table below.
concept |
NOM_CHAM |
size |
Field type |
cara_elem |
“. CAFIBR “ |
CAFI_R |
cham_elem |
cara_elem |
“. CANBSP “ |
NBSP_I |
cham_elem |
cara_elem |
“. CARARCPO “ |
CAARPO |
card |
cara_elem |
“. CARCABLE “ |
CACABL |
card |
cara_elem |
“. CARCOQUE “ |
CACOQU |
card |
cara_elem |
“. CARDINFO “ |
CINFDI |
card |
cara_elem |
“. CARDISCA “ |
CADISA |
card |
cara_elem |
“. CARDISCK “ |
CADISK |
card |
cara_elem |
“. CARDISCM “ |
CADISM |
card |
cara_elem |
“. CARDNSCA “ |
CADISA |
card |
cara_elem |
“. CARDNSCK “ |
CADISK |
card |
cara_elem |
“. CARDNSCM “ |
CADISM |
card |
cara_elem |
“. CARGENBA “ |
CAGNBA |
card |
cara_elem |
“. CARGENPO “ |
CAGNPO |
card |
cara_elem |
“. CARGEOPO “ |
CAGEPO |
card |
cara_elem |
“. CARMASSI “ |
CAMASS |
card |
cara_elem |
“. CARORIEN “ |
CAORIE |
card |
cara_elem |
“. CARPOUFL “ |
CAPOUF |
card |
char_meca |
“. CVENTCXF “ |
VENTCX_F |
card |
char_meca |
“. CHME. EPSIN “ |
EPSI_R |
card |
char_meca |
“. CHME .F1D1D” |
FORC_R |
map |
char_meca |
“. CHME .F1D2D” |
FORC_R |
map |
char_meca |
“. CHME .F1D3D” |
FORC_R |
map |
char_meca |
“. CHME .F2D2D” |
FORC_R |
map |
char_meca |
“. CHME .F2D3D” |
FORC_R |
map |
char_meca |
“. CHME .F3D3D” |
FORC_R |
map |
char_meca |
“. CHME. FCO2D “ |
FORC_R |
card |
char_meca |
“. CHME. FCO3D “ |
FORC_R |
card |
char_meca |
“. CHME. FELEC “ |
FELECR |
card |
char_meca |
“. CHME. FL101 “ |
FLAPLA |
card |
char_meca |
“. CHME. FL102 “ |
FLAPLA |
card |
char_meca |
“. CHME. FLUX “ |
FTHM_R |
card |
char_meca |
“. CHME. FORNO “ |
FORC_R |
card |
char_meca |
“. CHME. IMPE “ |
IMPE_R |
card |
char_meca |
“. CHME. ONDE “ |
ONDE_R |
card |
char_meca |
“. CHME. ONDPL “ |
NEUT_R |
card |
char_meca |
“. CHME. ONDPR “ |
NEUT_R |
card |
char_meca |
“. CHME. PESAN “ |
PESA_R |
card |
char_meca |
“. CHME. PRESS “ |
PRES_R |
card |
char_meca |
“. CHME. ROTAT “ |
ROTA_R |
card |
char_meca |
“. CHME. SIGIN “ |
SIEF_R |
card |
char_meca |
“. CHME. SIINT “ |
NEUT_K8 |
card |
char_meca |
“. CHME. VNOR “ |
SOUR_R |
card |
3.9.1. Result field typing, keyword TYPE_CHAM#
The keyword TYPE_CHAM (required) [§3.2] must be filled in. Apart from the case of extraction in an SD of type DYNA_HARMO, the keyword TYPE_CHAM is deduced from the symbolic name of the extracted field (NOM_CHAM). The table below shows the correspondence between these two keywords.
NOM_CHAM |
TYPE_CHAM |
NOM_CHAM |
TYPE_CHAM |
|
“ACCE” |
“NOEU_DEPL_R” |
“” |
“ETOT_ELEM” |
“ELEM_ENER_R” |
“ACCE_ABSOLU” |
“NOEU_DEPL_R” |
“” |
“ETOT_ELGA” |
“ELGA_ENER_R” |
“COHE_ELEM” |
“ELEM_NEUT_R” |
“” |
“ETOT_ELNO” |
“ELGA_ENER_R” |
“COMPORTEMENT” |
“CART_COMPOR” |
“” |
“FERRAILLAGE” |
“ELEM_FER2_R” |
“COMPORTHER” |
“CART_COMPOR” |
“” |
“FLHN_ELGA” |
“ELGA_FLHN_R” |
“DEGE_ELGA” |
“ELGA_EPSI_R” |
“” |
“FLUX_ELGA” |
“ELGA_FLUX_R” |
“DEGE_ELNO” |
“ELNO_EPSI_R” |
“” |
“FLUX_ELNO” |
“ELNO_FLUX_R” |
“DEGE_NOEU” |
“NOEU_EPSI_R” |
“” |
“FLUX_NOEU” |
“NOEU_FLUX_R” |
“DEPL” |
“NOEU_DEPL_R” |
“” |
“FORC_AMOR” |
“NOEU_DEPL_R” |
“DEPL_ABSOLU” |
“NOEU_DEPL_R” |
“” |
“FORC_EXTE” |
“NOEU_DEPL_R” |
“DEPL_VIBR” |
“NOEU_DEPL_R” |
“” |
“FORC_LIAI” |
“NOEU_DEPL_R” |
“DERA_ELGA” |
“ELGA_DERA_R” |
“” |
“FORC_NODA” |
“NOEU_DEPL_R” |
“DERA_ELNO” |
“ELNO_DERA_R” |
“” |
“GEOMETRIE” |
“NOEU_GEOM_R” |
“DERA_NOEU” |
“NOEU_DERA_R” |
“” |
“HYDR_ELNO” |
“ELNO_HYDR_R” |
“DISS_ELEM” |
“ELEM_DISS_R” |
“” |
“HYDR_NOEU” |
“NOEU_HYDR_R” |
“DISS_ELGA” |
“ELGA_DISS_R” |
“” |
“INDC_ELEM” |
“ELEM_NEUT_I” |
“DISS_ELNO” |
“ELNO_DISS_R” |
“” |
“INDL_ELGA” |
“ELGA_INDL_R” |
“DISS_NOEU” |
“NOEU_DISS_R” |
“” |
“INTE_ELNO” |
“ELNO_INTE_R” |
“DIVU” |
“NOEU_EPSI_R” |
“” |
“INTE_NOEU” |
“NOEU_INTE_R” |
“DURT_ELNO” |
“ELNO_DURT_R” |
“” |
“IRRA” |
“NOEU_IRRA_R” |
“DURT_NOEU” |
“NOEU_DURT_R |
“ META_ELNO “ |
“ ELNO_VARI_R “ |
|
“ECIN_ELEM” |
“ELEM_ENER_R” |
“” |
“META_NOEU” |
“NOEU_VARI_R” |
“EFGE_ELGA” |
“ELGA_SIEF_R” |
“” |
“MODE_FLAMB” |
“NOEU_DEPL_R” |
“EFGE_ELNO” |
“ELNO_SIEF_R” |
“” |
“MODE_STAB” |
“NOEU_DEPL_R” |
“EFGE_NOEU” |
“NOEU_SIEF_R” |
“” |
“NEUT” |
“NOEU_NEUT_R” |
“ENDO_ELGA” |
“ELGA_SIEF_R” |
“” |
“PDIL_ELGA” |
“ELGA_PDIL_R” |
“ENDO_ELNO” |
“NOEU_SIEF_R” |
“” |
“PRAC_ELNO” |
“ELNO_PRAC_R” |
“ENDO_NOEU” |
“ELNO_SIEF_R” |
“” |
“PRAC_NOEU” |
“NOEU_PRAC_R” |
“ENEL_ELEM” |
“ELEM_ENER_R” |
“” |
“PRES” |
“NOEU_PRES_C” |
“ENEL_ELGA” |
“ELGA_ENER_R” |
“” |
“PRME_ELNO” |
“ELNO_PRME_R” |
“ENEL_ELNO” |
“ELNO_ENER_R” |
“” |
“PTOT” |
“NOEU_DEPL_R” |
“ENEL_NOEU” |
“NOEU_ENER_R” |
“” |
“QIRE_ELEM” |
“ELEM_ERRE_R” |
“EPEQ_ELGA” |
“ELGA_EPSI_R” |
“” |
“QIRE_ELNO” |
“ELNO_ERRE_R” |
“EPEQ_ELNO” |
“ELNO_EPSI_R” |
“” |
“QIRE_NOEU” |
“NOEU_ERRE_R” |
“EPEQ_NOEU” |
“NOEU_EPSI_R” |
“” |
“QIZ1_ELEM” |
“ELEM_ERRE_R” |
“EPFD_ELGA” |
“ELGA_EPSI_R” |
“” |
“QIZ2_ELEM” |
“ELEM_ERRE_R” |
“EPFD_ELNO” |
“ELNO_EPSI_R” |
“” |
“REAC_NODA” |
“NOEU_DEPL_R” |
“EPFD_NOEU” |
“NOEU_EPSI_R” |
“” |
“SECO_ELEM” |
“ELEM_NEUT_R” |
“EPFP_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIEF_ELGA” |
“ELGA_SIEF_R” |
“EPFP_ELNO” |
“ELNO_EPSI_R” |
“” |
“SIEF_ELNO” |
“ELNO_SIEF_R” |
“EPFP_NOEU” |
“NOEU_EPSI_R” |
“” |
“SIEF_NOEU” |
“NOEU_SIEF_R” |
“EPME_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIEQ_ELGA” |
“ELGA_SIEF_R” |
“EPME_ELNO” |
“ELNO_EPSI_R” |
“” |
“SIEQ_ELNO” |
“ELNO_SIEF_R” |
“EPMG_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIEQ_NOEU” |
“NOEU_SIEF_R” |
“EPMG_ELNO” |
“ELNO_EPSI_R” |
“” |
“SIGM_ELGA” |
“ELGA_SIEF_R” |
“EPMG_NOEU” |
“NOEU_EPSI_R” |
“” |
“SIGM_ELNO” |
“ELNO_SIEF_R” |
“EPMQ_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIGM_NOEU” |
“NOEU_SIEF_R” |
“EPMQ_ELNO” |
“ELNO_EPSI_R” |
“” |
“SING_ELEM” |
“ELEM_SING_R” |
“EPMQ_NOEU” |
“NOEU_EPSI_R” |
“” |
“SING_ELNO” |
“ELNO_SING_R” |
“EPOT_ELEM” |
“ELEM_ENER_R” |
“” |
“SIPM_ELNO” |
“ELNO_SIEF_R” |
“EPSA_ELNO” |
“ELNO_EPSI_R” |
“” |
“SIPO_ELNO” |
“ELNO_SIEF_R” |
“EPSA_NOEU” |
“NOEU_EPSI_R” |
“” |
“SIPO_NOEU” |
“NOEU_SIEF_R” |
“EPSG_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIRO_ELEM” |
“ELEM_SIEF_R” |
“EPSG_ELNO” |
“ELNO_EPSI_R” |
“” |
“SISE_ELNO” |
“ELNO_SIEF_R” |
“EPSG_NOEU” |
“NOEU_EPSI_R” |
“” |
“SIZ1_NOEU” |
“NOEU_SIEF_R” |
“EPSI_ELGA” |
“ELGA_EPSI_R” |
“” |
“SIZ2_NOEU” |
“NOEU_SIEF_R” |
“EPSI_ELNO” |
“ELNO_EPSI_R” |
“” |
“SOUR_ELGA” |
“ELGA_SOUR_R” |
“EPSI_NOEU” |
“NOEU_EPSI_R” |
“” |
“STRX_ELGA” |
“ELGA_STRX_R” |
“EPSP_ELGA” |
“ELGA_EPSI_R” |
“” |
“TEMP” |
“NOEU_TEMP_R” |
“EPSP_ELNO” |
“ELNO_EPSI_R” |
“” |
“THETA” |
“NOEU_DEPL_R” |
“EPSP_NOEU” |
“NOEU_EPSI_R” |
“” |
“UTXX_ELGA” |
See note below |
“EPVC_ELGA” |
“ELGA_EPSI_R” |
“” |
“UTXX_ELNO” |
See note below |
“EPVC_ELNO” |
“ELNO_EPSI_R” |
“” |
“UTXX_NOEU” |
See note below |
“EPVC_NOEU” |
“NOEU_EPSI_R” |
“” |
“VAEX_ELGA” |
“ELGA_NEUT_R” |
“ERME_ELEM” |
“ELEM_ERRE_R” |
“” |
“VAEX_ELNO” |
“ELNO_NEUT_R” |
“ERME_ELNO” |
“ELNO_ERRE_R” |
“” |
“VAEX_NOEU” |
“NOEU_NEUT_R” |
“ERME_NOEU” |
“NOEU_ERRE_R” |
“” |
“CONT_NOEU” |
“NOEU_INFC_R” |
“ERTH_ELEM” |
“ELEM_ERRE_R” |
“” |
“VARC_ELGA” |
“ELGA_VARC_R” |
“ERTH_ELNO” |
“ELNO_ERRE_R” |
“” |
“VARI_ELGA” |
“ELGA_VARI_R” |
“ERTH_NOEU” |
“NOEU_ERRE_R” |
“” |
“VARI_ELNO” |
“ELNO_VARI_R” |
“ERZ1_ELEM” |
“ELEM_ERRE_R” |
“” |
“VARI_NOEU” |
“NOEU_VAR2_R” |
“ERZ2_ELEM” |
“ELEM_ERRE_R” |
“” |
“VITE” |
“NOEU_DEPL_R” |
“ETHE_ELEM” |
“ELEM_ENER_R” |
“” |
“VITE_ABSOLU” |
“NOEU_DEPL_R” |
Notes:
The « user » fields named UT01_ELGA,…, UT19_ELNO can be associated with different sizes depending on the context. To find out the name of the quantity, you can look at the table written in the.mess file at the end of execution associated with the result data structure.
For DYNA_HARMO, NOM_CHAM can take three values: “DEPL”, “VITE”, and “ACCE”. In all three cases, the type of the result field is a CHAM_NO/DEPL_C and you must therefore enter: TYPE_CHAM =” NOEU_DEPL_C “.
3.9.2. Operand TABLE#
♦ TABLE = table
Name of the concept table containing the values to be stored in the field. The names of the parameters in the table must follow certain rules. The names of the meshes and the nodes must be coded on 8 characters, tables printed in the format “TABLEAU” print the strings on 24 characters by default, so it is preferable to use the format “ASTER” when reading the tables again to specify the format of the character strings and to indicate K8 for the parameters NOEUD and MAILLE.
The columns containing the values in the field (real) must be identified by their component name in the quantity. For example: DX, DY, DZ for moving (DEPL_R).
The other columns to be filled in depend on the type of field to be created:
Field Type |
Column 1 |
Column 2 |
Column 3 |
NOEUD_XXXX |
|
||
ELEM_XXXX |
|
[SOUS - POINT] |
|
ELNO_XXXX |
|
|
[SOUS - POINT] |
ELGA_XXXX |
|
|
[SOUS - POINT] |
Parameter NOEUD contains the name of the node.
Parameter MAILLE contains the name of the mesh.
Parameter POINT contains the number of the Gauss point in the mesh.
Parameter SOUS_POINT (only required for fields with « subpoints ») contains the number of the subpoint in the Gauss point (or node).
Warning: the table must not contain any columns other than the expected columns (for example: NUME_ORDRE, INST,…). If the table contains unnecessary columns, remove them using the command CALC_TABLE + OPERATION =” EXTR “.
3.9.3. Operand RESULTAT#
♦ RESULTAT = resu
Name of the result concept in which you want to retrieve a field.
3.9.4. Operand NOM_CHAM#
♦ NOM_CHAM
This keyword specifies the symbolic name of the field to be extracted [U4.71.00].
3.9.5. Operands NUME_ORDRE/NUME_MODE/NOM_MODE/…/INTERPOL#
These keywords are used to specify what is the serial number of the SD_RESULTAT that you want to extract.
Which keywords to use depends on the type of SD_RESULTAT [U4.71.00].
Remarks
When using INTERPOL = “LIN”, the extracted field will be an interpolation between two fields in the SD_RESULTAT. This interpolation does not always make « physical » sense; for example on specific modes. This keyword should only be used for SD_RESULTATde type « evol_xxxx »
When using a « real » access (INSTou FREQ), you are looking for a field within a given interval. If several fields are found in the interval, the program terminates in a fatal error.
3.9.6. Calculation of a field containing the « extrema » of a SD_RESULTAT#
The idea is to create a field containing at each point in space the extreme value encountered during a transient (or the moment at which this value was encountered).
Today this paragraph only concerns evol_ther, evol_elas, evol_noli and dyna_trans results. The fields are always « real ».
We must specify:
the order numbers defining the transitory: TOUT_ORDRE, LIST_INST,
the type of end chosen: TYPE_MAXI = “MAXI”,… , “MINI_ABS”, “NORM_TRAN”,
what we want: the extreme value or the moment when this value is reached (TYPE_RESU).
3.9.6.1. Operand TYPE_MAXI#
/”MAXI” |
we consider the maximum reached by the components during the transition, |
/”MAXI_ABS” |
we consider the maximum reached by the absolute value of the components during the transition, |
/”MINI” /”MINI_ABS” |
same for the minimums, |
/”NORM_TRAN” |
we consider the maximum reached by the quantity: DX**2 + DY**2 + DZ**2. |
for the 4 values: “MAXI”,… , “MINI_ABS”, the components of the field are treated independently of each other: extreme values may not be reached at the same time,
the fifth possible value: “NORM_TRAN” is only possible for the fields of Depl_r. At a given point, we look for the moment when the norm of the translation vector is maximum and we copy all the components of the field at the moment found into the result field in the result field.
3.9.6.2. Operand TYPE_RESU#
/”VALE”, |
the result field contains the extreme values encountered during the transition, |
Note:
Even if the extremum was obtained with an absolute value (“MAXI_ABS “or “ MINI_ABS”), the stored value is algebraic. You must use VALE_ABSpour to have the absolute value.
/”INST”, |
the result field contains the values of the times when the extreme values were encountered. |
Note:
S i for example:
NOM_CHAM = “FLUX_ELNO”,
TYPE_RESU = “INST”,
The result field is a FLUX_R field that contains moment values!
/”VALE_ABS”, |
only available with an absolute TYPE_MAXI (“MAXI_ABS” or “MINI_ABS”), the result field then contains the extreme absolute values encountered during the transition. |
3.9.6.3. Operands TOUT_ORDRE/LIST_INST/LIST_FREQ/PRECISION/CRITERE#
These keywords make it possible to specify the extent of the transition to be examined.
If TOUT_ORDRE = “OUI” we go through all the order numbers.
If LIST_INST = linst we only consider the specified times.
3.9.7. Examples#
3.9.7.1. Extraction of a temperature field from a result concept such as evol_ther#
temp10 = CREA_CHAMP (OPERATION =' EXTR ',
NOM_CHAM = 'TEMP', TYPE_CHAM = 'NOEU_TEMP_R',
RESULTAT = evoth, INST = 10.)
temp10 is the temperature field extracted from the evoth result (of the evol_ther type) at time 10.
3.9.7.2. Extraction of a displacement field from a result concept of the mode_meca type#
mode4 = CREA_CHAMP (OPERATION =' EXTR ',
NOM_CHAM = 'DEPL', TYPE_CHAM = 'NOEU_DEPL_R',
RESULTAT = fashion, NUME_MODE = 4)
mode4 is the 4th clean mode of the modes result (of the mode_meca type).
Extraction of the « temperature » field containing the times when the maximum temperature was reached during a transition ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
instmax = CREA_CHAMP (OPERATION =' EXTR ',
NOM_CHAM = 'TEMP', TYPE_CHAM = 'NOEU_TEMP_R',
RESULTAT = evoth,
TYPE_MAXI = “MAXI”, TYPE_RESU = “INST”)
3.9.7.3. Extracting a constraint field from a table#
Consider the file (fort.81) containing the image of the following table:
# DEBUT_TABLE
# TITRE CONTRAINTE `ELNO '
MAILLE POINT SIXX SIYY SIZZ
K8 I R R R
M1 1 -1.632E+03 -2.553E+02 6.788E-01
M1 2 -5.302E+03 -9.663E+01 6.018E+01
M1 3 -3.638E+03 -1.058E+02 5.669E+01
M2 1 5.632E+01 1.553E+02 3.788E-01
# FIN_TABLE
You can extract a « constraints » field at the nodes of this table by doing:
# reading the table:
TA= LIRE_TABLE (UNITE =81, TYPE_TABLE =” TABLE “, SEPARATEUR =””)
# extracting the field from the table:
CH= CREA_CHAMP (OPERATION =” EXTR “, TYPE_CHAM =” ELNO_SIEF_R”, TABLE =”TA”,
MODELE =MO, PROL_ZERO =” OUI “, OPTION =” SIEF_ELNO_DEPL”)
3.9.7.4. Calculation of the « normal » field on a group of elements#
nor_ DNOR = CREA_CHAMP (TYPE_CHAM = “NOEU_GEOM_R”,
OPERATION = “NORMALE”, MODELE = MO, GROUP_MA = “FE”);