Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 1/6
Organisme(s) : EDF-R&D/AMA
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
Document : U4.55.01
Opérateur FACT_LDLT
1 But
Factoriser une matrice assemblée en un produit de deux matrices triangulaires. Cette factorisation
permet ensuite de résoudre rapidement les systèmes linéaires grâce à la commande RESO_LDLT.
Cette commande n'est utilisable que pour les matrices dont la méthode de résolution (choisie dans la
commande NUME_DDL) est 'LDLT', 'MULT_FRONT' ou 'MUMPS'.
Produit (ou modifie) une structure de données de type matr_asse.
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 2/6
2 Syntaxe
mat [matr_asse_*] = FACT_LDLT
( reuse = mat ,
MATR_ASSE =
mat ,
/
[matr_asse_DEPL_R]
/
[matr_asse_DEPL_C]
/
[matr_asse_TEMP_R]
/
[matr_asse_TEMP_C]
/
[matr_asse_PRES_R]
/
[matr_asse_PRES_C]
/ # Si méthode LDLT ou MULT_FRONT:
STOP_SINGULIER = / 'OUI' , [DEFAUT]
/ 'NON' ,
NPREC =
/ nprec ,
[I]
/
8
,
[DEFAUT]
# Si méthode LDLT :
PRE_COND
= / 'SANS'
, [DEFAUT]
/
'DIAG'
,
/
BLOC_DEBUT =
bd ,
[I]
/
DDL_DEBUT = dd ,
[I]
/
BLOC_FIN = bf ,
[I]
/
DDL_FIN =
df ,
[I]
/ # Si méthode MUMPS:
TYPE_RESOL
=
/
'AUTO'
,
[DEFAUT]
/ 'NONSYM' ,
/ 'SYMDEF' ,
/ 'SYMGEM' ,
PCENT_PIVOT =
/
20
,
[DEFAUT]
/
pcpiv
[R]
TITRE =
titre ,
[l_K80]
INFO =
/ 1
,
[DEFAUT]
/
2
,
)
si MATR_ASSE :
[matr_asse_DEPL_R]
alors [*]
->
DEPL_R
[matr_asse_DEPL_C]
DEPL_C
[matr_asse_TEMP_R]
TEMP_R
[matr_asse_TEMP_C]
TEMP_C
[matr_asse_PRES_R]
PRES_R
[matr_asse_PRES_C]
PRES_C
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 3/6
3 Opérandes
Le choix de la méthode de résolution est fait au préalable dans la commande NUME_DDL (mot clé
METHODE).
Trois méthodes sont possibles : 'LDLT', 'MULT_FRONT' et 'MUMPS'.
·
pour la méthode 'LDLT', si l'utilisateur utilise un concept réentrant :
matas = FACT_LDLT (reuse = matas, MATR_ASSE = matas)
il "écrase" sa matrice initiale. Il ne pourra donc plus faire de combinaison de matrices ou de
produit matrice x vecteur,
·
pour les méthodes 'MULT_FRONT' et 'MUMPS', la matrice factorisée est stockée ailleurs.
Pour ces méthode, il est donc fortement recommandé d'utiliser un concept réentrant ; cela
évite de dupliquer la matrice initiale.
·
pour la méthode 'MUMPS', la matrice factorisée n'est stockée qu'en mémoire. Quand le "job"
se termine, la factorisée est perdue. Il faut donc re-factoriser les matrices à chaque
POURSUITE.
3.1 Opérande
MATR_ASSE
MATR_ASSE = mat
Nom de la matrice assemblée à factoriser. Cette matrice peut être réelle ou complexe, symétrique
ou non.
3.2 Opérandes
STOP_SINGULIER, NPREC, TYPE_RESOL et PCENT_PIVOT
Ces mots clés sont décrits dans [U4.50.01].
3.3 Opérande
TITRE
TITRE = titre
Titre que l'on veut donner au résultat [U4.02.01].
3.4 Opérande
INFO
INFO =
1 : pas d'impression
3.5 Opérande
PRE_COND
L'effet de ce mot clé est de "normaliser" la matrice avant sa factorisation. L'auteur de ce document
n'en a jamais vu l'intérêt !
PRE_COND =
Type du préconditionnement.
'SANS' :
pas de préconditionnement (défaut).
'DIAG' :
préconditionnement par la diagonale. Les lignes ayant un terme diagonal nul, ne
sont pas traitées.
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 4/6
3.6
Factorisation partielle (méthode LDLT)
Pour la méthode 'LDLT', l'opérateur permet de ne factoriser que partiellement la matrice. Cette
possibilité est "historique". Elle permet de factoriser la matrice en plusieurs "fois" (plusieurs travaux).
Aujourd'hui, on n'imagine pas bien l'intérêt de cette fonctionnalité.
/ BLOC_DEBUT = bd
-ième
bd : factorisation partielle depuis le bd
bloc inclus.
/ DDL_DEBUT = dd
-ième
dd : factorisation partielle depuis la dd
équation incluse (en numérotation interne établie
par l'opérateur NUME_DDL [U4.61.11]).
/ BLOC_FIN = bf
-ième
bf : factorisation partielle jusqu'au bf
bloc inclus.
/ DDL_FIN = df
-ième
df : factorisation partielle jusqu'à la df
équation incluse (en numérotation interne
établie par l'opérateur NUME_DDL [U4.61.11]).
L'opérateur effectue les vérifications suivantes :
·
si le nom du concept produit correspond à un nouveau concept, la factorisation est
hors-place : on vérifie que la factorisation débute bien au premier degré de liberté.
·
si l'argument df est négatif ou supérieur à l'ordre de la matrice, alors celle-ci sera factorisée
jusqu'à la fin. Sinon, on effectue une factorisation partielle (de la 1ère équation) jusqu'à la
-ième
df
équation incluse.
BLOC_DEBUT et DDL_DEBUT
·
en l'absence des mots clés BLOC_DEBUT et DDL_DEBUT, la matrice sera factorisée à partir
de sa première ligne.
·
si l'argument bd du mot clé BLOC_DEBUT est négatif ou nul, la matrice sera factorisée à
partir du premier bloc. Sinon, on effectue une factorisation partielle à partir du bd-ième bloc
inclus.
·
si l'argument dd du mot clé DDL_DEBUT est négatif ou nul, la matrice sera factorisée à partir
de la première équation. Sinon, on effectue une factorisation partielle à partir de la dd-ième
équation incluse.
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 5/6
1
bf
bd
fin
bd
bf
dd
df
1
df
dd
Fin
4 Exemple
4.1
Méthode LDLT hors place
nu = NUME_DDL (MATR_RIGI = kel,
METHODE = 'LDLT')
k = ASSE_MATRICE (MATR_ELEM = kel,
NUME_DDL = nu)
k2 = FACT_LDLT (MATR_ASSE = k)
U = RESO_LDLT (MATR_FACT = k2 ,
CHAM_NO = F)
4.2
Méthode LDLT en place
nu = NUME_DDL (MATR_RIGI = kel,
METHODE = 'LDLT')
k = ASSE_MATRICE (MATR_ELEM = kel,
NUME_DDL = nu)
k = FACT_LDLT (reuse = k, MATR_ASSE = k)
U = RESO_LDLT (MATR_FACT = k ,
CHAM_NO = F)
4.3 Méthode
multi-frontale
nu = NUME_DDL (MATR_RIGI = kel,
METHODE = 'MULT_FRONT')
k = ASSE_MATRICE (MATR_ELEM = kel,
NUME_DDL = nu)
k = FACT_LDLT (reuse = k, MATR_ASSE = k)
U = RESO_LDLT (MATR_FACT = k ,
CHAM_NO = F)
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Code_Aster ®
Version
8.2
Titre :
Opérateur FACT_LDLT
Date :
31/01/06
Auteur(s) :
J. PELLET Clé
:
U4.55.01-I1 Page
: 6/6
Page laissée intentionnellement blanche.
Manuel d'Utilisation
Fascicule U4.5- : Méthodes de résolution
HT-62/06/004/A
Document Outline