2. Syntax#

/Fashion_meca
/data structure
/dyna_harmo
/mode_meca_c = DYNA_VISCO (
    ◆ MODELE = model,
    ◇ CARA_ELEM = cara_elem,
    ◇ MATER_ELAS = _F (
         ◆ | TO SUBdue = to subdue,
           | E = float,
           | AMOR_HYST = float,
           | RHO = float,
           | NU = float,
         ◆ GROUP_MA = Grma,
      ),
    ◆ MATER_ELAS_FO = _F (
         ◆ E = formula/function,
         ◆ AMOR_HYST = formula/function,
         ◆ RHO = float,
         ◆ NU = float,
         ◆ GROUP_MA = Grma,
      ),
    ◇ TYPE_RESU =/"HARM" (by default),
                  /"MODE ",
    ◆/FREQ = float,
      /LIST_FREQ = listr8,
    ◆ EXCIT = _F (
         ◆ CHARGE = char_meca,
      ),
    # If: equal_to (" TYPE_RESU ", 'MODE')
        ◇ TYPE_MODE =/"REEL" (by default),
                      /"BETA_REEL ",
                      /"COMPLEXE ",
    # If: not equal_to (" TYPE_RESU ", 'MODE')
        ◇ TYPE_MODE =/"REEL" (by default),
                      /"BETA_REEL ",
    ◇ RESI_RELA = float (default: 0.001),
    # If: equal_to (" TYPE_RESU ", 'HARM')
        ◆ COEF_FREQ_MAX = float,
        SOLVEUR = _F (
             ◇ METHODE =/"LDLT" (by default),
                         /"MUMPS ",
             # 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 ",
                                  /"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')
                 ◇ 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),
                 ◇ 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 ",
          ),
        ◇ NOM_CHAM =/"DEPL" (by default),
                     /"VITE ",
                     /"ACCE ",
        ◇ MODE_MECA = co,
    ◇ INFO =/1 (by default),
             /2,
)

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