Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 1/6
Organization (S): EDF-R & D/AMA

Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
Document: U4.61.21

Macro command MACRO_MATR_ASSE

1 Goal

To calculate one or more assembled matrices (rigidity, mass, damping,…).

This command is recommended to create matr_asse them necessary to dynamic calculations.
It avoids tiresome calls to the “basic” commands: CALC_MATR_ELEM [U4.41.01], NUME_DDL
[U4.61.01], ASSE_MATRICE [U4.61.22].

Product one or more structure of data of the matr_asse_ type * more, possibly, one
structure of data of the nume_ddl type.
Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 2/6

2 Syntax

MACRO_MATR_ASSE (

MODELE
=
Mo
,
[model]
CHAM_MATER = chmater,
[cham_mater]
CARA_ELEM
=
carac
,
[cara_elem]
CHARGE
=
l_char
,
/
[l_char_meca]
/
[l_char_ther]
/
[l_char_acou]
INST =/tps
,







[R]
/
0.
,
[DEFAUT]

NUME_DDL
=
naked
,
[nume_ddl]
SOLVEUR = _F
(… to see [U4.50.01])
MATR_ASSE
=
(_F (



MATRICE =
subdued
,
[matr_asse_ *]


OPTION
=
#
phenomenon
mechanics
:
/
“RIGI_MECA”
,








MODE_FOURIER
=/nh
, [I]
/
0
,
[DEFAUT]
/
“RIGI_GEOM”
,









SIEF_ELGA
=
sig
, [cham_elem_SIEF_R]








MODE_FOURIER
=/nh
, [I]
/
0
,
[DEFAUT]
/
“RIGI_ROTA”
,
/
“IMPE_MECA”
,
/
“ONDE_FLUI”
,
/
“RIGI_MECA_HYST”
,
/
“RIGI_FLUI_STRU”
,
/
“AMOR_MECA”
,
/
“MASS_FLUI_STRU”
,
/
“RIGI_MECA_LAGR”
,








PROPAGATION
=

,
[R]








THETA = ch_theta, [theta_geom]
/
“MASS_MECA”
,
/
“MASS_MECA_DIAG”
,
/
“MASS_ID_MDEP_R”
,
/
“MASS_ID_MDNS_R”
,

#
phenomenon
thermics
:
/
“RIGI_THER”
,








MODE_FOURIER
=/nh
, [I]
/
0
,
[DEFAUT]
/
“MASS_THER”
,
/
“RIGI_THER_CONV”
,
/
“RIGI_THER_CONV_D'
,
/
“MASS_ID_MTEM_R”
,
/
“MASS_ID_MTNS_R”
,

#
phenomenon
accoustics
:
/
“RIGI_ACOU”
,
/
“MASS_ACOU”
,
/
“AMOR_ACOU”
,
),),
TITER
=
titr,
[l_Kn]




)
Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 3/6

3 Operands

3.1
Concepts created by the macro-command

This macro-command creates several typified concepts:

·
a matr_asse_ * with each occurrence of the key word factor MATR_ASSE (key word MATRICE),
·
possibly a nume_ddl (key word NUME_DDL) if this one does not exist as a preliminary.

That is to say for example the sequence:


# naked is not a still existing concept.

MACRO_MATR_ASSE (MODELE = Mo…,
NUME_DDL
=
Co (“naked”),
MATR_ASSE
=
(
_F (
MATRICE=
Co (“K”),
OPTION=' RIGI_MECA'))

MACRO_MATR_ASSE (MODELE = Mo…,
NUME_DDL
=
naked,
MATR_ASSE
=
(
_F (MATRICE=co (“M”), OPTION=' MASS_MECA'),
_F (MATRICE=co (“A”), OPTION=' AMOR_MECA'),),)

the 1st call to MACRO_MATR_ASSE creates
1 MATR_ASSE: K
1
NUME_DDL: naked
the 2nd call to MACRO_MATR_ASSE creates
2 MATR_ASSE: M and A

Note:

At the time of the 2nd call, the concept nume_ddl is provided (there exists, there was created by the 1st call).
In this case, it is supposed to be appropriate for the 2 matr_asse to create; it is thus important that it
nume_ddl is initially calculated for an option of the type “RIGIDITE” to contain the nodes
of Lagrange of the loads of blockings (cf CALC_MATR_ELEM [U4.61.01]).

In the preceding example, the 3 matr_asse K, M and A is based on same classification
unknown factors (naked). It is a condition necessary for the algorithms of search for
clean modes.

3.2 Operands
MODEL/CHAM_MATER/CARA_ELEM

MODELE = Mo

This operand is used to indicate the elements for which calculations must be carried out
elementary: it is pointed out that the finite elements for the majority are defined in the model.

There are some exceptions:

1) Elements of dualisation of the conditions of DIRICHLET, i.e. elements
allowing to impose conditions on the degrees of freedom of displacement in
mechanics, degrees of freedom of temperature in thermics and degrees of freedom of
pressure in accoustics.
2) Nodal heat exchange, loading elements between walls,…

These elements are defined in the concepts of the char_meca type, char_ther or char_acou.

One must thus provide the argument l_char for the calculation of the assembled matrices of rigidity:
RIGI_MECA,
RIGI_THER,
RIGI_ACOU,
RIGI_MECA_HYST,
RIGI_THER_CONV (_D) and
RIGI_MECA_LAGR.
Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 4/6


CHAM_MATER = chmater

Name of the material field where the characteristics of materials of the elements are defined.

This argument is almost always necessary.

In practice, one can do some:

·
for the discrete elements whose elementary matrices are defined in the concept
cara_elem. See AFFE_CARA_ELEM [U4.42.01],
·
for the calculation of rigidities due to the dualisation of the boundary conditions.

CARA_ELEM = carac

The elementary characteristics carac are necessary if there exists in the model of
elements of structure (discrete beam, hull or elements) or of the elements of continuous medium
nonisotropic.

3.3 Operands
CHARGE and INST

CHARGE = lchar

This operand has several distinct functions:

1) to specify the elements for which elementary calculations of rigidity are made
(conditions of DIRICHLET),
2) for the options of thermomechanical, to specify a possible field of temperature
when the material is a function of the temperature (cf key word INST). In this case,
to pay attention so that there are not several different temperatures in the argument
lchar, the temperature used is then the first found in the list of the loads
(cf AFFE_CHAR_MECA_…, operand TEMP_CALCULEE [U4.44.01 §3.3]),
3) for options “RIGI_THER_CONV (_D)”: to give the value the speed of
convection,
4) for
the option
“IMPE_MECA”: to give the value of the acoustic impedance of the meshs of
edge,
5) for
the option
“ONDE_FLUI”: to give the value of the pressure of the incidental wave,
6) for
the option
“RIGI_ROTA”: to give the value of the rotation imposed on the model.

INST =
tps

The argument tps is used only into thermomechanical.

Lorqu' there exists a temperature in one of the concepts l_char, one uses the field then of
temperature possibly interpolated at the moment tps. This field of temperature can vary
characteristics of the material field if the material is a function of the temperature;
if not this argument is useless.
3.4 Operand
NUME_DDL and key word SOLVEUR

NUME_DDL = naked

The user the macro one must always give a name of concept behind key word NUME_DDL. If
the concept does not exist, it is created and SOLVEUR then is used (see hereafter).

If the concept exists, it is used to number the matrices. In this case SOLVEUR is ignored.
Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 5/6


SOLVEUR =
_F (...)

This key word makes it possible to choose the method of resolution of system linear which one will apply
with the assembled matrices which one creates in this command. That can seem astonishing of
to choose as of the construction of the matrices, the way in which possibly one will make use of it! Reason
in is that the resolution of the linear systems is a “capital” operation, potentially
expensive in time and memory capacity (or disc). According to the adopted method, the mode of
storage and the method of classification of the unknown factors is given. Those thus must
to be selected as of the construction of the matrices.

The description of the arguments of this key word is made in [U4.50.01].

3.5 Word
key
MATR_ASSE

This key word factor makes it possible to ask for the calculation of an assembled matrix (with each occurrence).

The name of the assembled matrix is given by operand MATRICE and the “nature” of the matrix is
defined by operand OPTION.

Possible options: “RIGI_MECA”, “MASS_MECA”,… are described in [U4.61.01 §3.1].

The choice of the option determines the type of the matr_asse_ * result [U4.61.01 §2].

3.6
Operands particular to certain options

3.6.1 Operand
MODE_FOURIER

MODE_FOURIER = nh

Positive or null entirety indicating the harmonic of FOURIER on which one calculates the matrices.

By defect: nh = 0

3.6.2 Operand
SIEF_ELGA (option “RIGI_GEOM”)

SIEF_ELGA = sig

The stress field sig given for the calculation of option “RIGI_GEOM” must be calculated
with option “SIEF_ELGA_DEPL” (stress field at the points of GAUSS of the elements)
(cf commands CALC_CHAM_ELEM [U4.81.03] or CALC_ELEM [U4.81.01]).

3.6.3 Operands
THETA and PROPAGATION (option “RIGI_MECA_LAGR”)

These operands are useful for the Lagrangian propagation of fissure.

3.7 Operand
TITER

TITER

Titrate that one wants to give to the result [U4.03.01].
Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Code_Aster ®
Version
7.4
Titrate:
Macro command MACRO_MATR_ASSE


Date:
31/01/05
Author (S):
J. Key PELLET
:
U4.61.21-E Page
: 6/6

4 Examples

4.1
Calculation of mechanical clean modes

MACRO_MATR_ASSE (MODELE = Mo,
CHARGE = ch_blocage,
CHAM_MATER
=
chmat
,
CARA_ELEM
=
carac
,
NUME_DDL
=
Co (“naked”),


MATR_ASSE = (_F (MATRICE = Co (“K”), OPTION = “RIGI_MECA”),
_F
(MATRICE
=
Co (“M”), OPTION = “MASS_MECA”),),)

modes = MODE_ITER_SIMULT (MATR_A = K
, MATR_B = M
…)

4.2
Calculation of modes of buckling of Euler

% chsief is the stress field related to the loading

MACRO_MATR_ASSE (MODELE = Mo,
CHARGE = ch_blocage,
CHAM_MATER
=
chmat
,
CARA_ELEM
=
carac
,
NUME_DDL
=
Co (“naked”),
MATR_ASSE = (_F (MATRICE= Co (“K”), OPTION=' RIGI_MECA'),
_F (MATRICE=co (“KG”), OPTION=' RIGI_GEOM', SIEF_ELGA=chsief),),)

modflamb = MODE_ITER_SIMULT (MATR_A = K
, MATR_B = KG…)

4.3
Calculation of clean modes “numerical”

The eigenvalues and clean modes calculated here are those of the problem:
M - * I = 0 where M is an unspecified matrix and I the matrix “identity”.

This functionality is a functionality of “programmer” who can be useful to include/understand some
numerical behaviors: bad conditioning of the matrix of rigidity,…

MACRO_MATR_ASSE (MODELE = Mo,
CHARGE = ch_blocage,
CHAM_MATER
=
chmat
,
CARA_ELEM
=
carac
,
NUME_DDL
=
Co (“naked”),


MATR_ASSE = (_F (MATRICE = Co (“K”), OPTION = “RIGI_MECA”),
_F
(MATRICE
=
Co (“I”), OPTION = 'MASS_ID_MDEP_R),),)

modflamb = MODE_ITER_SIMULT (MATR_A = K
, MATR_B = I
…)

Handbook of Utilization
U4.6- booklet: Elementary matrices/Vecteurs and assembly
HT-66/05/004/A

Outline document