Télécharger kres.notice

Retour à la liste thématique

Afficher cette notice en

Numérotation des lignes :
   1 : $$$$ KRES     NOTICE  GOUNAND   19/07/03    21:15:00     10248          
   2 :                                              DATE     19/07/03
   3 :  
   4 :    Operateur KRES                         Voir aussi :
   5 :       --------------  
   6 :        1)  KRES RVP CHPO1 'BETA' VAL1 VAL2 'PIMP' VAL3 VAL4 ; 
   7 :       
   8 :       
   9 :        2)  CHPO3 = KRES MA1 'TYPI' TAB1 ;
  10 : 
  11 :        2bis)  CHPO3 = KRES MA1 (CHPO2) (MOTi VALi) ;
  12 :                            
  13 :                             
  14 : 
  15 :       ----------------------
  16 :       |  1ere possibilite  |
  17 :       ----------------------
  18 : 
  19 :       Objet :
  20 :       _______
  21 : 
  22 :       Le foncteur KRES resout une equation de pression dans le
  23 :       cadre de la resolution semi-implicite des equations
  24 :       de Navier-Stokes dans CASTEM 2000.
  25 : 
  26 :       Commentaire :
  27 :       _____________
  28 : 
  29 :       RVP      : objet de type TABLE de sous-type EQPR
  30 : 
  31 :       CHPO1    : objet de type CHPOINT contenant la variable
  32 :                  PRESSION
  33 : 
  34 :       VALi     : objets de type REEL non documentes
  35 : 
  36 :       ----------------------
  37 :       |  2eme possibilite  |
  38 :       ----------------------
  39 : 
  40 :       Objet :
  41 :       _______
  42 :     
  43 :       L'operateur KRES resout un systeme d'equations lineaires
  44 :       de type Ax=b par une methode directe ou iterative.
  45 : 
  46 :       Commentaire :
  47 :       _____________
  48 : 
  49 :       MA1      : objet de type RIGIDITE (ou MATRIK)
  50 :                  c'est la matrice A.
  51 : 
  52 :       TAB1     : TABLE de sous-type METHINV contenant les 
  53 :                  informations optionnelles.
  54 : 
  55 :       CHPO2    : objet de type CHPOINT contenant le second membre
  56 :                  du systeme a resoudre.
  57 :                  C'est le "vecteur" b.
  58 :     
  59 :       CHPO3    : objet de type CHPOINT contenant en retour
  60 :                  (si la resolution a abouti) le "vecteur"
  61 :                  solution du systeme : x. 
  62 : 
  63 :       Les informations sont :
  64 :       - soit stockees dans TAB1 : TAB1 . MOTi = VALi (syntaxe 2) ;
  65 :       - soit donnees sur ligne de commande (syntaxe 2bis).
  66 : 
  67 :       MOTi et VALi peuvent prendre les valeurs suivantes :
  68 : 
  69 :       - CLIM (type CHPOINT) : 
  70 :          Conditions aux limites de Dirichlet
  71 : 
  72 :       - SMBR (type CHPOINT) : 
  73 :          Second membre CHPO2
  74 : 
  75 :       - TYPINV (type ENTIER) :
  76 :          Methode d'inversion du systeme
  77 :          defaut ->  1  : resolution directe (Crout)
  78 :                     2  : Gradient Conjugue
  79 :                     3  : Bi-Gradient Conjugue Stabilise (BiCGSTAB)
  80 :                     4  : BiCGSTAB(l)
  81 :                     5  : GMRES(m) : restarted Generalized Minimal
  82 :                                     Residual
  83 :                     6  : CGS (Conjugate Gradient Squared)
  84 :                     7  : Algebraic Multigrid Notay FCG 
  85 :                          (matrice symetrique)
  86 :                     8  : Algebraic Multigrid Notay GCR(m)
  87 :                          (matrice non symetrique)
  88 :                     9  : BiCG
  89 : 
  90 :       - MATASS (type MATRIK) :
  91 :          Matrice de meme structure que MA1 (eventuellement egale)
  92 :          servant a preconditionner l'assemblage.
  93 :          Par defaut : MA1
  94 : 
  95 :       - TYRENU (type MOT) :
  96 :          Methode de renumerotation des ddl :
  97 :          - 'RIEN' 
  98 :          - 'SLOA' : algorithme de S.W. Sloan 
  99 :          - 'GIPR' : algorithme de Gibbs-King 
 100 :          - 'GIBA' : algorithme de Gibbs-Poole-Stockmeyer
 101 :          Par defaut : 'SLOA'
 102 : 
 103 :       - PCMLAG (type MOT) :
 104 :          Methode de prise en compte des multiplicateurs de Lagrange :
 105 :          - 'RIEN'
 106 :          - 'APR2', 'APR3', 'APR4', 'APR5'.
 107 :          Par defaut : 'APR2'
 108 : 
 109 :       - SCALING (type ENTIER) :
 110 :          Scaling de la matrice :
 111 :          - 0 : pas de scaling
 112 :          - 1 : scaling par les normes euclidiennes des lignes 
 113 :                et des colonnes 
 114 :          - 2 : scaling par la norme L1 des lignes et des colonnes 
 115 :          Par defaut : 0
 116 : 
 117 :       - SCALAG (type ENTIER) :
 118 :          Mise a l'echelle des multiplicateurs de Lagrange :
 119 :          - 0 : pas de mise a l'echelle
 120 :          - 1 : mise a l'echelle
 121 :          Par defaut : 1
 122 : 
 123 :        - OUBMAT (type ENTIER) :
 124 :           Oubli des matrices elementaires :
 125 :           - x0 : non
 126 :           - x1 : oui
 127 :           - x2 : suppression
 128 :           Destruction de la matrice assemblee (et du preconditionneur
 129 :           eventuel) apres resolution :
 130 :           - 0x : non
 131 :           - 1x : oui, sauf le profil Morse
 132 :           - 2x : oui
 133 :           Par defaut : 00         
 134 : 
 135 :       - IMPR (type ENTIER) : 
 136 :          Niveau d'impression
 137 : 
 138 :       - LTIME (type LOGIQUE) :
 139 :          Si cet indice vaut VRAI, l'operateur sort un deuxieme resultat
 140 :          de type TABLE qui contient les temps CPU passes dans les grandes
 141 :          etapes de l'algorithme de resolution.
 142 : 
 143 :       - LDEPE (type LOGIQUE) :
 144 :          Si cet indice vaut VRAI (valeur par defaut) et que la matrice
 145 :          du systeme a resoudre est de type RIGIDITE, on effectue une 
 146 :          elimination (si possible) des contraintes avant de resoudre.
 147 : 
 148 :       - CVGOK (type ENTIER) (syntaxe 2 uniquement) :
 149 :            Une fois la resolution achevee, contient un entier strictement
 150 :            positif si la méthode de résolution n'a pas convergé et un 
 151 :            entier strictement négatif si une erreur empêchant toute
 152 :            résolution s'est produite.
 153 : 
 154 :       - indices specifiques aux methodes iteratives (2..9) :
 155 : 
 156 :         * XINIT (type CHPOINT) :
 157 :            Estimation de depart de l'inconnue.
 158 :            Par defaut : un chpoint nul.
 159 : 
 160 :         * MAPREC (type MATRIK) :
 161 :            Matrice de meme structure que MA1 (eventuellement egale)
 162 :            dont on utilise le preconditionneur.
 163 :            Par defaut : MA1
 164 : 
 165 :         * NITMAX (type ENTIER) :
 166 :            Nombre maximum de produits matrice-vecteur a effectuer.
 167 :            Par defaut : 2000.
 168 :         * CALRES (type ENTIER) :
 169 :            Façon de calculer le critere d'arret
 170 :            Par defaut : 0
 171 :            0 : ||b-Ax||_2 / ||b||_2
 172 :            1 : ||b-Ax||_2 / ||b-Ax0||_2
 173 :            (|| ||_2 : norme euclidienne)
 174 : 
 175 :         * RESID  (type REEL) :
 176 :            Valeur maximum du critere d'arret
 177 :            Par defaut : 1.D-10
 178 :            
 179 :         * GMRESTRT (type ENTIER) :
 180 :            Parametre m de redemarrage pour la methode GMRES(m) 
 181 :            ou pour la methode GCR(m)
 182 :            Par defaut : 50
 183 : 
 184 :         * LBCG (type ENTIER) :
 185 :            Parametre l pour BiCGSTAB(l)
 186 :            Par defaut : 4
 187 : 
 188 :         * IMPINV (type ENTIER) :
 189 :            Niveau d'impression pour la partie resolution iterative
 190 : 
 191 :         * BCGSBTOL (type REEL) :
 192 :            'Breakdown tolerance' pour les methodes de type BiCG et CGS.
 193 :            Par defaut : 1.D-40
 194 : 
 195 :         * IDDOT (type ENTIER) :
 196 :            IDDOT=0, utilisation du produit scalaire normal.
 197 :            IDDOT=1, utilisation du produit scalaire compense.
 198 :            Par defaut : 0
 199 : 
 200 :         * IMVEC (type ENTIER) :
 201 :            IMVEC=0, pas de parallélisme pour les produits matrice-vecteur
 202 :            IMVEC=1, parallélisme stratégie 1, entrelace les lignes.
 203 :            IMVEC=2, parallélisme stratégie 2, groupe les lignes.
 204 :            Par defaut : 2
 205 : 
 206 :         * FCPRECT (type ENTIER) (syntaxe 2 uniquement) :
 207 :            Frequence de recalcul du preconditionneur en fonction
 208 :            de l'indice de boucle sur les pas de temps.
 209 :            (utilise par la procedure EXEC)
 210 :            Par defaut : 1
 211 : 
 212 :         * FCPRECI (type ENTIER) (syntaxe 2 uniquement) :
 213 :            Frequence de recalcul du preconditionneur en fonction
 214 :            de l'indice de boucle sur la boucle d'iterations utilisee
 215 :            pour resoudre les non-linearites.
 216 :            (utilise par la procedure EXEC)
 217 :            Par defaut : 1
 218 : 
 219 :         * CONVINV (type LISTREEL) (syntaxe 2 uniquement) :
 220 :            Une fois la resolution achevee, contient 
 221 :            l'historique du critere d'arret en fonction du nombre 
 222 :            d'iterations effectuees.
 223 : 
 224 :         * NMATVEC (type LISTENTI) (syntaxe 2 uniquement) :
 225 :            Une fois la resolution achevee, contient 
 226 :            le nombre de produits matrice-vecteur effectues en 
 227 :            fonction du nombre d'iterations.
 228 : 
 229 :       - indices specifiques aux preconditionnements :
 230 : 
 231 :         * PRECOND (type ENTIER) : 
 232 :            Type de preconditionnement :
 233 :                      0 : pas de preconditionnement
 234 :                      1 : preconditionnement par la diagonale
 235 :                      2 : preconditionnement D-ILU
 236 :            defaut -> 3 : preconditionnement ILU(0) (Crout)
 237 :                      4 : preconditionnement MILU(0) (Crout modifie)
 238 :                      5 : preconditionnement ILUT (dual truncation)
 239 :                      6 : preconditionnement ILUT2 (une variante 
 240 :                          remplissant mieux la memoire allouee)
 241 :                      7 : preconditionnement ILUTP (avec pivoting)
 242 :                      8 : preconditionnement ILUTP+0 (avec pivoting)
 243 :                          On garde les termes qui seraient dans ILU(0)
 244 :                      9 : preconditionnement ILU(0)-PV
 245 :                     10 : preconditionnement ILU(0)-PV filtre
 246 : 
 247 :         * MILURELX (type REEL) :
 248 :            Parametre de relaxation pour le preconditionnement
 249 :            MILU(0) compris entre 0. et 1.
 250 :            S'il est egal a 0, on se ramene a ILU(0)
 251 :            S'il est egal a 1, MILU(0) est dit non relaxe
 252 :            Par defaut : 1.D0 
 253 : 
 254 :         * ILUTLFIL (type REEL) :
 255 :            Pour un preconditionnement de type ILUT :
 256 :            encombrement maximal du preconditionneur par rapport a la
 257 :            matrice MA1.
 258 :            Par defaut : 2.D0
 259 :            
 260 :         * ILUTDTOL (type REEL) (comprise entre 0.D0 et 1.D0) :
 261 :            Pour un preconditionnement de type ILUT :
 262 :            "drop tolerance" pour le preconditionneur, i.e. en-dessous de
 263 :            cette valeur relative, les termes de la factorisation
 264 :            incomplete seront oublies.
 265 :            Par defaut : -1.D0 (on garde tous les termes).
 266 : 
 267 :         * ILUTPPIV (type REEL) (compris entre 0.D0 et 1.D0) :
 268 :            Pour un preconditionnement ILUTP :
 269 :            0.D0 : on ne pivote pas
 270 :            1.D0 : on pivote tout le temps
 271 :            (recommandation : entre 0.1D0 et 0.01D0)
 272 :            Par defaut : 0.1D0 
 273 : 
 274 :         * ILUPRELX (type REEL) :
 275 :            Parametre de filtre pour le preconditionnement
 276 :            ILU(0)-PV filtre compris entre 0. et +inf
 277 :            S'il est egal a 0, on se ramene a ILU(0) qd il n'y a pas de
 278 :            pivots negatifs.
 279 :            S'il est egal a +inf, ILU(0)-PV est dit non filtre
 280 :            Par defaut : 0.5D0 
 281 : 
 282 :       Attention :
 283 :       ___________
 284 : 
 285 :       1) La methode du gradient conjugue fonctionne generalement 
 286 :          pour les matrices A SYMETRIQUES, les autres methodes iteratives
 287 :          fonctionnent egalement pour les matrices A NON-SYMETRIQUES.
 288 : 
 289 :       2) Les methodes iteratives peuvent ne pas converger (en 
 290 :          particulier si la matrice est mal conditionnee).
 291 : 
 292 :       3) Pour la methode GMRES(m), le residu b-Ax est toujours
 293 :          decroissant, mais peut eventuellement stagner.
 294 :          Plus m est grand, meilleure est la convergence, mais
 295 :          l'occupation memoire et le temps de calcul moyen
 296 :          par iteration croissent lineairement avec m.
 297 : 
 298 :       4) Les preconditionneurs sont utilises pour ameliorer le
 299 :          conditionnement du systeme a resoudre.
 300 :          
 301 :          TOUTEFOIS, les preconditionneurs (qui sont de type
 302 :          factorisation incomplete) ne sont pas garantis d'exister
 303 :          ni meme d'ameliorer le conditionnement (pivots nuls ou 
 304 :          petits).
 305 : 
 306 :          Ceci, MEME SI la matrice A est factorisable.

© Cast3M 2003 - Tous droits réservés.
Mentions légales