Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 1/6
Organisme(s) : EDF/AMA
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
Document : U2.01.02
Notice d'utilisation des conditions aux limites
traitées par élimination
Résumé
Le traitement des conditions aux limites du type Dirichlet valeur de ddl imposée par élimination n'offre pas la
même souplesse que par dualisation. Ce traitement est à utiliser lorsque l'on recherche à améliorer les temps
d'éxécution d'un calcul (bien qu'à l'heure actuelle, le gain ne soit pas garanti) ou si l'on souhaite utiliser des
matrices de rigidité définies positives.
Notons que tous les types de conditions aux limites disponibles dans AFFE_CHAR_*
(* = meca/ther/acou) ne peuvent être éliminés et traités par AFFE_CHAR_CINE.
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 2/6
1
Principe d'élimination utilisé
On cherche à résoudre dans Rn le problème de minimisation sous contrainte (Pb1) suivant :
Min 1 uT Ku - uT f avec : U = u Rn, u
= u
G
0
2
G
u UG
où
·
uo Rp est connu (1pn)
·
G est le sous ensemble de N = {1, ... , }
n , de cardinal p : G = g
g
1 ...
p
·
uIG est la projection de u sur le sous espace engendré par ui iG
·
où (ui) j = ij jN
·
K est une matrice symétrique n x n,
·
f Rn est fixé.
La contrainte uI = u
G
0 représente des conditions aux limites de type Dirichlet homogène ou non.
Si on note L = C G,
N
le complémentaire de G dans N, on peut, à l'aide des ui définis précédemment,
u
décomposer Rn en somme directe de VG = espace vectoriel engendré par i iG et de VL = espace
vectoriel engendré par u
i
iL ;
Dès lors, nous avons Rn = VG VL
et l'on note u = uG uL où uG = uI et u
G
L = uIL
uG
soit encore en notation vectorielle u = uL
Le problème (Pb1) peut donc s'écrire sous la forme du problème (Pb2) :
Min 1 uT K u + 1 uT K u + uT K u - uT f - uT f
G
GG
G
L
LL
L
L
LG
G
L
L
G
G
2
2
u V
G
G
u V
L
L
u = u
G
0
Ce qui revient à écrire (en supposant que K est définie positive)
GG
Min 1 uT K u + uT K u - uT f
L
LL
L
L
LG
0
L
L
2
(Pb1) (Pb3) u V
L
L
u = u u
0
1
On a alors éliminé u du problème de minimisation.
G
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 3/6
Nous allons maintenant rechercher le problème matriciel associé à (Pb3).
On recherche u minimisant
L
1 uT K u + uT K u - uT f
L
LL
L
L
LG
0
L
L
2
ce qui revient à résoudre le problème matriciel suivant :
K u = F - K u
LL
L
L
LG
0
On peut donc écrire :
uL
K
0
f
- K u
(Pb1)
u
L
LG
0
u
(Pb2) (Pb3)
LL
L =
, soit K' G =
f'
0
I
uG
u
G
0
2 Traitement
dans
Aster
2.1
Les charges cinématiques
Une charge cinématique (type Aster : char_cine_* [* = meca/ther/acou]) permet de caractériser
l'ensemble G des ddl imposés et les (u0)i pour i G qui sont les valeurs affectées à ces ddl.
La définition d'une charge cinématique se fait par l'intermédiaire de l'opérateur AFFE_CHAR_CINE pour
les (u0)i constants ou fonctions de la géométrie ou du temps.
2.2
Les vecteurs cinématiques
0
Les vecteurs cinématiques sont des cham_no_* qui représentent les vecteurs u0 stockés dans
l'ordre de la numérotation sous jacente au problème.
A chaque charge cinématique correspond un vecteur cinématique.
Cette opération est effectuée par l'opérateur CALC_CHAR_CINE.
2.3
Calcul de K'
K' est directement calculée au moment de l'assemblage par l'opérateur ASSE_MATRICE sous réserve
naturellement que l'on fournisse en argument une liste de charges cinématiques.
La structure de données MATR_ASSE_* a été modifiée de façon à pouvoir stocker K' quand cela est
nécessaire.
2.4
Calcul de f'
L'opérateur FACT_LDLT n'étant pas modifié, le concept de type matr_asse_* produit, contient la
factorisée de K' et la matrice K inchangée.
LG
Le calcul de f' s'effectue au moment de la résolution : il faut fournir à l'opérateur RESO_LDLT en
0
argument le vecteur cinématique correspondant à u0 par l'intermédiaire du mot clé CHAM_CINE.
uL
Cet opérateur calcule alors f' avant de résoudre fact (K') uG = f'.
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 4/6
3
Exemples de fichiers de commandes
3.1 En
utilisant
FACT_LDLT et RESO_LDLT :
DEBUT( CODE:( NOM:'SSLV101AC' ) CALCUL: 'GROS' );
MA =LIRE_MAILLAGE ( ) ;
MO =AFFE_MODELE ( MAILLAGE: MA ,
AFFE: ( TOUT: 'OUI' , PHENOMENE: 'MECANIQUE' ,
MODELISATION: '3D') ) ;
MAT =DEFI_MATERIAU ( ELAS: ( E: 202702.7 , NU: 0.3 )
THER: ( LAMBDA: 2.7 CP: 0.3 ) );
CHMAT =AFFE_MATERIAU ( MAILLAGE: MA ,
AFFE: ( TOUT: 'OUI' , MATER: MAT ) );
%
============================================================================
CHCINE = AFFE_CHAR_CINE( MODELE: 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 ( MODELE: MO CHAM_MATER: CHMAT OPTION: 'RIGI_MECA' );
NU = NUME_DDL ( MATR_RIGI: MEL ) ;
MATASS = ASSE_MATRICE( MATR_ELEM: MEL , NUME_DDL: NU
CHAR_CINE : CHCINE ) ;
VECASS = AFFE_CHAM_NO ( MAILLAGE: MA GRANDEUR : 'DEPL_R'
NUME_DDL : NU
AFFE : ( TOUT: 'OUI' ,
NOM_CMP :('DX','DY','DZ')
VALE_R:( 0. , 0. , 0. )) ) ;
%
============================================================================
VCINE = CALC_CHAR_CINE ( NUME_DDL: NU CHAR_CINE : CHCINE );
%
============================================================================
&MATASS = FACT_LDLT ( MATR_ASSE: MATASS );
&VECASS = RESO_LDLT ( MATR_FACT: MATASS CHAM_NO: VECASS CHAM_CINE: VCINE );
IMPR_RESU ( MODELE: MO
RESU: ( FICHIER:'RESULTAT'
CHAM_GD : VECASS ) ) ;
FIN();
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 5/6
3.2 En
utilisant
MECA_STATIQUE
DEBUT( code : (NOM:'SSLX100A') );
ma = LIRE_MAILLAGE();
mo = AFFE_MODELE ( Maillage:ma,
Affe:( Maille:HE1,
Phenomene:'MECANIQUE', Modelisation:'3D' )
( Group_ma:GRMA1,
Phenomene:'MECANIQUE', Modelisation:'DKT')
( Group_ma:GRMA2,
Phenomene:'MECANIQUE', Modelisation:'POU_D_E') );
mat = DEFI_MATERIAU ( Elas:(E:2.E5 Nu:0.3 Alpha:0.));
chma = AFFE_MATERIAU ( Maillage:ma Affe:(Tout:'OUI' Mater:mat));
cara = AFFE_CARA_ELEM ( Modele:mo,
Coque:( Group_ma:GRMA1,Epais:1.)
Poutre:( Group_ma:GRMA2,
Section:'RECTANGLE',
CARA :('HZ','HY'),VALE:(3.,1.)));
chci = AFFE_CHAR_cine ( Modele:mo,
meca_impo:(Group_no:GRNO1 Dx:0. Dy:0. Dz:0.)
(Noeud:(N10,N11,N26,N23) Dz:0.) );
chme = AFFE_CHAR_MECA ( Modele:mo,
Liaison_ddl:
(Noeud:(N4,N21)
Ddl:('DX','DX')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N4,N21)
Ddl:('DY','DY')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N4,N21)
Ddl:('DZ','DZ')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N16,N25)
Ddl:('DX','DX')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N16,N25)
Ddl:('DY','DY')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N16,N25),Ddl:('DZ','DZ')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N5,N21)
Ddl:('DX','DRZ')
Coef_mult:(1.,0.5)
Coef_impo:0.)
(Noeud:(N17,N25)
Ddl:('DX','DRZ')
Coef_mult:(1.,0.5)
Coef_impo:0.)
(Noeud:(N11,N26)
Ddl:('DX','DRZ')
Coef_mult:(1.,0.5)
Coef_impo:0.)
(Noeud:(N3,N21)
Ddl:('DX','DRZ')
Coef_mult:(1.,-0.5)
Coef_impo:0.)
(Noeud:(N15,N25)
Ddl:('DX','DRZ')
Coef_mult:(1.,-0.5)
Coef_impo:0.)
(Noeud:(N10,N26)
Ddl:('DX','DRZ')
Coef_mult:(1.,-0.5)
Coef_impo:0.)
(Noeud:(N22,N23)
Ddl:('DRZ','DRZ')
Coef_mult:(1.,-1.)
Coef_impo:0.)
(Noeud:(N23,N24)
Ddl:('DRZ','DRZ')
Coef_mult:(1.,-1.)
Coef_impo:0.)
Force_nodale:(Noeud:N29,Fy:-1.)
Impr:0 );
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Code_Aster ®
Version
6.2
Titre :
Notice d'utilisation des conditions aux limites traitées par élimination
Date :
22/01/02
Auteur(s) :
J. PELLET Clé
:
U2.01.02-A Page
: 6/6
dep = MECA_STATIQUE ( Modele:mo
Cham_mater : chma
Cara_elem : cara
EXCIT : ( Charge : chme )
EXCIT : ( Charge : chci ) ) ;
&dep = CALC_ELEM ( Modele:mo
Resultat:dep
Cham_mater: chma
Option:'EFGE_ELNO_DEPL'
Cara_elem: cara
Tout_ordre:'OUI' );
&dep = CALC_ELEM ( Modele:mo
Resultat:dep
Cham_mater: chma
Option:'SIGM_ELNO_DEPL'
Cara_elem: cara
Tout_ordre:'OUI' );
dep1 = RECU_CHAMP ( Resultat: dep Nom_cham: 'DEPL' NUME_ORDRE:1 );
IMPR_RESU ( Modele:mo Resu:(Resultat:dep));
FIN();
Manuel d'Utilisation
Fascicule U2.01 : Notions générales
HT-66/02/003/A
Document Outline