Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
1/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
Organization (S):
EDF/AMA
Instruction manual
U2.01 booklet: General concepts
Document: U2.01.02
Note of use of the boundary conditions
treated by elimination
Summary
The processing of the boundary conditions of the type Dirichlet value of ddl imposed by elimination does not offer
even flexibility that by dualisation. This processing is to be used when one seeks to improve times
of execution of a calculation (although at present, the gain is not guaranteed) or if one wishes to use
positive definite matrices of rigidity.
Let us note that all the types of boundary conditions available in
AFFE_CHAR_ *
(
* = meca/ther/acou
) cannot be eliminated and treated by
AFFE_CHAR_CINE
.
Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
2/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
1
Principle of elimination used
One seeks to solve in R
N
the problem of minimization under stress (Pb1) according to:
Min 1
2
U
T
Ku - U
T
F
with:
U
G
= U
R
N
, U G = U
0
U
U
G
where
·
U
O
R
p
is known (1
pn)
·
G is the sub-assembly of NR =
{
}
1,…, N
, of cardinal p: G =
G
G
p
1
…
·
uI
G
is the projection of U on under space generated by
U
I I
G
·
where (U
I
)
J
=
ij
jN
·
K is a symmetrical matrix N X N,
·
F
R
N
is fixed.
The stress uI
G
= U
0
or not represent boundary conditions of the homogeneous Dirichlet type.
If one notes L =
C
NR
G,
the complementary one to G in NR, one can, using U
I
defined previously,
to break up R
N
all in all direct of V
G
= vector space generated by
U
I I
G
and of V
L
= space
vectorial generated by
U
I
I
L
;
Consequently, we have R
N
= V
G
V
L
and one notes U = U
G
U
L
where U
G =
uI
G
and U
L =
uI
L
that is to say still in vectorial notation U =
U
G
U
L
The problem (Pb1) can thus be written in the form of the problem (Pb2):
Min 1
2
U
G
T
K
GG
U
G
+ 1
2
U
L
T
K
L
U
L
+ U
L
T
K
LG
U
G
- U
L
T
F
L
- U
G
T
F
G
U
G
V
G
U
L
V
L
U
G
= U
0
What amounts writing (by supposing that
K
GG
is definite positive)
(Pb1)
(Pb3)
Min 1
2
U
L
T
K
L
U
L
+ U
L
T
K
LG
U
0
- U
L
T
F
L
U
L
V
L
U = U
0
U
1
One then eliminated
U
G
problem of minimization.
Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
3/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
We now will seek the matric problem associated with (Pb3).
One seeks
U
L
minimizing
1
2
U
L
T
K
L
U
L
+ U
L
T
K
LG
U
0
- U
L
T
F
L
what amounts solving the following matric problem:
K
L
U
L
= F
L
- K
LG
U
0
One can thus write:
(Pb1)
(Pb2)
(Pb3)
K
L
0
0
I
G
U
L
U
G
=
F
L
- K
LG
U
0
U
0
, that is to say
K'
U
L
U
G
=
f'
2 Processing
in
Aster
2.1
The loads kinematics
A kinematic load (standard Aster:
char_cine_ *
[
*
=
meca/ther/acou
]) allows to characterize
the unit G of the imposed ddl and them (U
0
)
I
for I
G which are the values assigned to these ddl.
The definition of a kinematic load is done via the operator
AFFE_CHAR_CINE
for
(U
0
)
I
constant or functions of the geometry or time.
2.2
The vectors kinematics
The vectors kinematics are
cham_no_ *
who represent the vectors
0
U
0
stored in
the command of classification under unclaimed to the problem.
With each kinematic load corresponds a kinematic vector.
This operation is carried out by the operator
CALC_CHAR_CINE
.
2.3
Calculation of K'
K'
is directly calculated at the assembly time by the operator
ASSE_MATRICE
provided
naturally that one provides in argument a list of loads kinematics.
The structure of data
MATR_ASSE_ *
was modified in order to be able to store
K'
when that is
necessary.
2.4
Calculation of f'
The operator
FACT_LDLT
not being modified, the concept of the type
matr_asse_ *
product, contains
factorized
K'
and stamps it
K
LG
unchanged.
The calculation of
f'
be carried out at the time of the resolution: it is necessary to provide to the operator
RESO_LDLT
in
argument the kinematic vector corresponding to
0
U
0
via the key word
CHAM_CINE
.
This operator calculates then
f'
before solving
fact
(K')
U
L
U
G
= f'
.
Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
4/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
3
Examples of command files
3.1 In
using
FACT_LDLT
and
RESO_LDLT
:
BEGINNING (CODE:(NAME:“SSLV101AC”) CALCULATION: “LARGE”);
MA =LIRE_MAILLAGE ();
MO =AFFE_MODELE (MESH: MA,
AFFE: (ALL: “YES”, PHENOMENON: “MECHANICAL”,
MODELING: “3D”));
CHECHMATE =DEFI_MATERIAU (ELAS: (E: 202702.7, NAKED: 0.3)
THER: (LAMBDA: 2.7 CP: 0.3));
CHMAT =AFFE_MATERIAU (MESH: MA,
AFFE: (ALL: “YES”, MATER: CHECHMATE));
%
============================================================================
CHCINE = AFFE_CHAR_CINE (MODEL: MO
MECA_IMPO:(GROUP_NO: GRNO7, DX: 0.0, DY: 0.01)
(GROUP_NO: GRNO1, DZ: 0.0)
(GROUP_NO: GRNO8, DY: 0.0));
%
============================================================================
MEL =CALC_MATR_ELEM (MODEL: MO CHAM_MATER: CHMAT OPTION: “RIGI_MECA”);
NAKED = NUME_DDL (MATR_RIGI: MEL);
MATASS = ASSE_MATRICE (MATR_ELEM: MEL, NUME_DDL: NAKED
CHAR_CINE: CHCINE);
VECASS = AFFE_CHAM_NO (MESH: MA SIZE: “DEPL_R”
NUME_DDL: NAKED
AFFE: (ALL: “YES”,
NOM_CMP:(“DX”, “DY”, “DZ”)
VALE_R:(0. , 0. , 0. )) );
%
============================================================================
VCINE = CALC_CHAR_CINE (NUME_DDL: NAKED CHAR_CINE: CHCINE);
%
============================================================================
&MATASS = FACT_LDLT (MATR_ASSE: MATASS);
&VECASS = RESO_LDLT (MATR_FACT: MATASS CHAM_NO: VECASS
CHAM_CINE: VCINE);
IMPR_RESU (MODEL: MO
RESU: (FILE:“RESULT”
CHAM_GD: VECASS));
END ();
Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
5/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
3.2 In
using
MECA_STATIQUE
BEGINNING (code: (NAME:“SSLX100A”));
my = LIRE_MAILLAGE ();
Mo = AFFE_MODELE (Mesh:my,
Affe:(Mesh:HE1,
Phenomenon:“MECHANICAL”, Modeling:“3D”)
(Group_ma:GRMA1,
Phenomenon:“MECHANICAL”, Modeling:“DKT”)
(Group_ma:GRMA2,
Phenomenon:“MECHANICAL”, Modeling:“POU_D_E”));
chechmate = DEFI_MATERIAU (Elas:(E:2.E5 Naked:0.3 Alpha:0.));
chma = AFFE_MATERIAU (Mesh:my Affe:(All:“YES” MATER:chechmate));
= AFFE_CARA_ELEM (Model will cara:Mo,
Hull:(Group_ma:GRMA1, Thick:1.)
Beam:(Group_ma:GRMA2,
Section:“RIGHT-ANGLED”,
CARA:(“HZ”, “HY”), VALE:(3., 1.)));
chci = AFFE_CHAR_cine (Model:Mo,
meca_impo:(Group_no:GRNO1 Dx:0. Dy:0. Dz:0.)
(Node:(N10, N11, N26, N23) Dz:0.) );
chme = AFFE_CHAR_MECA (Model:Mo,
Liaison_ddl:
(Node:(N4, N21)
Ddl:(“DX”, “DX”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N4, N21)
Ddl:(“DY”, “DY”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N4, N21)
Ddl:(“DZ”, “DZ”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N16, N25)
Ddl:(“DX”, “DX”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N16, N25)
Ddl:(“DY”, “DY”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N16, N25), Ddl:(“DZ”, “DZ”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N5, N21)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., 0.5)
Coef_impo:0.)
(Node:(N17, N25)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., 0.5)
Coef_impo:0.)
(Node:(N11, N26)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., 0.5)
Coef_impo:0.)
(Node:(N3, N21)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., - 0.5)
Coef_impo:0.)
(Node:(N15, N25)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., - 0.5)
Coef_impo:0.)
(Node:(N10, N26)
Ddl:(“DX”, “DRZ”)
Coef_mult:(1., - 0.5)
Coef_impo:0.)
(Node:(N22, N23)
Ddl:(“DRZ”, “DRZ”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
(Node:(N23, N24)
Ddl:(“DRZ”, “DRZ”)
Coef_mult:(1., - 1.)
Coef_impo:0.)
Force_nodale:(Node:N29, Fy:- 1.)
Impr:0);
Code_Aster
®
Version
6.2
Titrate:
Note of use of the boundary conditions treated by elimination
Date:
22/01/02
Author (S):
J. PELLET
Key
:
U2.01.02-A
Page
:
6/6
Instruction manual
U2.01 booklet: General concepts
HT-66/02/003/A
EPD = MECA_STATIQUE (Model:Mo
Cham_mater: chma
Cara_elem: will cara
EXCIT: (Load: chme)
EXCIT: (Load: chci));
&dep = CALC_ELEM (Model:Mo
Result:EPD
Cham_mater: chma
Option:“EFGE_ELNO_DEPL”
Cara_elem: will cara
Tout_ordre:“YES”);
&dep = CALC_ELEM (Model:Mo
Result:EPD
Cham_mater: chma
Option:“SIGM_ELNO_DEPL”
Cara_elem: will cara
Tout_ordre:“YES”);
dep1 = RECU_CHAMP (Result: EPD Nom_cham: “DEPL” NUME_ORDRE:1);
IMPR_RESU (Model:Mo Resu:(Result:EPD));
END ();