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 par élimination (AFFE_CHAR_CINE) n’offre pas la même généralité que par dualisation (AFFE_CHAR_MECA par exemple).
Ce traitement est à utiliser lorsque l’on recherche à améliorer les temps d’éxécution d’un calcul ou si l’on souhaite travailler avec des matrices définies positives.
Notons que les conditions aux limites disponibles dans AFFE_CHAR_* ( * = MECA/THER/ACOU) ne peuvent pas toutes être éliminées et traitées par AFFE_CHAR_CINE.
Dans ce document, on montre comment utiliser les «charges cinématiques» dans les jeux de commandes Aster.
Il y a 3 cas de figure (du plus simple au plus compliqué) :
On utilise une commande de calcul «globale» (THER_LINEAIRE, STAT_NON_LINE, …). Dans ce cas, les charges cinématiques s’utilisent comme les autres charges.
On souhaite faire un calcul de modes propres. Il faut alors ajouter un argument dans la commande ASSE_MATRICE.
On souhaite faire un calcul «pas à pas» et résoudre les systèmes linéaires avec les commandes FACTORISER et RESOUDRE. Dans ce cas, il faut utiliser la commande CALC_CHAR_CINE.
Traitement dans Aster#
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 \({({u}_{0})}_{i}\) pour \(i\in 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.
Les vecteurs cinématiques#
Le vecteur cinématique est un cham_no_* qui représente le vecteur \(\left[\begin{array}{}0\\ {u}_{0}\end{array}\right]\) .
A chaque charge cinématique correspond un vecteur cinématique.
Cette opération est effectuée par l’opérateur CALC_CHAR_CINE.
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.
Calcul de f”#
Après l””opérateur FACTORISERle concept de type matr_asse_* produit, contient la factorisée de K” et la matrice KLG inchangée.
Le calcul de f” s’effectue au moment de la résolution : il faut fournir à l’opérateur RESOUDRE en argument le vecteur cinématique correspondant à \(\left[\begin{array}{}0\\ {u}_{0}\end{array}\right]\) par l’intermédiaire du mot clé CHAM_CINE.
Cet opérateur calcule alors \(f'\) avant de résoudre \(\text{fact}(K')\left[\begin{array}{}{u}_{L}\\ {u}_{G}\end{array}\right]=f'\) .
Exemples de fichiers de commandes#
Calcul mécanique avec une commande globale (STAT_NON_LINE) :#
DEPIMP = AFFE_CHAR_CINE ( MODELE=MOD,
MECA_IMPO=_F( GROUP_MA = “LCD1”, DY = -2.0))
RESU=STAT_NON_LINE( MODELE=MOD, CHAM_MATER=CHMAT,
EXCIT= _F( CHARGE = DEPIMP , FONC_MULT = FONC),
…)
Charges cinématiques pour un calcul de modes propres :#
CHARCINE = AFFE_CHAR_CINE (MODELE=MODEL,
MECA_IMPO=_F(GROUP_MA=”GM2”, DX=0.0, DY=0.0))
KASS= ASSE_MATRICE (MATR_ELEM=KELEM,
NUME_DDL=NUME,
CHAR_CINE=CHARCINE ,);
MASS= ASSE_MATRICE (MATR_ELEM=MELEM,
NUME_DDL=NUME,
CHAR_CINE=CHARCINE ,);
# calcul des modes propres de la structure
MODES=CALC_MODES(MATR_RIGI=KASS,
MATR_MASS=MASS,
CALC_FREQ=_F( NMAX_FREQ=10 ))
Calcul « pas à pas » en utilisant les commandes FACTORISER et RESOUDRE :#
CHCINE=AFFE_CHAR_CINE ( MODELE=MO, MECA_IMPO=(
_F( GROUP_NO = “SUPY”, DY = 0.),
_F( GROUP_NO = “CHARGE”, DX = -1.)))
MEL=CALC_MATR_ELEM( MODELE=MO, CHAM_MATER=CHMAT, OPTION=”RIGI_MECA”)
NU=NUME_DDL( MATR_RIGI=MEL )
MATAS= ASSE_MATRICE ( MATR_ELEM=MEL, NUME_DDL=NU, CHAR_CINE=CHCINE )
SCMBRE=CREA_CHAMP( … )
VCINE=CALC_CHAR_CINE ( NUME_DDL=NU, CHAR_CINE=CHCINE )
MATAS=FACTORISER(reuse=MATAS, MATR_ASSE=MATAS )
DEP= RESOUDRE (MATR=MATAS, CHAM_NO=SCMBRE, CHAM_CINE=VCINE )