2. Syntax#

/Fashion_acou
/data structure
/Fashion_meca_c
/flamb_fashion
/Fashion_meca
/style_gene = CALC_MODES (
    ◇ TYPE_RESU =/"DYNAMIQUE" (by default),
                  /"MODE_FLAMB ",
                  /"GENERAL ",
    ◇ CHAM_MATER = mater_field,
    ◇ CARA_ELEM = cara_elem,
    # If: equal_to (" TYPE_RESU ", 'DYNAMIQUE')
        ◆ MATR_RIGI = matr_asse_depl_r/matr_asse_elim_r/matr_asse_elim_r/matr_asse_depl_c/matr_asse_gene_c/matr_asse_gene_c/matr_asse_pres_r/matr_asse_pres_r/matr_asse_temp_r,
        ◆ MATR_MASS = matr_asse_depl_r/matr_asse_elim_r/matr_asse_gene_r/matr_asse_pres_r/matr_asse_temp_r,
        ◇ MATR_AMOR = matr_asse_gene_r/matr_asse_depl_r,
        ◇ NORM_MODE = _F (
             ◇ NORME =/"MASS_GENE ",
                       /"RIGI_GENE ",
                       /"EUCL ",
                       /"EUCL_TRAN ",
                       /"TRAN ",
                       /"TRAN_ROTA" (by default),
             ◇ INFO =/1 (by default),
                      /2,
          ),
        ◇ OPTION =/"PLUS_PETITE" (by default),
                   /"PLUS_GRANDE ",
                   /"BANDE ",
                   /"CENTRE ",
                   /"TOUT ",
                   /"SEPARE ",
                   /"AJUSTE ",
                   /"PROCHE ",
        # If: equal_to (" OPTION ", 'TOUT')
            CALC_FREQ = _F (
                 ◇ NMAX_FREQ = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'PLUS_PETITE')
            CALC_FREQ = _F (
                 ◇ NMAX_FREQ = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'PLUS_GRANDE')
            CALC_FREQ = _F (
                 ◇ NMAX_FREQ = int (default: 1),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'CENTRE')
            CALC_FREQ = _F (
                 ◆ FREQ = float,
                 ◇ AMOR_REDUIT = float,
                 ◇ NMAX_FREQ = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'BANDE')
            CALC_FREQ = _F (
                 ◆ FREQ = float,
                 ◇ TABLE_FREQ = table,
                 # If: size ('FREQ') > 2
                     ◇ NIVEAU_PARALLELISME =/"PARTIEL ",
                                             /"COMPLET" (by default),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'PROCHE')
            CALC_FREQ = _F (
                 ◆ FREQ = float,
                 ◇ AMOR_REDUIT = float,
                 ◇ NMAX_FREQ = int,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('SEPARE', 'AJUSTE'))
            CALC_FREQ = _F (
                 ◆ FREQ = float,
                 ◇ AMOR_REDUIT = float,
                 ◇ NMAX_FREQ = int,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_FREQ = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'PLUS_GRANDE', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR_MODAL = _F (
                 ◇ METHODE =/"TRI_DIAG ",
                             /"JACOBI ",
                             /"SORENSEN" (by default),
                             /"QZ",
                 # If: equal_to (" METHODE ", 'TRI_DIAG')
                     ◇ PREC_ORTHO = float (default: 1e-12),
                     ◇ NMAX_ITER_ORTHO = int (default: 5),
                     ◇ PREC_LANCZOS = float (default: 1e-08),
                     ◇ NMAX_ITER_QR = int (default: 30),
                     ◇ MODE_RIGIDE =/"OUI ",
                                     /"NON" (by default),
                 # If: equal_to (" METHODE ", 'JACOBI')
                     ◇ PREC_BATHE = float (default: 1e-10),
                     ◇ NMAX_ITER_BATHE = int (default: 40),
                     ◇ PREC_JACOBI = float (default: 0.01),
                     ◇ NMAX_ITER_JACOBI = int (default: 12),
                 # If: equal_to (" METHODE ", 'SORENSEN')
                     ◇ PREC_SOREN = float,
                     ◇ NMAX_ITER_SOREN = int (default: 20),
                     ◇ PARA_ORTHO_SOREN = float (default: 0.717),
                 # If: equal_to (" METHODE ", 'QZ')
                     ◇ TYPE_QZ =/"QZ_QR ",
                                 /"QZ_SIMPLE" (by default),
                                 /"QZ_EQUI ",
                 ◇ APPROCHE =/"REEL" (by default),
                              /"IMAG ",
                              /"COMPLEXE ",
                 ◇/DIM_SOUS_ESPACE = int,
                   /COEF_DIM_ESPACE = int,
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            SOLVEUR_MODAL = _F (
                 ◇ NMAX_ITER_SEPARE = int (default: 30),
                 ◇ PREC_SEPARE = float (default: 0.0001),
                 ◇ NMAX_ITER_AJUSTE = int (default: 15),
                 ◇ PREC_AJUSTE = float (default: 0.0001),
                 ◇ OPTION_INV =/"DIRECT" (by default),
                                /"RAYLEIGH ",
                 ◇ PREC_INV = float (default: 1e-05),
                 ◇ NMAX_ITER_INV = int (default: 30),
              ),
        # If: equal_to (" OPTION ", 'PROCHE')
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('SEPARE', 'AJUSTE')) and not exists (" MATR_AMOR ")
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('SEPARE', 'AJUSTE')) and exists (" MATR_AMOR ")
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT" (by default),
                             /"LDLT ",
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'PLUS_GRANDE', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_type (" MATR_RIGI ") ==matr_asse_depl_r
            ◇ FILTRE_MODE = _F (
                 ◇ CRIT_EXTR =/"MASS_EFFE_UN" (by default),
                               /"MASS_GENE ",
                 ◇ SEUIL = float (default: 0.001),
              ),
            ◇ IMPRESSION = _F (
                 ◇ TOUT_PARA =/"OUI" (by default),
                               /"NON ",
                 ◇ CUMUL =/"OUI" (by default),
                           /"NON ",
                 ◇ CRIT_EXTR =/"MASS_EFFE_UN" (by default),
                               /"MASS_GENE ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'PLUS_GRANDE', 'CENTRE', 'TOUT'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 1e-06),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI" (by default),
                           /"NON ",
              ),
        # If: equal_to (" OPTION ", 'BANDE')
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 1e-06),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"GLOBAL" (by default),
                           /"LOCAL ",
                           /"OUI ",
                           /"NON ",
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 0.01),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI ",
                           /"NON" (by default),
              ),
    # If: equal_to (" TYPE_RESU ", 'MODE_FLAMB')
        ◆ MATR_RIGI = matr_asse_pres_r/matr_asse_gene_r/matr_asse_depl_r,
        ◆ MATR_RIGI_GEOM = matr_asse_pres_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ NORM_MODE = _F (
             ◇ NORME =/"MASS_GENE ",
                       /"RIGI_GENE ",
                       /"EUCL ",
                       /"EUCL_TRAN ",
                       /"TRAN ",
                       /"TRAN_ROTA" (by default),
             ◇ INFO =/1 (by default),
                      /2,
          ),
        ◇ OPTION =/"PLUS_PETITE" (by default),
                   /"BANDE ",
                   /"CENTRE ",
                   /"TOUT ",
                   /"SEPARE ",
                   /"AJUSTE ",
                   /"PROCHE ",
        # If: equal_to (" OPTION ", 'TOUT')
            CALC_CHAR_CRIT = _F (
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'PLUS_PETITE')
            CALC_CHAR_CRIT = _F (
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'CENTRE')
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'BANDE')
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ TABLE_CHAR_CRIT = table,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ NMAX_CHAR_CRIT = int,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR_MODAL = _F (
                 ◇ METHODE =/"TRI_DIAG ",
                             /"JACOBI ",
                             /"SORENSEN" (by default),
                             /"QZ",
                 # If: equal_to (" METHODE ", 'TRI_DIAG')
                     ◇ PREC_ORTHO = float (default: 1e-12),
                     ◇ NMAX_ITER_ORTHO = int (default: 5),
                     ◇ PREC_LANCZOS = float (default: 1e-08),
                     ◇ NMAX_ITER_QR = int (default: 30),
                     ◇ MODE_RIGIDE =/"OUI ",
                                     /"NON" (by default),
                 # If: equal_to (" METHODE ", 'JACOBI')
                     ◇ PREC_BATHE = float (default: 1e-10),
                     ◇ NMAX_ITER_BATHE = int (default: 40),
                     ◇ PREC_JACOBI = float (default: 0.01),
                     ◇ NMAX_ITER_JACOBI = int (default: 12),
                 # If: equal_to (" METHODE ", 'SORENSEN')
                     ◇ PREC_SOREN = float,
                     ◇ NMAX_ITER_SOREN = int (default: 20),
                     ◇ PARA_ORTHO_SOREN = float (default: 0.717),
                 # If: equal_to (" METHODE ", 'QZ')
                     ◇ TYPE_QZ =/"QZ_QR ",
                                 /"QZ_SIMPLE" (by default),
                                 /"QZ_EQUI ",
                 ◇ APPROCHE =/"REEL" (by default),
                              /"IMAG ",
                              /"COMPLEXE ",
                 ◇/DIM_SOUS_ESPACE = int,
                   /COEF_DIM_ESPACE = int,
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            SOLVEUR_MODAL = _F (
                 ◇ NMAX_ITER_SEPARE = int (default: 30),
                 ◇ PREC_SEPARE = float (default: 0.0001),
                 ◇ NMAX_ITER_AJUSTE = int (default: 15),
                 ◇ PREC_AJUSTE = float (default: 0.0001),
                 ◇ OPTION_INV =/"DIRECT" (by default),
                                /"RAYLEIGH ",
                 ◇ PREC_INV = float (default: 1e-05),
                 ◇ NMAX_ITER_INV = int (default: 30),
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'CENTRE', 'TOUT', 'BANDE'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 1e-06),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI" (by default),
                           /"NON ",
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 0.01),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI ",
                           /"NON" (by default),
              ),
    # If: equal_to (" TYPE_RESU ", 'GENERAL')
        ◆ MATR_A = matr_asse_pres_r/matr_asse_gene_r/matr_asse_depl_r,
        ◆ MATR_B = matr_asse_pres_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ NORM_MODE = _F (
             ◇ NORME =/"MASS_GENE ",
                       /"RIGI_GENE ",
                       /"EUCL ",
                       /"EUCL_TRAN ",
                       /"TRAN ",
                       /"TRAN_ROTA" (by default),
             ◇ INFO =/1 (by default),
                      /2,
          ),
        ◇ OPTION =/"PLUS_PETITE" (by default),
                   /"BANDE ",
                   /"CENTRE ",
                   /"TOUT ",
                   /"SEPARE ",
                   /"AJUSTE ",
                   /"PROCHE ",
        # If: equal_to (" OPTION ", 'TOUT')
            CALC_CHAR_CRIT = _F (
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'PLUS_PETITE')
            CALC_CHAR_CRIT = _F (
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'CENTRE')
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ NMAX_CHAR_CRIT = int (default: 10),
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: equal_to (" OPTION ", 'BANDE')
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ TABLE_CHAR_CRIT = table,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            CALC_CHAR_CRIT = _F (
                 ◆ CHAR_CRIT = float,
                 ◇ NMAX_CHAR_CRIT = int,
                 ◇ NMAX_ITER_SHIFT = int (default: 3),
                 ◇ PREC_SHIFT = float (default: 0.05),
                 ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR_MODAL = _F (
                 ◇ METHODE =/"TRI_DIAG ",
                             /"JACOBI ",
                             /"SORENSEN" (by default),
                             /"QZ",
                 # If: equal_to (" METHODE ", 'TRI_DIAG')
                     ◇ PREC_ORTHO = float (default: 1e-12),
                     ◇ NMAX_ITER_ORTHO = int (default: 5),
                     ◇ PREC_LANCZOS = float (default: 1e-08),
                     ◇ NMAX_ITER_QR = int (default: 30),
                     ◇ MODE_RIGIDE =/"OUI ",
                                     /"NON" (by default),
                 # If: equal_to (" METHODE ", 'JACOBI')
                     ◇ PREC_BATHE = float (default: 1e-10),
                     ◇ NMAX_ITER_BATHE = int (default: 40),
                     ◇ PREC_JACOBI = float (default: 0.01),
                     ◇ NMAX_ITER_JACOBI = int (default: 12),
                 # If: equal_to (" METHODE ", 'SORENSEN')
                     ◇ PREC_SOREN = float,
                     ◇ NMAX_ITER_SOREN = int (default: 20),
                     ◇ PARA_ORTHO_SOREN = float (default: 0.717),
                 # If: equal_to (" METHODE ", 'QZ')
                     ◇ TYPE_QZ =/"QZ_QR ",
                                 /"QZ_SIMPLE" (by default),
                                 /"QZ_EQUI ",
                 ◇ APPROCHE =/"REEL" (by default),
                              /"IMAG ",
                              /"COMPLEXE ",
                 ◇/DIM_SOUS_ESPACE = int,
                   /COEF_DIM_ESPACE = int,
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            SOLVEUR_MODAL = _F (
                 ◇ NMAX_ITER_SEPARE = int (default: 30),
                 ◇ PREC_SEPARE = float (default: 0.0001),
                 ◇ NMAX_ITER_AJUSTE = int (default: 15),
                 ◇ PREC_AJUSTE = float (default: 0.0001),
                 ◇ OPTION_INV =/"DIRECT" (by default),
                                /"RAYLEIGH ",
                 ◇ PREC_INV = float (default: 1e-05),
                 ◇ NMAX_ITER_INV = int (default: 30),
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'BANDE', 'CENTRE', 'TOUT'))
            SOLVEUR = _F (
                 ◇ METHODE =/"MULT_FRONT ",
                             /"LDLT ",
                             /"MUMPS" (by default),
                 # If: equal_to (" METHODE ", 'MULT_FRONT')
                     ◇ RENUM =/"MD",
                               /"MDA" (by default),
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'LDLT')
                     ◇ RENUM = "RCMK ",
                     ◇ NPREC = int (default: 8),
                 # If: equal_to (" METHODE ", 'MUMPS')
                     ◇ RENUM =/"AMD ",
                               /"AMF ",
                               /"PORD ",
                               /"METIS ",
                               /"QAMD ",
                               /"SCOTCH ",
                               /"AUTO" (by default),
                               /"PARMETIS ",
                               /"PTSCOTCH ",
                     ◇ NPREC = int (default: 8),
                     ◇ ELIM_LAGR =/"NON ",
                                   /"LAGR2" (by default),
                     ◇ TYPE_RESOL =/"NONSYM ",
                                    /"SYMGEN ",
                                    /"SYMDEF ",
                                    /"AUTO" (by default),
                     ◇ ACCELERATION =/"AUTO ",
                                      /"FR" (by default),
                                      /"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),
                     ◇ NB_RHS = int (default: 1),
                     ◇ RESI_RELA = float (default: -1.0),
                     ◇ GESTION_MEMOIRE =/"IN_CORE ",
                                         /"OUT_OF_CORE ",
                                         /"AUTO" (by default),
                                         /"EVAL ",
                 # If: equal_to (" METHODE ", 'GCPC')
                     ◇ 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')
                     ◇ 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 ",
              ),
        # If: is_in (" OPTION ", ('PLUS_PETITE', '', '', 'CENTRE', 'TOUT', 'BANDE'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 1e-06),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI" (by default),
                           /"NON ",
              ),
        # If: is_in (" OPTION ", ('SEPARE', '', 'AJUSTE', 'PROCHE'))
            VERI_MODE = _F (
                 ◇ STOP_ERREUR =/"OUI" (by default),
                                 /"NON ",
                 ◇ SEUIL = float (default: 0.01),
                 ◇ PREC_SHIFT = float (default: 0.005),
                 ◇ STURM =/"OUI ",
                           /"NON" (by default),
              ),
    ◇ STOP_BANDE_VIDE =/"OUI" (by default),
                        /"NON ",
    ◇ AMELIORATION =/"OUI ",
                     /"NON" (by default),
    ◇ INFO =/1 (by default),
             /2,
    ◇ TITRE = text,
)

◆: mandatory
◇: optional
: present by default
&: together
/: only one among
|: several possible choices