2. Syntaxe#

compor = DEFI_COMPOR(
    ◆ / MONOCRISTAL = _F(
           ◆ MATER = mater,
           ◇ ELAS = text,
           ◆ ECOULEMENT = / "MONO_VISC1",
                          / "MONO_VISC2",
                          / "MONO_DD_KR",
                          / "MONO_DD_CFC",
                          / "MONO_DD_CFC_IRRA",
                          / "MONO_DD_CC",
                          / "MONO_DD_CC_IRRA",
                          / "MONO_DD_FAT",
           # Si: equal_to("ECOULEMENT", 'MONO_VISC1') or equal_to("ECOULEMENT", 'MONO_VISC2')
               ◆ ECRO_ISOT = / "MONO_ISOT1",
                             / "MONO_ISOT2",
               ◆ ECRO_CINE = / "MONO_CINE1",
                             / "MONO_CINE2",
               ◇ FAMI_SYST_GLIS = / "OCTAEDRIQUE",
                                  / "BCC24",
                                  / "CUBIQUE1",
                                  / "CUBIQUE2",
                                  / "ZIRCONIUM",
                                  / "UNIAXIAL",
                                  / "UTILISATEUR",
               # Si: equal_to("FAMI_SYST_GLIS", 'UTILISATEUR')
                   ◇ TABL_SYST_GLIS = table,
           # Si: equal_to("ECOULEMENT", 'MONO_DD_KR')
               ◇ FAMI_SYST_GLIS = / "BCC24" (par défaut),
                                  / "UTILISATEUR",
               # Si: equal_to("FAMI_SYST_GLIS", 'UTILISATEUR')
                   ◇ TABL_SYST_GLIS = table,
           # Si: equal_to("ECOULEMENT", 'MONO_DD_FAT')
               ◇ FAMI_SYST_GLIS = "OCTAEDRIQUE",
           # Si: equal_to("ECOULEMENT", 'MONO_DD_CFC') or equal_to("ECOULEMENT", 'MONO_DD_CFC_IRRA')
               ◇ FAMI_SYST_GLIS = / "OCTAEDRIQUE" (par défaut),
                                  / "UTILISATEUR",
               # Si: equal_to("FAMI_SYST_GLIS", 'UTILISATEUR')
                   ◇ TABL_SYST_GLIS = table,
           # Si: equal_to("ECOULEMENT", 'MONO_DD_CC') or equal_to("ECOULEMENT", 'MONO_DD_CC_IRRA')
               ◇ FAMI_SYST_GLIS = / "CUBIQUE1" (par défaut),
                                  / "UTILISATEUR",
               # Si: equal_to("FAMI_SYST_GLIS", 'UTILISATEUR')
                   ◇ TABL_SYST_GLIS = table,
        ),
      / POLYCRISTAL = _F(
           ◆ MONOCRISTAL = compor,
           ◆ FRAC_VOL = float,
           ◆ / ANGL_REP = float,
             / ANGL_EULER = float,
        ),
      / MULTIFIBRE = _F(
           ◆ GROUP_FIBRE = text,
           ◆ MATER = mater,
           ◇ RELATION = / "ELAS" (par défaut),
                        / "CORR_ACIER",
                        / "BETON_GRANGER",
                        / "GRAN_IRRA_LOG",
                        / "MAZARS_UNIL",
                        / "VISC_IRRA_LOG",
                        / "VMIS_CINE_GC",
                        / "VMIS_CINE_LINE",
                        / "VMIS_ISOT_LINE",
                        / "VMIS_ISOT_TRAC",
        ),
    # Si: exists("MONOCRISTAL")
        ◇ MATR_INTER = table,
        ◇ ROTA_RESEAU = / "NON" (par défaut),
                        / "POST",
                        / "CALC",
    # Si: exists("POLYCRISTAL")
        ◆ MU_LOCA = float,
        ◇ LOCALISATION = / "BZ",
                         / "BETA",
        # Si: equal_to("LOCALISATION", 'BETA')
            ◆ DL = float,
            ◆ DA = float,
    ◇ & GEOM_FIBRE = gfibre,
      & ◆ MATER_SECT = mater,
)

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