$$$$ KRES NOTICE GOUNAND 19/07/03 21:15:00 10248 DATE 19/07/03 Operateur KRES Voir aussi : -------------- 1) KRES RVP CHPO1 'BETA' VAL1 VAL2 'PIMP' VAL3 VAL4 ; 2) CHPO3 = KRES MA1 'TYPI' TAB1 ; 2bis) CHPO3 = KRES MA1 (CHPO2) (MOTi VALi) ; ---------------------- | 1ere possibilite | ---------------------- Objet : _______ Le foncteur KRES resout une equation de pression dans le cadre de la resolution semi-implicite des equations de Navier-Stokes dans CASTEM 2000. Commentaire : _____________ RVP : objet de type TABLE de sous-type EQPR CHPO1 : objet de type CHPOINT contenant la variable PRESSION VALi : objets de type REEL non documentes ---------------------- | 2eme possibilite | ---------------------- Objet : _______ L'operateur KRES resout un systeme d'equations lineaires de type Ax=b par une methode directe ou iterative. Commentaire : _____________ MA1 : objet de type RIGIDITE (ou MATRIK) c'est la matrice A. TAB1 : TABLE de sous-type METHINV contenant les informations optionnelles. CHPO2 : objet de type CHPOINT contenant le second membre du systeme a resoudre. C'est le "vecteur" b. CHPO3 : objet de type CHPOINT contenant en retour (si la resolution a abouti) le "vecteur" solution du systeme : x. Les informations sont : - soit stockees dans TAB1 : TAB1 . MOTi = VALi (syntaxe 2) ; - soit donnees sur ligne de commande (syntaxe 2bis). MOTi et VALi peuvent prendre les valeurs suivantes : - CLIM (type CHPOINT) : Conditions aux limites de Dirichlet - SMBR (type CHPOINT) : Second membre CHPO2 - TYPINV (type ENTIER) : Methode d'inversion du systeme defaut -> 1 : resolution directe (Crout) 2 : Gradient Conjugue 3 : Bi-Gradient Conjugue Stabilise (BiCGSTAB) 4 : BiCGSTAB(l) 5 : GMRES(m) : restarted Generalized Minimal Residual 6 : CGS (Conjugate Gradient Squared) 7 : Algebraic Multigrid Notay FCG (matrice symetrique) 8 : Algebraic Multigrid Notay GCR(m) (matrice non symetrique) 9 : BiCG - MATASS (type MATRIK) : Matrice de meme structure que MA1 (eventuellement egale) servant a preconditionner l'assemblage. Par defaut : MA1 - TYRENU (type MOT) : Methode de renumerotation des ddl : - 'RIEN' - 'SLOA' : algorithme de S.W. Sloan - 'GIPR' : algorithme de Gibbs-King - 'GIBA' : algorithme de Gibbs-Poole-Stockmeyer Par defaut : 'SLOA' - PCMLAG (type MOT) : Methode de prise en compte des multiplicateurs de Lagrange : - 'RIEN' - 'APR2', 'APR3', 'APR4', 'APR5'. Par defaut : 'APR2' - SCALING (type ENTIER) : Scaling de la matrice : - 0 : pas de scaling - 1 : scaling par les normes euclidiennes des lignes et des colonnes - 2 : scaling par la norme L1 des lignes et des colonnes Par defaut : 0 - SCALAG (type ENTIER) : Mise a l'echelle des multiplicateurs de Lagrange : - 0 : pas de mise a l'echelle - 1 : mise a l'echelle Par defaut : 1 - OUBMAT (type ENTIER) : Oubli des matrices elementaires : - x0 : non - x1 : oui - x2 : suppression Destruction de la matrice assemblee (et du preconditionneur eventuel) apres resolution : - 0x : non - 1x : oui, sauf le profil Morse - 2x : oui Par defaut : 00 - IMPR (type ENTIER) : Niveau d'impression - LTIME (type LOGIQUE) : Si cet indice vaut VRAI, l'operateur sort un deuxieme resultat de type TABLE qui contient les temps CPU passes dans les grandes etapes de l'algorithme de resolution. - LDEPE (type LOGIQUE) : Si cet indice vaut VRAI (valeur par defaut) et que la matrice du systeme a resoudre est de type RIGIDITE, on effectue une elimination (si possible) des contraintes avant de resoudre. - CVGOK (type ENTIER) (syntaxe 2 uniquement) : Une fois la resolution achevee, contient un entier strictement positif si la méthode de résolution n'a pas convergé et un entier strictement négatif si une erreur empêchant toute résolution s'est produite. - indices specifiques aux methodes iteratives (2..9) : * XINIT (type CHPOINT) : Estimation de depart de l'inconnue. Par defaut : un chpoint nul. * MAPREC (type MATRIK) : Matrice de meme structure que MA1 (eventuellement egale) dont on utilise le preconditionneur. Par defaut : MA1 * NITMAX (type ENTIER) : Nombre maximum de produits matrice-vecteur a effectuer. Par defaut : 2000. * CALRES (type ENTIER) : Façon de calculer le critere d'arret Par defaut : 0 0 : ||b-Ax||_2 / ||b||_2 1 : ||b-Ax||_2 / ||b-Ax0||_2 (|| ||_2 : norme euclidienne) * RESID (type REEL) : Valeur maximum du critere d'arret Par defaut : 1.D-10 * GMRESTRT (type ENTIER) : Parametre m de redemarrage pour la methode GMRES(m) ou pour la methode GCR(m) Par defaut : 50 * LBCG (type ENTIER) : Parametre l pour BiCGSTAB(l) Par defaut : 4 * IMPINV (type ENTIER) : Niveau d'impression pour la partie resolution iterative * BCGSBTOL (type REEL) : 'Breakdown tolerance' pour les methodes de type BiCG et CGS. Par defaut : 1.D-40 * IDDOT (type ENTIER) : IDDOT=0, utilisation du produit scalaire normal. IDDOT=1, utilisation du produit scalaire compense. Par defaut : 0 * IMVEC (type ENTIER) : IMVEC=0, pas de parallélisme pour les produits matrice-vecteur IMVEC=1, parallélisme stratégie 1, entrelace les lignes. IMVEC=2, parallélisme stratégie 2, groupe les lignes. Par defaut : 2 * FCPRECT (type ENTIER) (syntaxe 2 uniquement) : Frequence de recalcul du preconditionneur en fonction de l'indice de boucle sur les pas de temps. (utilise par la procedure EXEC) Par defaut : 1 * FCPRECI (type ENTIER) (syntaxe 2 uniquement) : Frequence de recalcul du preconditionneur en fonction de l'indice de boucle sur la boucle d'iterations utilisee pour resoudre les non-linearites. (utilise par la procedure EXEC) Par defaut : 1 * CONVINV (type LISTREEL) (syntaxe 2 uniquement) : Une fois la resolution achevee, contient l'historique du critere d'arret en fonction du nombre d'iterations effectuees. * NMATVEC (type LISTENTI) (syntaxe 2 uniquement) : Une fois la resolution achevee, contient le nombre de produits matrice-vecteur effectues en fonction du nombre d'iterations. - indices specifiques aux preconditionnements : * PRECOND (type ENTIER) : Type de preconditionnement : 0 : pas de preconditionnement 1 : preconditionnement par la diagonale 2 : preconditionnement D-ILU defaut -> 3 : preconditionnement ILU(0) (Crout) 4 : preconditionnement MILU(0) (Crout modifie) 5 : preconditionnement ILUT (dual truncation) 6 : preconditionnement ILUT2 (une variante remplissant mieux la memoire allouee) 7 : preconditionnement ILUTP (avec pivoting) 8 : preconditionnement ILUTP+0 (avec pivoting) On garde les termes qui seraient dans ILU(0) 9 : preconditionnement ILU(0)-PV 10 : preconditionnement ILU(0)-PV filtre * MILURELX (type REEL) : Parametre de relaxation pour le preconditionnement MILU(0) compris entre 0. et 1. S'il est egal a 0, on se ramene a ILU(0) S'il est egal a 1, MILU(0) est dit non relaxe Par defaut : 1.D0 * ILUTLFIL (type REEL) : Pour un preconditionnement de type ILUT : encombrement maximal du preconditionneur par rapport a la matrice MA1. Par defaut : 2.D0 * ILUTDTOL (type REEL) (comprise entre 0.D0 et 1.D0) : Pour un preconditionnement de type ILUT : "drop tolerance" pour le preconditionneur, i.e. en-dessous de cette valeur relative, les termes de la factorisation incomplete seront oublies. Par defaut : -1.D0 (on garde tous les termes). * ILUTPPIV (type REEL) (compris entre 0.D0 et 1.D0) : Pour un preconditionnement ILUTP : 0.D0 : on ne pivote pas 1.D0 : on pivote tout le temps (recommandation : entre 0.1D0 et 0.01D0) Par defaut : 0.1D0 * ILUPRELX (type REEL) : Parametre de filtre pour le preconditionnement ILU(0)-PV filtre compris entre 0. et +inf S'il est egal a 0, on se ramene a ILU(0) qd il n'y a pas de pivots negatifs. S'il est egal a +inf, ILU(0)-PV est dit non filtre Par defaut : 0.5D0 Attention : ___________ 1) La methode du gradient conjugue fonctionne generalement pour les matrices A SYMETRIQUES, les autres methodes iteratives fonctionnent egalement pour les matrices A NON-SYMETRIQUES. 2) Les methodes iteratives peuvent ne pas converger (en particulier si la matrice est mal conditionnee). 3) Pour la methode GMRES(m), le residu b-Ax est toujours decroissant, mais peut eventuellement stagner. Plus m est grand, meilleure est la convergence, mais l'occupation memoire et le temps de calcul moyen par iteration croissent lineairement avec m. 4) Les preconditionneurs sont utilises pour ameliorer le conditionnement du systeme a resoudre. TOUTEFOIS, les preconditionneurs (qui sont de type factorisation incomplete) ne sont pas garantis d'exister ni meme d'ameliorer le conditionnement (pivots nuls ou petits). Ceci, MEME SI la matrice A est factorisable.
© Cast3M 2003 - Tous droits réservés.
Mentions légales