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, )

/THER = _F (♦ RHO_CP = cp,

♦ 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.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:

POUTRE =_F (♦/MAILLE = lma, [l_mesh]

/GROUP_MA = lgma, [l_gr_mesh] ♦/SECTION = “GENERALE”, /# constant section ◊ CARA= | “A” | “IY” | “IZ”

list of choices | “AY” | “AZ”

possible for a | “EY” | “EZ”

constant section | “JX”

“RY” | “RIZ” | “RT”,

/# variable section ◊ CARA= | “A1” | “A2” | “IY1” | “IY2” | “IZ1” | “IZ2”

list of choices | “AY1” | “AY2” | “AZ1” | “AZ2” | “AZ2”

possible for a | “EY1” | “EY2” | “EZ1” | “EZ2”

variable section | “JX1” | “JX2”

“RY1” | “RY2” | “RZ1” | “RZ2” | “RT1” | “RT2”,

)

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:

  1. [R]

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.