2. Syntaxe#

table = DEFI_SOL_EQUI(
    ◇ LIEU_SIGNAL = / "AFFLEURANT" (par défaut),
                    / "CHAMP_LIBRE",
    ◇ CHARGEMENT = / "MONO_APPUI" (par défaut),
                   / "ONDE_PLANE",
    # Si: equal_to("CHARGEMENT", 'ONDE_PLANE')
        ◆ / FONC_SIGNAL = fonction,
          / UNITE_TRAN_INIT = unit,
          / FONC_SIGNAL_X = fonction,
        ◇ & FONC_SIGNAL_Y = fonction,
          & FONC_SIGNAL_Z = fonction,
          & GROUP_MA_ARRETE_1 = grma,
          & GROUP_MA_ARRETE_2 = grma,
        ◇ TOUT_CHAM = / "OUI" (par défaut),
                      / "NON",
        ◇ / LIAISON = / "PERIODIQUE",
                      / "SANS",
        ◇ MASS_PENA = float,
        ◇ LONG_CARA = float,
        ◇ NOM_CMP = / "DX" (par défaut),
                    / "DY",
        # Si: exists("FONC_SIGNAL_X")
            ◆ MAILLAGE = maillage,
        # Si: not exists("FONC_SIGNAL_X")
            ◇ MAILLAGE = maillage,
        # Si: not exists("GROUP_MA_ARRETE_1")
            ◇ CORRECTION = / "BYRNE",
                           / "SANS" (par défaut),
            # Si: equal_to("CORRECTION", 'BYRNE')
                ◇ COEF_KSI = float (défaut: 0.666666667),
    # Si: equal_to("CHARGEMENT", 'MONO_APPUI')
        ◆ / FONC_SIGNAL = fonction,
          / DSP = fonction,
          / FONC_SIGNAL_X = fonction,
        ◇ & FONC_SIGNAL_Y = fonction,
          & FONC_SIGNAL_Z = fonction,
          & GROUP_MA_ARRETE_1 = grma,
          & GROUP_MA_ARRETE_2 = grma,
        # Si: exists('DSP')
            ◆ DUREE = float,
            ◆ UNITE_RESU_DSP = unit,
        ◇ NOM_CMP = / "DX" (par défaut),
                    / "DY",
        ◇ TOUT_CHAM = / "OUI",
                      / "NON" (par défaut),
        # Si: exists("FONC_SIGNAL_X")
            ◆ MAILLAGE = maillage,
        # Si: not exists("FONC_SIGNAL_X")
            ◇ MAILLAGE = maillage,
        # Si: not exists("GROUP_MA_ARRETE_1")
            ◇ CORRECTION = / "BYRNE",
                           / "SANS" (par défaut),
            # Si: equal_to("CORRECTION", 'BYRNE')
                ◇ COEF_KSI = float (défaut: 0.666666667),
    ◇ CORR_AMOR = / "OUI",
                  / "NON" (par défaut),
    ◇ LIST_FREQ_SPEC_OSCI = listr8,
    ◇ LIST_FREQ = listr8,
    ◇ MAILLAGE = maillage,
    ◇ & GROUP_MA_DROITE = grma,
      & GROUP_MA_GAUCHE = grma,
    ◆ GROUP_MA_SUBSTR = grma,
    ◆ GROUP_MA_COL = grma,
    ◇ COEF_VARI_MATE = float (défaut: 1.0),
    ◇ COEF_AMPL_ACCE = float (défaut: 1.0),
    ◇ COEF_GAMMA = float (défaut: 0.65),
    ◇ NMAX_ITER = int (défaut: 10),
    ◇ RESI_RELA = float (défaut: 0.05),
    ◇ FREQ_COUP = float,
    ◇ FREQ_FILTRE = float,
    ◇ INTEGRATION = / "TEMPS" (par défaut),
                    / "FREQUENCE",
    ◇ SURF = / "OUI",
             / "NON" (par défaut),
    # Si: equal_to("SURF", 'NON')
        ◆ NIVE_COUCH_ENFO = int,
        ◇ NB_RECEPTEUR = / 2 (par défaut),
                         / 4,
    ◇ UNITE_TABLE_RESU = unit,
    ◇ UNITE_RESU_TRAN = unit (défaut: 40),
    ◇ UNITE_RESU_SPEC = unit (défaut: 55),
    ◇ & TABLE_MATER_ELAS = table,
      & TABLE_GEQUI_GMAX = table,
      & TABLE_AMOR_EQUI = table,
    ◇ SEPARATEUR = text (défaut: " "),
    ◇ LIST_EPSI = listr8,
    # Si: not exists("TABLE_MATER_ELAS")
        ◇ MATERIAU = _F(
             ◆ GAMMA = float,
             ◆ G_GMAX = float,
             ◆ D = float,
          ),
        ◇ COUCHE = _F(
             ◆ EPAIS = float,
             ◆ GROUP_MA = grma,
             ◆ E = float,
             ◆ NU = float,
             ◆ RHO = float,
             ◆ AMOR_HYST = float,
             ◆ NUME_MATE = int,
             ◇ N1 = float,
          ),
    ◇ TITRE = text,
    ◇ INFO = / 1 (par défaut),
             / 2,
)

◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles