2. Syntax#

table = INFO_MODE (
    ◇ TYPE_MODE =/"MODE_COMPLEXE ",
                  /"DYNAMIQUE" (by default),
                  /"MODE_FLAMB ",
                  /"GENERAL ",
    ◇ INFO =/1 (by default),
             /2,
    # If: equal_to (" TYPE_MODE ", 'DYNAMIQUE')
        ◆ MATR_RIGI = matr_asse_pres_r/matr_asse_depl_c/matr_asse_depl_r/matr_asse_gene_c/matr_asse_gene_r/matr_asse_gene_r/matr_asse_temp_r,
        ◆ MATR_MASS = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◆ FREQ = float,
        COMPTAGE = _F (
             ◇ METHODE =/"AUTO" (by default),
                         /"STURM ",
             ◇ SEUIL_FREQ = float (default: 0.01),
             ◇ PREC_SHIFT = float (default: 0.05),
             ◇ NMAX_ITER_SHIFT = int (default: 3),
          ),
    # If: equal_to (" TYPE_MODE ", 'MODE_FLAMB')
        ◆ MATR_RIGI = matr_asse_pres_r/matr_asse_depl_c/matr_asse_depl_r/matr_asse_gene_c/matr_asse_gene_r/matr_asse_gene_r/matr_asse_temp_r,
        ◆ MATR_RIGI_GEOM = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◆ CHAR_CRIT = float,
        COMPTAGE = _F (
             ◇ METHODE =/"AUTO" (by default),
                         /"STURM ",
             ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
             ◇ PREC_SHIFT = float (default: 0.05),
             ◇ NMAX_ITER_SHIFT = int (default: 3),
          ),
    # If: equal_to (" TYPE_MODE ", 'MODE_COMPLEXE')
        ◆ MATR_RIGI = matr_asse_pres_r/matr_asse_depl_c/matr_asse_depl_r/matr_asse_gene_c/matr_asse_gene_r/matr_asse_gene_r/matr_asse_temp_r,
        ◆ MATR_MASS = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ MATR_AMOR = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ TYPE_CONTOUR =/"CERCLE" (by default),
                         /"CERCLE" (by default),
        ◆ RAYON_CONTOUR = float,
        ◇ CENTRE_CONTOUR = complex,
        COMPTAGE = _F (
             ◇ METHODE =/"AUTO" (by default),
                         /"APM ",
             ◇ NBPOINT_CONTOUR = int (default: 40),
             ◇ NMAX_ITER_CONTOUR = int (default: 3),
          ),
    # If: equal_to (" TYPE_MODE ", 'GENERAL')
        ◆ MATR_A = matr_asse_pres_r/matr_asse_depl_c/matr_asse_depl_r/matr_asse_gene_c/matr_asse_gene_r/matr_asse_gene_r/matr_asse_temp_r,
        ◆ MATR_B = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ MATR_C = matr_asse_pres_r/matr_asse_temp_r/matr_asse_gene_r/matr_asse_depl_r,
        ◇ CHAR_CRIT = float,
        # If: not exists (" CHAR_CRIT ")
            ◇ TYPE_CONTOUR =/"CERCLE" (by default),
                             /"CERCLE" (by default),
            ◆ RAYON_CONTOUR = float,
            ◇ CENTRE_CONTOUR = complex,
        COMPTAGE = _F (
             ◇ METHODE =/"AUTO" (by default),
                         /"STURM ",
                         /"APM ",
             ◇ SEUIL_CHAR_CRIT = float (default: 0.01),
             ◇ PREC_SHIFT = float (default: 0.05),
             ◇ NMAX_ITER_SHIFT = int (default: 3),
          ),
        ◇ NBPOINT_CONTOUR = int (default: 40),
        ◇ NMAX_ITER_CONTOUR = int (default: 3),
    ◇ TITRE = text,
    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),
             ◇ PCENT_PIVOT = int (default: 35),
             ◇ NB_RHS = int (default: 1),
             ◇ 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 ",
      ),
    ◇ NIVEAU_PARALLELISME =/"PARTIEL ",
                            /"COMPLET" (by default),
    PARALLELISME_MACRO = _F (
      ),
)

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