1 : $$$$ KRES NOTICE GOUNAND 25/04/30 21:15:18 12258 2 : DATE 25/04/30 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 : 10 : Algebraic Multigrid Notay GCR(m) 90 : Stokes 91 : 11 : Algebraic Multigrid Notay GCR(m) 92 : Navier-Stokes 93 : 94 : - MATASS (type MATRIK) : 95 : Matrice de meme structure que MA1 (eventuellement egale) 96 : servant a preconditionner l'assemblage. 97 : Par defaut : MA1 98 : 99 : - TYRENU (type MOT) : 100 : Methode de renumerotation des ddl : 101 : - 'RIEN' 102 : - 'SLOA' : algorithme de S.W. Sloan 103 : - 'GIPR' : algorithme de Gibbs-King 104 : - 'GIBA' : algorithme de Gibbs-Poole-Stockmeyer 105 : Par defaut : 'SLOA' 106 : 107 : - SCALING (type ENTIER) : 108 : Scaling de la matrice : 109 : - 0 : pas de scaling 110 : - 1 : scaling par les normes euclidiennes des lignes 111 : et des colonnes 112 : - 2 : scaling par la norme L1 des lignes et des colonnes 113 : Par defaut : 0 114 : 115 : - ELIM (type ENTIER) : 116 : Si cet indice est positif et que la matrice du systeme a 117 : resoudre est de type RIGIDITE, on effectue le nombre 118 : correspondant de passes d'elimination des contraintes avant 119 : de resoudre. 120 : Par defaut : 2 121 : 122 : - LAGR1 (type LISTMOTS) : 123 : Noms des multiplicateurs de Lagrange (pression pour 124 : Navier-Stokes incompressible), hors LX 125 : Par defaut : - 126 : 127 : - LAGR2 (type LISTMOTS) : 128 : Noms des multiplicateurs de Lagrange double, hors LX 129 : Par defaut : - 130 : 131 : - PCMLAG (type MOT) : 132 : Methode de placement des multiplicateurs de Lagrange dans la 133 : numerotation : 134 : - 'RIEN' 135 : - 'APR2'. 136 : Par defaut : 'APR2' 137 : 138 : - SCALAG (type ENTIER) : 139 : Mise a l'echelle des multiplicateurs de Lagrange : 140 : - 0 : pas de mise a l'echelle 141 : - 1 : mise a l'echelle 142 : Par defaut : 1 143 : 144 : - OUBMAT (type ENTIER) : 145 : Oubli des matrices elementaires : 146 : - x0 : non 147 : - x1 : oui 148 : - x2 : suppression 149 : Destruction de la matrice assemblee (et du preconditionneur 150 : eventuel) apres resolution : 151 : - 0x : non 152 : - 1x : oui, sauf le profil Morse 153 : - 2x : oui 154 : Par defaut : 00 155 : 156 : - IMPR (type ENTIER) : 157 : Niveau d'impression 158 : 159 : - LTIME (type LOGIQUE) : 160 : Si cet indice vaut VRAI, l'operateur sort un deuxieme resultat 161 : de type TABLE qui contient les temps CPU passes dans les grandes 162 : etapes de l'algorithme de resolution. 163 : 164 : - CVGOK (type ENTIER) (syntaxe 2 uniquement) : 165 : Une fois la resolution achevee, contient un entier strictement 166 : positif si la méthode de résolution n'a pas convergé et un 167 : entier strictement négatif si une erreur empêchant toute 168 : résolution s'est produite. 169 : 170 : - indices specifiques aux methodes iteratives (2..9) : 171 : 172 : * XINIT (type CHPOINT) : 173 : Estimation de depart de l'inconnue. 174 : Par defaut : un chpoint nul. 175 : 176 : * MAPREC (type MATRIK) : 177 : Matrice de meme structure que MA1 (eventuellement egale) 178 : dont on utilise le preconditionneur. 179 : Par defaut : MA1 180 : 181 : * NITMAX (type ENTIER) : 182 : Nombre maximum de produits matrice-vecteur a effectuer. 183 : Par defaut : 2000. 184 : * CALRES (type ENTIER) : 185 : Façon de calculer le critere d'arret 186 : Par defaut : 0 187 : 0 : ||b-Ax||_2 / ||b||_2 188 : 1 : ||b-Ax||_2 / ||b-Ax0||_2 189 : (|| ||_2 : norme euclidienne) 190 : 191 : * RESID (type REEL) : 192 : Valeur maximum du critere d'arret 193 : Par defaut : 1.D-10 194 : 195 : * GMRESTRT (type ENTIER) : 196 : Parametre m de redemarrage pour la methode GMRES(m) 197 : ou pour la methode GCR(m) 198 : Par defaut : 50 199 : 200 : * LBCG (type ENTIER) : 201 : Parametre l pour BiCGSTAB(l) 202 : Par defaut : 4 203 : 204 : * IMPINV (type ENTIER) : 205 : Niveau d'impression pour la partie resolution iterative 206 : 207 : * BCGSBTOL (type REEL) : 208 : 'Breakdown tolerance' pour les methodes de type BiCG et CGS. 209 : Par defaut : 1.D-40 210 : 211 : * IDDOT (type ENTIER) : 212 : IDDOT=0, utilisation du produit scalaire normal. 213 : IDDOT=1, utilisation du produit scalaire compense. 214 : Par defaut : 0 215 : 216 : * IMVEC (type ENTIER) : 217 : IMVEC=0, pas de parallélisme pour les produits matrice-vecteur 218 : IMVEC=1, parallélisme stratégie 1, entrelace les lignes. 219 : IMVEC=2, parallélisme stratégie 2, groupe les lignes. 220 : Par defaut : 2 221 : 222 : * FCPRECT (type ENTIER) (syntaxe 2 uniquement) : 223 : Frequence de recalcul du preconditionneur en fonction 224 : de l'indice de boucle sur les pas de temps. 225 : (utilise par la procedure EXEC) 226 : Par defaut : 1 227 : 228 : * FCPRECI (type ENTIER) (syntaxe 2 uniquement) : 229 : Frequence de recalcul du preconditionneur en fonction 230 : de l'indice de boucle sur la boucle d'iterations utilisee 231 : pour resoudre les non-linearites. 232 : (utilise par la procedure EXEC) 233 : Par defaut : 1 234 : 235 : * CONVINV (type LISTREEL) (syntaxe 2 uniquement) : 236 : Une fois la resolution achevee, contient 237 : l'historique du critere d'arret en fonction du nombre 238 : d'iterations effectuees. 239 : 240 : * NMATVEC (type LISTENTI) (syntaxe 2 uniquement) : 241 : Une fois la resolution achevee, contient 242 : le nombre de produits matrice-vecteur effectues en 243 : fonction du nombre d'iterations. 244 : 245 : - indices specifiques aux methodes multigrilles (7,8,10,11) : 246 : 247 : * ORDINC (type LISTMOTS) : 248 : Precise l'ordre voulu pour les inconnues pour le solveur 249 : multigrille AGMG par blocs. 250 : Par defaut : - (pas d'ordre impose) 251 : 252 : * DUMP (type LOGIQUE) : 253 : Si mis a VRAI, on sort les informations completes de 254 : resolution du systeme lineaire en fichiers ASCII. 255 : Par defaut : FAUX 256 : 257 : * SMOOTHER (type ENTIER) : 258 : Smoother pour AGMG bloc 259 : 0 : Gauss-Seidel si symétrique 260 : SOR(omega_calc) sinon 261 : -1 : SOR(0.7) adéquat pour éléments quadratiques. 262 : 1 : GS 263 : 2 : ILU 264 : -2 : ILU(0.7) 265 : Par defaut : 0 266 : 267 : - indices specifiques aux preconditionnements : 268 : 269 : * PRECOND (type ENTIER) : 270 : Type de preconditionnement : 271 : 0 : pas de preconditionnement 272 : 1 : preconditionnement par la diagonale 273 : 2 : preconditionnement D-ILU 274 : defaut -> 3 : preconditionnement ILU(0) (Crout) 275 : 4 : preconditionnement MILU(0) (Crout modifie) 276 : 5 : preconditionnement ILUT (dual truncation) 277 : 6 : preconditionnement ILUT2 (une variante 278 : remplissant mieux la memoire allouee) 279 : 7 : preconditionnement ILUTP (avec pivoting) 280 : 8 : preconditionnement ILUTP+0 (avec pivoting) 281 : On garde les termes qui seraient dans ILU(0) 282 : 9 : preconditionnement ILU(0)-PV 283 : 10 : preconditionnement ILU(0)-PV filtre 284 : 285 : * MILURELX (type REEL) : 286 : Parametre de relaxation pour le preconditionnement 287 : MILU(0) compris entre 0. et 1. 288 : S'il est egal a 0, on se ramene a ILU(0) 289 : S'il est egal a 1, MILU(0) est dit non relaxe 290 : Par defaut : 1.D0 291 : 292 : * ILUTLFIL (type REEL) : 293 : Pour un preconditionnement de type ILUT : 294 : encombrement maximal du preconditionneur par rapport a la 295 : matrice MA1. 296 : Par defaut : 2.D0 297 : 298 : * ILUTDTOL (type REEL) (comprise entre 0.D0 et 1.D0) : 299 : Pour un preconditionnement de type ILUT : 300 : "drop tolerance" pour le preconditionneur, i.e. en-dessous de 301 : cette valeur relative, les termes de la factorisation 302 : incomplete seront oublies. 303 : Par defaut : -1.D0 (on garde tous les termes). 304 : 305 : * ILUTPPIV (type REEL) (compris entre 0.D0 et 1.D0) : 306 : Pour un preconditionnement ILUTP : 307 : 0.D0 : on ne pivote pas 308 : 1.D0 : on pivote tout le temps 309 : (recommandation : entre 0.1D0 et 0.01D0) 310 : Par defaut : 0.1D0 311 : 312 : * ILUPRELX (type REEL) : 313 : Parametre de filtre pour le preconditionnement 314 : ILU(0)-PV filtre compris entre 0. et +inf 315 : S'il est egal a 0, on se ramene a ILU(0) qd il n'y a pas de 316 : pivots negatifs. 317 : S'il est egal a +inf, ILU(0)-PV est dit non filtre 318 : Par defaut : 0.5D0 319 : 320 : Attention : 321 : ___________ 322 : 323 : 1) La methode du gradient conjugue fonctionne generalement 324 : pour les matrices A SYMETRIQUES, les autres methodes iteratives 325 : fonctionnent egalement pour les matrices A NON-SYMETRIQUES. 326 : 327 : 2) Les methodes iteratives peuvent ne pas converger (en 328 : particulier si la matrice est mal conditionnee). 329 : 330 : 3) Pour la methode GMRES(m), le residu b-Ax est toujours 331 : decroissant, mais peut eventuellement stagner. 332 : Plus m est grand, meilleure est la convergence, mais 333 : l'occupation memoire et le temps de calcul moyen 334 : par iteration croissent lineairement avec m. 335 : 336 : 4) Les preconditionneurs sont utilises pour ameliorer le 337 : conditionnement du systeme a resoudre. 338 : 339 : TOUTEFOIS, les preconditionneurs (qui sont de type 340 : factorisation incomplete) ne sont pas garantis d'exister 341 : ni meme d'ameliorer le conditionnement (pivots nuls ou 342 : petits). 343 : 344 : Ceci, MEME SI la matrice A est factorisable.
© Cast3M 2003 - Tous droits réservés.
Mentions légales