3. Operands#
3.1. Concepts created by the macro command#
This macro command creates several typical concepts:
a matrix_ for each occurrence of the keyword factor MATR_ASSE (keyword MATRICE),
a fiel_no for each occurrence of the keyword factor VECT_ASSE (keyword VECTEUR),
possibly a nume_ddl (keyword NUME_DDL) if this one does not exist beforehand.
For example, let’s say the sequence:
...
# naked is not a concept that still exists.
ASSEMBLAGE (MODELE = me,...
NUME_DDL = CO (« naked »), MATR_ASSE = (_F (MATRICE = CO (« K »), OPTION =” RIGI_MECA “), VECT_ASSE = (_F (VECTEUR = CO (« F »), OPTION =” CHAR_MECA “))
ASSEMBLAGE (MODELE = me,…
NUME_DDL = naked, MATR_ASSE = (_F (MATRICE =CO (« M »), OPTION =” MASS_MECA “), _F (MATRICE =CO (« A »), OPTION =” AMOR_MECA “),
),)
the 1st reminder to ASSEMBLAGEcrée |
1 MATR_ASSE: K |
1 VECT_ASSE: F |
|
1 NUME_DDL: naked |
|
the 2nd call to ASSEMBLAGEcrée |
2 MATR_ASSE: Put A |
Note:
During the 2nd call, the concept nume_ddl is provided (it exists, it was created by the 1st call). In this case, it is supposed to be suitable for the 2 matr_asse to be created; it is therefore important that the nume_ddl is first calculated for an « RIGIDITE » option to contain the Lagrange nodes of the blocking loads (cf. * CALC_MATR_ELEM [U4.61.01]).
In the previous example, the 3 matr_assek, Met A, and the vector F rely on the same numbering of the unknowns (nu). This is a necessary condition for natural mode search algorithms.
3.2. Operands MODELE/CHAM_MATER/CARA_ELEM/INST#
♦ MODELE = mo
This operand is used to indicate the elements for which the elementary calculations must be carried out: remember that the finite elements are for the most part defined in the model.
There are a few exceptions:
The elements of dualization of the conditions of DIRICHLET, that is to say the elements that make it possible to impose conditions on the degrees of freedom of movement in mechanics, the degrees of freedom of temperature in thermal and the degrees of freedom of pressure in acoustics.
Nodal loading elements, heat exchange elements between walls,…
These elements are defined in concepts such as char_meca, char_ther, or char_acou.
We must therefore provide the l_char argument for the calculation of assembled stiffness matrices: RIGI_MECA, RIGI_THER, RIGI_ACOU, RIGI_MECA_HYST and RIGI_THER_CONV (_D).
◊ CHAM_MATER = to kill
Name of the material field where the material characteristics of the elements are defined.
This argument is almost always necessary.
In practice, we can do without:
for discrete elements whose elementary matrices are defined in the cara_elem concept. See AFFE_CARA_ELEM [U4.42.01],
for the calculation of rigidities due to the dualization of boundary conditions.
◊ CARA_ELEM = character
Carac elementary characteristics are necessary if there are structural elements (beam, shell or discrete elements) or non-isotropic continuous elements in the model.
◊ INST = GST
The tps argument is used when hardware characteristics or loads depend on time. A fairly frequent case is that of a mechanical material dependent on temperature which itself depends on time.
3.3. Operands CHARGE#
◊ CHARGE = l_char
This operand has several distinct functions:
specify the elements for which the elementary stiffness calculations are made (conditions of DIRICHLET),
for the options” RIGI_THER_CONV (_D) “: give the value of the convection speed,
for option “IMPE_MECA”: give the value of the acoustic impedance of the edge cells,
for option “ONDE_FLUI”: give the value of the pressure of the incident wave,
for the “RIGI_ROTA” option: give the value of the rotation imposed on the model.
Note:
Warning for both operand s CHARGE : The one*sub* VECT_ASSE cannot replace the one under ASSEMBLAGE. If you only enter CHARGE sub VECT_ASSE * , the loads are not taken into account in the functions below.
When calling the macro command for assembling vectors in the case where the concept nu me_ddl is incoming (under the keyword NUME_DDL ), the value of the keyword CHARGE l_char must be identical to the one used to create d u nume_ddl .
For example, this is the following sequence:
...
# naked is not a concept that still exists.
ASSEMBLAGE (MODELE = mo, CHARGE = (char_1, char_2),...
NUME_DDL = CO (« naked »), MATR_ASSE = (_F (MATRICE = CO (« K »), OPTION =” RIGI_MECA “))
# naked exists and is an incoming concept.
ASSEMBLAGE (MODELE = mo, CHARGE = (char_1, char_2),…
NUME_DDL = naked, VECT_ASSE = (_F (VECTEUR =CO (« F »), OPTION =” CHAR_MECA “, CHARGE = CHAR_F),),)
3.4. Operand CHAR_CINE#
◊ CHAR_CINE = lchci
This operand makes it possible not to « dualize » certain conditions at the Dirichlet limits (blocks). These will be eliminated.
3.5. Operand NUME_DDL#
♦ NUME_DDL = naked
The macro user should always give a concept name behind the NUME_DDL keyword. If the concept does not exist, it is created.
If the concept exists, it is used to number matrices.
3.6. Keyword MATR_ASSE#
This factor keyword allows you to request the calculation of an assembled matrix (at each occurrence).
The name of the assembled matrix is given by the operand MATRICE and the « nature » of the matrix is defined by the operand OPTION.
Possible options: “RIGI_MECA”, “MASS_MECA”,… are described in [U4.61.01].
The choice of the option determines the type of the matrix_* result [U4.61.01].
3.6.1. Operands specific to certain options#
3.6.1.1. Operand MODE_FOURIER#
◊ MODE_FOURIER = nh
Positive or zero integer indicating the harmonic of FOURIER on which the matrices are calculated.
By default: nh = 0
3.6.1.2. Operand SIEF_ELGA (option “RIGI_GEOM”)#
♦ SIEF_ELGA = sig
The constraint field sig given for the calculation of the option “RIGI_GEOM” must have been calculated with the option “SIEF_ELGA” (constraint field at the points of GAUSS of the elements) (cf. commands CALC_CHAM_ELEM [U4.81.03] or CALC_CHAMP [U4.81.04]).
3.6.1.3. Operand GROUP_MA (options” MECA_GYRO “and” RIGI_GYRO “)#
◊ GROUP_MA = GRMA
You can restrict the calculation of the 'MECA_GYRO' and 'RIGI_GYRO' options to the meshes specified by GROUP_MA.
3.6.1.4. Operands AMOR_FLUI, VNOR, and TYPE_AMOR#
◊ AMOR_FLUI =
This option allows us to deactivate the contribution of absorbent fluid boundaries (”3D_ FLUI_ABSO “, “2D_ FLUI_ABSO” and “AXIS_FLUI_ABSO”). In particular, if the fluid formulation \(u-p-\phi\) is used in a harmonic calculation, it is possible to take into account the contribution of the absorbent fluid boundaries via the calculation of a third-order matrix (with option IMPE_MECA). This third-order matrix can only be used in a harmonic calculation (operand MATR_IMPE_PHI in DYNA_VIBRA) and allows us to symmetrize the matrix (in contrast to calculating this contribution via AMOR_MECA). The option AMOR_FLUI = “NON” saves us from calculating this contribution twice. By default, AMOR_FLUI = “OUI”. This operand is available exclusively for option AMOR_MECA.
◊ VNOR =
This option allows us to take into account the case of an emissive border. The most common case is the radiative one (or partially radiative if we define a reflection coefficient \(\alpha \ne 0\)). In the case of a radiative border VNOR = 1. (option activated by default). In the case of an emissive border VNOR = -1. This coefficient is multiplied by the value of the impedance of the absorbing fluid boundaries (”3D_ FLUI_ABSO “, “2D_ FLUI_ABSO “and” AXIS_FLUI_ABSO “). This operand is available exclusively for options AMOR_MECA, IMPE_MECA, and AMOR_ACOU.
◊ TYPE_AMOR =
This option allows us to calculate all the damping sources present in the model or only the source linked to the absorbent boundary elements (fluid or not). The option by default (TYPE_AMOR = “TOUT”) takes into account possible Rayleigh damping, the damping coming from discrete elements and that coming from the absorbent boundary elements. In this case it is necessary to provide either the mass and stiffness matrices for Rayleigh damping (and the material field), or the characteristics of the discrete elements. If there is only damping coming from the absorbent boundary elements, it is necessary to specify TYPE_AMOR = “ABSO” and provide only the material field as input. This operand is available exclusively for option AMOR_MECA.
3.7. Keyword VECT_ASSE#
This factor keyword allows you to request the calculation of an assembled vector (at each occurrence).
The name of the assembled vector is given by operand VECTEUR.
In the possible options for elementary calculation and vector assembly, only some possibilities among all those proposed in commands CALC_VECT_ELEM and ASSE_VECTEUR are proposed here: “CHAR_MECA” for mechanical phenomena, “CHAR_THER” and “CHAR_ACOU” for thermal and acoustic phenomena respectively.
The set of options and associated operands are described in [u4.61.02] and [u4.61.23].
Note:
The “FORC_NODA” option and the consideration of a model containing substructures under the “CHAR_MECA” option, often used in the case of statics, are not available in this macro-command.
3.7.1. Operands specific to certain options#
3.7.1.1. Operand MODE_FOURIER#
◊ MODE_FOURIER = nh
Positive or zero integer indicating the harmonic of FOURIER on which the vectors are calculated in the case of mechanical phenomena.
By default: nh = 0
3.7.1.2. Operand CHARGE#
◊ CHARGE = l_char_v
This operand provides access to loading information specific to each vector. The values of l_char_v complement (by addition) the l_char loads specified under the CHARGE keyword outside of the VECT_ASSE keyword.
Note:
Duplicates in the loads given in l_char and l_char v are forbidden.
Attention for the two operand s of CHARGE : The one*sub* VECT_ASSE cannot replace the one under ASSEMBLAGE. If you only enter CHARGE sub VECT_ASSE * : the loads are not taken into account in the functions mentioned in chapter 3.3.
Example for processing loads:
ASSEMBLAGE (MODELE = me,...
CHARGE = (char_1, char_2), NUME_DDL = CO (« naked »), MATR_ASSE = (_F (MATRICE = CO (« K »), OPTION =” RIGI_MECA “), VECT_ASSE = (_F (VECTEUR = CO (« F1 »), OPTION =” CHAR_MECA “, CHARGE =CHAR_A), _F (VECTEUR = CO (« F2 »), OPTION =” CHAR_MECA “, CHARGE =CHAR_B), _F (VECTEUR = CO (« F3 »), OPTION =” CHAR_MECA “),)
In the example above, the assembled loads for each vector are:
Vector |
Assembled loads |
F1 |
char_1, char_2, char_A
|
F2 |
char_1, char_2, char_B
|
F3 |
char_1, char_2
|
3.8. Operand TITRE#
◊ TITRE
Title we want to give to the result [U4.03.01].