Download kres.notice

Back to the list

Display this manual page in
$$$$ 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