4. Syntax paragraph#
In this paragraph, all the operands of the command are given. For each operand, we specify, using metacharacters and indentations specific to the typographical presentation of the commands (cf. example of operator AFFE_MATERIAU):
the name of the operator,
the name of the keywords,
the symbolic user names of the product concept and keyword arguments,
the mandatory or optional nature of operands (status),
the alternatives in the choice of operands,
the types of arguments expected by the keywords,
the default values taken by the arguments in the case of optional operands,
the type of product concept, when it comes to an operator.
Symbolic name of
Product concept
Type of
Product concept
Operator name
Name
Symbolic of the argument
_subdue] = AFFE_MATERIAU
cham
[
chm
Argument
Imposed type
text
[mesh]
MAILLAGE = my,
♦
(
♦
♦
Meta character
« mandatory »
/ TOUT = “OUI”,
AFFE =_F (
, [l_mesh]
lma
/ MAILLE =
/ GROUP_MA =
[l_gr_mesh]
,
lgma
Type of concept
expected user
[subdue]
MATER = matt,
♦
Meta character
« optional »
//
TEMP_REF =/0., [DEFAUT]
/
[R]
,
tref
Argument
by default
Argument type
waited
)
Meta character
« alternative »
);
Overview of the syntax (partial) of the AFFE_MATERIAU operator
4.1. Operand status metacharacters (♦ ◊/|)#
Four metacharacters are used to indicate the status of operands. Here, the status of operands should be understood to mean their mandatory or optional declaration and the nature of the alternatives in the choice of operands.
These metacharacters are not part of the command language. They only have a documentary presentation function and should therefore not be used to write the command file.
4.1.1. Mandatory or optional operands#
They are identified by the presence of a black or white diamond at the head.
♦ |
black diamond: it is mandatory to declare in the command the operand (s) following this sign. |
◊ |
white diamond: the declaration of the operand (s) following this sign is optional. In case of absence of the operand, the command will possibly assign one or more values by default. |
Example: operator DEFI_LIST_ENTI |
(definition of a list of strictly increasing integers whose values are evenly spaced) |
li = DEFI_LIST_ENTI
(♦ DEBUT = deb,
◊ INTERVALLE = _F (♦ JUSQU_A = if, ♦ PAS = not, ) )
It is mandatory to declare the operand identified by the DEBUT keyword and to provide deb which is the first integer in the list to be constructed.
It is not mandatory to declare the operand identified by the keyword factor INTERVALLE. In this case the list of integers will be reduced to a single integer with a value of deb (this is specified in the description of the operands).
If operand INTERVALLE is declared, then it is mandatory to declare operand JUSQU_A which specifies the integer end if of the interval to be cut with a constant step and operand PAS which indicates the step ipas for slicing the interval.
4.1.2. Alternatives in choosing operands#
They are identified by the presence at the top of each alternative choice:
of a/(slash): exclusive alternative, only one choice among those proposed,
of a | (pipe, semi colon): non-exclusive alternative, one or more choices among those proposed.
Example of an exclusive alternative: operator AFFE_MODELE |
(assignment of the type of finite elements on all or part of a mesh). |
mo = AFFE_MODELE (
♦ MAILLAGE = my ♦ AFFE = _F (♦/TOUT = “OUI”, /MAILLE = mail, [l_mesh] /NOEUD = node, [l_node] /GROUP_MA = g_mail, [l_gr_mesh] /GROUP_NO = g_node, [l_gr_node] … )
);
In operand AFFE (mandatory) you must indicate where, on the mesh, the type of finite element specified in operands PHENOMENE and MODELISATION of the same command will be assigned:
or all over the mesh (TOUT),
or on certain stitches (MAILLE),
or on some nodes (NOEUD),
or on certain mesh groups (GROUP_MA),
or on certain groups of nodes (GROUP_NO).
Example of a non-exclusive alternative:
operator AFFE_CHAR_MECA operand DDL_IMPO |
(assignment of movements imposed on degrees of freedom). |
/NOEUD = lno, [l_node] /GROUP_NO = lgno, [l_gr_node] /MAILLE = lma, [l_mesh] /GROUP_MA = lgma, [l_gr_mesh] ♦ | DX = ux, [R] | DY = uy, [R] | DZ = uz, [R] | DRX = x, [R] | DRY = y, [R] | DRZ = z, [R] | GRX = g, [R] | PRES= p, [R] | PHI =, [R] | TEMP= T, [R] | PRE1= pr1, [R] | PRE2= pr2, [R] )
In this operator, it is mandatory to specify:
the field of application on the mesh: everywhere (TOUT), on certain nodes (NOEUD) or on certain groups of nodes (GROUP_NO),
on what degrees of freedom with what values imposed by the user.
The | meta character indicates that the user can impose a displacement value on one (the ♦ symbol indicates that at least one is needed) or several of the degrees of freedom (DX, DY, DZ, DRX, DRY, DRZ, DRX, DRY, DRY, DRZ, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY, DRZ, GRX, DRY
4.1.3. Combinations of metacharacters for choosing operands#
These metacharacters can be combined to illustrate the multiplicity of choices in some commands.
Exam: command DEFI_MATERIAU (definition of a material by its behavioral properties)
For a thermomechanics study, we need to define a material having both mechanical (ELAS) and thermal (THER) characteristics, hence the use of the pipe: |
But in each choice, we are forced to choose whether the properties of the material are dependent (_FO) or not on the temperature, hence the use of slash: /; see below:
ma = MATERIAL CHALLENGE (| /ELAS = _F (♦ E = yg,
♦ NU = naked, ◊ RHO = rho, ◊ ALPHA = eye, ) … /ELAS_FO =_F (♦ E = f1, ♦ NU = f2, ◊ RHO = f3, ◊ ALPHA = f4, )
♦ LAMBDA = the, ) … /THER_FO =_F (♦ RHO_CP = g1, ♦ LAMBDA = g2, ) … );
4.2. Concept or argument type metacharacters#
Like operand status metacharacters, brackets [] and the star * are not part of the command language. They only have a documentary presentation function.
4.2.1. Types of concepts or arguments []#
They frame the type of concepts produced as well as the type of arguments.
Exam: command AFFE_MODELE (Assigning finite elements to the meshes of a mesh)
mo [model] = AFFE_MODELE
(♦ MAILLAGE = ma, [mesh]
♦ AFFE =_F (♦/TOUT = “OUI”, /MAILLE = mail, [l_mesh]
…
)
In the example above, we therefore specify that the concept produced by AFFE_MODELE is of the model type and that the concept expected as an argument of the MAILLE keyword must be of type l_mesh (i.e. mesh list).
4.2.2. Product concept type [*]#
This metacharacter indicates that the type of the product concept, or the subtype of the results-type product concept, depends on the types of the arguments of certain operands. In this case the various possibilities are written after the syntax of the command.
Example: command CREA_CHAMP
In this example, ch2 will be a node field, a map, or an element-wise field depending on the value of TYPE_CHAM.
ch2 [*] = CREA_CHAMP
(♦ TYPE_CHAM =/”NOEU_xxxx”, [Kn] /”CART_xxxx”, /”ELGA_xxxx”, /”ELNO_xxxx”, /”ELEM_xxxx”, )
If TYPE_CHAM = “NOEU_TEMP_R” then [*] = CHAM_NO_TEMP_R
“NOEU_DEPL_R” CHAM_NO_DEPL_R … “CART_TEMP_R” CARTE_TEMP_R “CART_DEPL_R” CARTE_DEPL_R …
4.4. Types of arguments expected by keywords#
Operand keywords expect arguments that correspond, in general, to four classes:
values, the accepted computer type is then specified by a symbolic name (real, integer, character string, etc…),
imposed texts, then the text (s) (“OUI”, “HY1”) are indicated between quotes,
names of simple topological entities (names of nodes, meshes, or lists of names), declared in the mesh file, or names of groups of nodes or meshes, or lists of names of groups of nodes or meshes, or lists of names of groups of nodes or meshes,
names and lists of concept names produced by operators.
The table below shows all the main types of arguments expected by the keywords:
|
real |
|
[L_r] |
list of reals |
(1., 3., 7.) |
[I] |
integer |
7 |
[L_i] |
integer list |
(9, 6, 1, 9) |
[C] |
complex |
RI 1.1, 7.8 or MP 10.,1.57 |
[L_c] |
list of complexes |
(RI 1.1, 7.), (RI 4.7, 9.) |
[TXM] |
unconstrained text (name of TITRE… ) |
“my title” |
[Kn] |
text less than or equal to n characters |
“INST” |
[L_kn] |
list of texts less than or equal to n characters |
(“SIXX”, “SIYY”, “SIXY”) |
[node] |
node name |
N23 |
[l_node] |
list of node names |
(N23, N24, N25) |
[gr_node] |
name of group of nodes |
NBORD6 |
[l_gr_node] |
list of node group names |
(NBORD, NBASE, NBORD) |
[mesh] |
mesh name |
M34 |
[l_mesh] |
mesh name list |
(M34, M35) |
[gr_mesh] |
name of group of elements |
MPIQUAGE |
[l_gr_mesh] |
list of mesh group names |
(MSOM, MDROI, MGA) |
[type_concept] |
type of concept (or field) produced beforehand with generally automatic verification of the type |
monresu |
[l_type_concept] |
user concept type list |
(resu1, resu2) |
4.5. Types of concepts produced in Aster#
The exclusive alternative choice meta-character/is used to mean the plurality of expected concepts behind a keyword.
Example: operator ASSE_MATRICE |
(assembly of elementary matrices contained in a list of concepts of type matr_elem_*.) |
my [mass_mass_*] = ASSE_MATRICE
(♦ MATR_ELEM = lmel,/[l_matr_elem_ DEPL_R] /[l_matr_elem_ DEPL_C] /[l_matr_elem_ TEMP_R] /[l_matr_elem_ TEMP_C] /[l_matr_elem_ PRES_R] /[l_matr_elem_ PRES_C]
…
);
simatr_elem [matr_elem_ DEPL_R] then [*] DEPL_R
[matr_elem_ DEPL_C] DEPL_C [matr_elem_ TEMP_R] TEMP_R [matr_elem_ TEMP_C] TEMP_C [matr_elem_ PRES_R] PRES_R [matr_elem_ PRES_C] PRES_C
In the example above, the concept expected as an argument to MATR_ELEM can be of different types and the type of concept passed as an argument by the user will depend (according to the rules set out above) on the typing of the concept produced by the ASSE_MATRICE operator.
4.3. Comments#
For some complex commands such as AFFE_CARA_ELEM or DEFI_MATERIAU for example, the comment character is used to comment operand alternatives. It has the same meaning as in command language and is interpreted as such by the supervisor.
Example for AFFE_CARA_ELEM:
/GROUP_MA = lgma, [l_gr_mesh] ♦/SECTION = “GENERALE”, /# constant section ◊ CARA= | “A” | “IY” | “IZ”
/# variable section ◊ CARA= | “A1” | “A2” | “IY1” | “IY2” | “IZ1” | “IZ2”
)