2. Syntax#

SOLVEUR = _F (
     ◇ METHODE =/"MULT_FRONT ",
                 /"LDLT ",
                 /"MUMPS" (by default),
                 /"GCPC ",
                 /"PETSC ",
     # If: equal_to (" METHODE ", 'MULT_FRONT')
         ◇ RENUM =/"MD",
                   /"MDA" (by default),
         ◇ NPREC = int (default: 8),
         ◇ ELIM_LAGR =/"OUI ",
                       /"NON" (by default),
         ◇ STOP_SINGULIER =/"OUI" (by default),
                            /"NON ",
     # If: equal_to (" METHODE ", 'LDLT')
         ◇ RENUM = "RCMK ",
         ◇ NPREC = int (default: 8),
         ◇ ELIM_LAGR =/"OUI ",
                       /"NON" (by default),
         ◇ STOP_SINGULIER =/"OUI" (by default),
                            /"NON ",
     # If: equal_to (" METHODE ", 'MUMPS')
         ◇ RENUM =/"AMD ",
                   /"AMF ",
                   /"PORD ",
                   /"METIS ",
                   /"QAMD ",
                   /"SCOTCH ",
                   /"AUTO" (by default),
                   /"PARMETIS ",
                   /"PTSCOTCH ",
         ◇ NPREC = int (default: 8),
         ◇ ELIM_LAGR =/"OUI ",
                       /"NON ",
                       /"LAGR2" (by default),
         ◇ STOP_SINGULIER =/"OUI" (by default),
                            /"NON ",
         ◇ TYPE_RESOL =/"NONSYM ",
                        /"SYMGEN ",
                        /"SYMDEF ",
                        /"AUTO" (by default),
         ◇ ACCELERATION =/"AUTO" (by default),
                          /"EN",
                          /"FR+",
                          /"FR++",
                          /"LR",
                          /"LR+",
                          /"LR++",
         ◇ LOW_RANK_SEUIL = float,
         ◇ PRETRAITEMENTS =/"SANS ",
                            /"AUTO" (by default),
         ◇ POSTTRAITEMENTS =/"SANS ",
                             /"AUTO" (by default),
                             /"FORCE ",
                             /"MINI ",
         ◇ PCENT_PIVOT = int (default: 35),
         ◇ REDUCTION_MPI = int,
         ◇ NB_RHS = int (default: 1),
         ◇ RESI_RELA = float (default: 1e-06),
         ◇ GESTION_MEMOIRE =/"IN_CORE ",
                             /"OUT_OF_CORE ",
                             /"AUTO" (by default),
                             /"EVAL ",
         ◇ MATR_DISTRIBUEE =/"OUI ",
                             /"NON" (by default),
     # If: equal_to (" METHODE ", 'GCPC')
         ◇ ELIM_LAGR =/"OUI ",
                       /"NON" (by default),
         ◇ PRE_COND =/"LDLT_INC" (by default),
                      /"LDLT_SP ",
                      /"LDLT_DP ",
         ◇ RESI_RELA = float (default: 1e-06),
         ◇ NMAX_ITER = int,
         # If: equal_to (" PRE_COND ", 'LDLT_INC')
             ◇ RENUM = "RCMK ",
             ◇ NIVE_REMPLISSAGE = int,
         # If: is_in (" PRE_COND ", ('LDLT_SP', 'LDLT_DP'))
             ◇ RENUM =/"SANS ",
                       /"METIS ",
                       /"PARMETIS" (by default),
             ◇ REAC_PRECOND = int (default: 30),
             ◇ PCENT_PIVOT = int (default: 20),
             ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                 /"AUTO" (by default),
             ◇ LOW_RANK_SEUIL = float,
     # If: equal_to (" METHODE ", 'PETSC')
         ◇ ELIM_LAGR =/"OUI ",
                       /"NON" (by default),
         ◇ MATR_DISTRIBUEE =/"OUI ",
                             /"NON" (by default),
         ◇ ALGORITHME =/"CG",
                        /"CR",
                        /"GMRES ",
                        /"GCR ",
                        /"FGMRES" (by default),
                        /"GMRES_LMP ",
         ◇ OPTION_PETSC = text,
         ◇ PRE_COND =/"LDLT_INC ",
                      /"LDLT_SP" (by default),
                      /"LDLT_DP ",
                      /"JACOBI ",
                      /"SOR ",
                      /"ML",
                      /"BOOMER ",
                      /"GAMG ",
                      /"BLOC_LAGR ",
                      /"FIELDSPLIT ",
                      /"UTILISATEUR ",
                      /"HPDDM ",
                      /"SANS ",
         ◇ RESI_RELA = float (default: 1e-06),
         ◇ NMAX_ITER = int,
         # If: equal_to (" PRE_COND ", 'LDLT_INC')
             ◇ RENUM = "RCMK ",
             ◇ NIVE_REMPLISSAGE = int,
             ◇ REMPLISSAGE = float (default: 1.0),
         # If: is_in (" PRE_COND ", ('LDLT_SP', 'LDLT_DP'))
             ◇ RENUM =/"SANS ",
                       /"METIS ",
                       /"PARMETIS" (by default),
             ◇ REAC_PRECOND = int (default: 30),
             ◇ PCENT_PIVOT = int (default: 20),
             ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                 /"AUTO" (by default),
             ◇ LOW_RANK_SEUIL = float,
         # If: equal_to (" PRE_COND ", 'ML')
             ◇ RENUM = "SANS ",
         # If: equal_to (" PRE_COND ", 'BOOMER')
             ◇ RENUM = "SANS ",
         # If: equal_to (" PRE_COND ", 'GAMG')
             ◇ RENUM = "SANS ",
         # If: equal_to (" PRE_COND ", 'HPDDM')
             ◇ RENUM = "SANS ",
         # If: equal_to (" PRE_COND ", 'BLOC_LAGR')
             ◇ RENUM = "SANS ",
         # If: is_in (" PRE_COND ", ('FIELDSPLIT'))
             ◇ RENUM = "SANS ",
             ◇ PARTITION_CMP = int,
             ◇ NOM_CMP = text,
         # If: is_in (" PRE_COND ", ('UTILISATEUR'))
             ◇ KSP_UTIL = not_checked,
             ◇ RENUM = "SANS ",
         # If: is_in (" PRE_COND ", ('JACOBI', '', 'SOR', 'SANS'))
             ◇ RENUM =/"SANS" (by default),
                       /"RCMK ",
  ),