$$$$ KRES NOTICE GOUNAND 11/10/07 21:15:58 7149 DATE 11/10/07 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) ; ---------------------- | 1st possibility | ---------------------- Description : _____________ KRES functor solves a Poisson-type equation for the variable pressure. It is part of the semi-implicit algorithm for the solution of Navier-Stokes equations in CASTEM 2000. Contents : __________ RVP : TABLE EQPR type object CHPO1 : CHPOINT type object the content of which is the pressure variable VALi : undocumented REEL type objects ---------------------- | 2nd possibility | ---------------------- Purpose : _________ The KRES operator solves a linear system of equations (given under the form Ax=b) by means of a direct or iterative (conjugate-gradient like) method. Description : _____________ MA1 : RIGIDITE (or MATRIK) type object This is the matrix A. TAB1 : TABLE METHINV type object holding optional information. CHPO2 : CHPOINT type object containing the right-hand side of the system to be solved. This is "vector" b. CHPO3 : CHPOINT type object containing the left-hand side if the system was successfully solved. This is "vector" x. Optional informations are : - either stored in TAB1 : TAB1 . MOTi = VALi (syntax 2) ; - given on the command line (syntax 2bis) ; MOTi and VALi can have the following values : - CLIM (CHPOINT type) : Dirichlet boundary conditions - SMBR (CHPOINT type) : Right hand side CHPO2 - TYPINV (ENTIER type) : Solver type default -> 1 : direct solver (Crout) 2 : Conjugate Gradient 3 : Bi-Conjugate Gradient Stabilized (BiCGSTAB) 4 : BiCGSTAB(l) 5 : GMRES(m) : restarted Generalized Minimal Residual 6 : CGS (Conjugate Gradient Squared) 7 : Algebraic Multigrid Notay FCG (for symetric matrices) 8 : Algebraic Multigrid Notay GCR(m) (for non symetric matrices) 9 : BiCG - MATASS (MATRIK type) : Matrix with the same structure as MA1 (eventually equal). Used for preconditioning matrix assembly. - TYRENU (MOT type) : Renumbering algorithm for the dof : - 'RIEN' - 'SLOA' : S.W. Sloan's algorithm - 'GIPR' : Gibbs-King's algorithm - 'GIBA' : Gibbs-Poole-Stockmeyer's algorithm Default : 'SLOA' - PCMLAG (MOT type) : Algorithm used to number the Lagrange multipliers : - 'RIEN' - 'APR2', 'APR3', 'APR4', 'APR5'. Default : 'APR2' - SCALING (ENTIER type) : Scaling of the matrix : - 0 : no scaling - 1 : scaling with euclidean norm of rows and columns - 2 : scaling with L1 norm of rows and columns Default : 0 - OUBMAT (ENTIER type) : Forget elementwise matrices : - x0 : no - x1 : yes - x2 : suppress Suppress the matrix in assembled form (and its preconditioner) after linear solve : - 0x : no - 1x : yes, with the exception of the matrix profile - 2x : yes Default : 00 - IMPR (ENTIER type) : Echo level - LTIME (LOGIQUE type) : If this index is set to VRAI (TRUE), the KRES operator outputs a TABLE type object with the CPU time spent in the major steps of the solution algorithm. - LDEPE (type LOGIQUE) : If this index is set to VRAI (default value) and if the system matrix is of RIGIDITE type, the constraints are eliminated, if possible, before solving. - CVGOK (ENTIER type) (syntax 2 only) : This is an output value. It is strictly positive if a convergence problem occured and strictly negative if an error preventing a solution to be found occured. - indices specific to iterative methods (TYPINV=2..9) : * XINIT (CHPOINT type) : Starting guess for unknown x. Default : nil CHPOINT. * MAPREC (MATRIK type) : Matrix structured like MA1 (eventually equal). It is used as apreconditionner. Default : MA1 * NITMAX (ENTIER type) : Maximum number of matrix-vector products. Default : 2000. * CALRES (ENTIER type) : Stopping criterium Default : 0 0 : ||b-Ax||_2 / ||b||_2 1 : ||b-Ax||_2 / ||b-Ax0||_2 (|| ||_2 : euclidiean norm) * RESID (REEL type) : Maximum value for the stopping criterium Default : 1.D-10 * GMRESTRT (ENTIER type) : Restart parameter m for the GMRES(m) method. Default : 50 * LBCG (ENTIER type) : l-parameter in BiCGSTAB(l) Default : 4 * IMPINV (ENTIER type) : Echo level for the iterative solver part * BCGSBTOL (REEL type) : 'Breakdown tolerance' for Bi-CG type methods (including CGS). Default : 1.D-40 * IDDOT (ENTIER type) : IDDOT=0, normal scalar products are used. IDDOT=1, compensated scalar products are used. Default : 0 * IMVEC (ENTIER type) : IMVEC=0, no parallelism in matrix-vector products IMVEC=1, parallelism, strategy 1, interlace lines IMVEC=2, parallelism, strategy 2, group lines Default : 2 * FCPRECT (ENTIER type) (syntax 2 only) : Update frequency of the preconditionning matrix in the time advancing loop (used in EXEC procedur). Default : 1 * FCPRECI (ENTIER type) (syntax 2 only) : Update frequency of the preconditionning matrix in the loop used to resolve non linear terms. (used in EXEC procedur) Default : 1 * CONVINV (type LISTREEL) (syntax 2 only) : This is an output value. It contains the successive values of the stopping criterium as a function of the number of iterations performed. * NMATVEC (type LISTENTI) (syntax 2 only) : This is an output value. It contains the successive values of the number of matrix-vector products performed as a function of the number of iterations. - indices specific to preconditioners : * PRECOND (ENTIER type) : Preconditioning matrix : 0 : no preconditioning 1 : Diagonal preconditioning (Jacobi) 2 : D-ILU preconditioning default -> 3 : ILU(0) preconditioning (Crout) 4 : MILU(0) preconditioning (modified Crout) 5 : ILUT preconditioning (ILU with dual truncation strategy) 6 : ILUT2 preconditioning (a variation on the previous which tries to fill all allocated memory) 7 : ILUTP preconditioning (with pivoting) 8 : ILUTP+0 preconditioning (with pivoting) All ILU(0) terms are kept. 9 : ILU(0)-PV preconditioning (Crout) 10 : Filtered ILU(0)-PV preconditioning (Crout) * MILURELX (REEL type) : Relaxation parameter for MILU(0) preconditioning. (0.< <1.) If equal to 0, we have ILU(0) If equal to 1, we have non-relaxed MILU(0) Default : 1.D0 * ILUTLFIL (REEL type) : For ILUT-type preconditioning : ILUT level of fill (maximum relative memory size of the preconditioning matrix with respect to the original matrix) Default : 2.D0 * ILUTDTOL (REEL type) (range 0.D0 - 1.D0) : For ILUT-type preconditioning : ILUT "drop tolerance", i.e. terms with relative values lower than ILUTDTOL in the factorization will be dropped. Default : -1.D0 (no dropping strategy applied). * ILUTPPIV (REEL type) (range : 0.D0 - 1.D0) : For an ILUTP preconditioning : 0.D0 : no pivoting 1.D0 : always pivot (recomendation : between 0.1D0 and 0.01D0) Default : 0.1D0 * ILUPRELX (REEL type) : Filtering parameter for ILU(0)-PV preconditioning. (0.< <+inf) If equal to 0, we have ILU(0) If equal to 1, we have non-filtered ILU(0)-PV Default : 0.5D0 Warning : _________ 1) Conjugate Gradient method generally works only for problems leading to a SYMMETRIC A matrix, other methods works for non symetric matrices. 2) Iterative methods may fail to converge. (for example if the matrix is ill-conditioned) 3) In the GMRES(m) method, the residual b-Ax is guaranteed to decrease, but may eventually stagnate. The higher the value of m, the better the convergence. But remember that the amount of storage and mean CPU time per iteration rise linearly with m. 4) Preconditioning matrices are used to better conditioned the system of equations. HOWEVER, preconditioning matrices (of incomplete factorization type) may fail to exist or may not lead to better conditioned linear systems (zero or small pivots) EVEN if the full factorization of the system matrix exists.
© Cast3M 2003 - All rights reserved.
Disclaimer