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