2. Syntaxe#

/ evol_noli
/ evol_ther
/ table = MACR_ECREVISSE(
    ◇ reuse = <objet de ETAT_INIT/EVOL_NOLI>,
    ◇ TABLE = co,
    ◇ DEBIT = co,
      / TEMPER = co,
    ◇ / ETAT_INIT = _F(
           ◆ EVOL_NOLI = evol_noli,
           ◆ EVOL_THER = evol_ther,
           ◆ NUME_ORDRE = int,
        ),
    ◆ MODELE_MECA = modele,
    ◆ MODELE_THER = modele,
    ◆ FISSURE = _F(
         ◆ PREFIXE_FICHIER = text,
         ◆ GROUP_MA = grma,
         ◆ GROUP_NO_ORIG = grno,
         ◆ GROUP_NO_EXTR = grno,
         ◆ ZETA = float,
         ◆ RUGOSITE = float,
         ◇ TORTUOSITE = float (défaut: 1.0),
         ◆ OUVERT_REMANENTE = float,
         ◆ SECTION = / "ELLIPSE",
                     / "RECTANGLE",
         # Si: equal_to("SECTION", 'ELLIPSE')
             ◇ LISTE_COTES_BL = float,
             ◆ LISTE_VAL_BL = float,
         # Si: equal_to("SECTION", 'RECTANGLE')
             ◇ LISTE_COTES_BL = float,
             ◆ LISTE_VAL_BL = float,
      ),
    ◆ ECOULEMENT = _F(
         ◆ / PRES_ENTREE = float,
           / PRES_ENTREE_FO = fonction / formule / nappe,
         ◆ / PRES_SORTIE = float,
           / PRES_SORTIE_FO = fonction / formule / nappe,
         ◆ FLUIDE_ENTREE = / 1,
                           / 2,
                           / 3,
                           / 4,
                           / 5,
                           / 6,
         # Si: equal_to("FLUIDE_ENTREE", 1)
             ◆ / TEMP_ENTREE = float,
               / TEMP_ENTREE_FO = fonction / formule / nappe,
         # Si: equal_to("FLUIDE_ENTREE", 2)
             ◆ / TITR_MASS = float,
               / TITR_MASS_FO = fonction / formule / nappe,
         # Si: equal_to("FLUIDE_ENTREE", 3)
             ◆ / TEMP_ENTREE = float,
               / TEMP_ENTREE_FO = fonction / formule / nappe,
         # Si: equal_to("FLUIDE_ENTREE", 4)
             ◆ / TEMP_ENTREE = float,
               / TEMP_ENTREE_FO = fonction / formule / nappe,
             ◆ / PRES_PART = float,
               / PRES_PART_FO = fonction / formule / nappe,
         # Si: equal_to("FLUIDE_ENTREE", 5)
             ◆ / TITR_MASS = float,
               / TITR_MASS_FO = fonction / formule / nappe,
             ◆ / PRES_PART = float,
               / PRES_PART_FO = fonction / formule / nappe,
         # Si: equal_to("FLUIDE_ENTREE", 6)
             ◆ / TEMP_ENTREE = float,
               / TEMP_ENTREE_FO = fonction / formule / nappe,
      ),
    ◇ LIST_INST = listr8,
    ◆ MODELE_ECRE = _F(
         ◇ IVENAC = / 0 (par défaut),
                    / 1,
         ◆ ECOULEMENT = / "GELE",
                        / "SATURATION",
         # Si: equal_to("ECOULEMENT", 'GELE')
             ◆ PRESS_EBULLITION = float,
         ◆ FROTTEMENT = / -1,
                        / -2,
                        / -3,
                        / -4,
                        / 0,
                        / 1,
                        / 11,
                        / 12,
                        / 13,
                        / 14,
                        / 2,
                        / 21,
                        / 22,
                        / 23,
                        / 24,
                        / 3,
                        / 4,
         # Si: less_than('FROTTEMENT', 0)
             ◆ REYNOLDS_LIM = float,
             ◆ FROTTEMENT_LIM = float,
         ◆ TRANSFERT_CHAL = / -1,
                            / -11,
                            / -12,
                            / -2,
                            / 0,
                            / 1,
                            / 11,
                            / 12,
                            / 2,
         # Si: less_than('TRANSFERT_CHAL', 0)
             ◆ XMINCH = float,
             ◆ XMAXCH = float,
      ),
    ◆ CONV_CRITERE = _F(
         ◆ TEMP_REF = float,
         ◆ PRES_REF = float,
         ◇ CRITERE = / "EXPLICITE",
                     / "PRESS",
                     / "TEMP",
                     / "TEMP_PRESS" (par défaut),
         # Si: equal_to("CRITERE", 'TEMP_PRESS') or equal_to("CRITERE", 'TEMP') or equal_to("CRITERE", 'PRESS')
             ◇ SUBD_NIVEAU = int (défaut: 3),
             ◇ SUBD_PAS_MINI = float,
             ◇ NUME_ORDRE_MIN = int (défaut: -1),
             ◇ PREC_CRIT = float (défaut: 1.0),
      ),
    ◇ CONVERGENCE_ECREVISSE = _F(
         ◇ KGTEST = float (défaut: 0.5),
         ◇ ITER_GLOB_MAXI = int (défaut: 400),
         ◇ CRIT_CONV_DEBI = float (défaut: 1e-05),
      ),
    ◇ COURBES = / "AUCUNE" (par défaut),
                / "INTERACTIF",
                / "POSTSCRIPT",
    ◆ / LOGICIEL = text,
      / VERSION = "3.2.2" (ou non renseigné),
    ◇ ENTETE = text (défaut: "Titre du calcul Ecrevisse"),
    ◇ IMPRESSION = / "NON" (par défaut),
                   / "OUI",
    ◇ INFO = / 1 (par défaut),
             / 2,
    ◆ CHAM_MATER = cham_mater,
    ◆ TEMP_INIT = float,
    ◇ CARA_ELEM = cara_elem,
    ◆ EXCIT_MECA = _F(
         ◆ CHARGE = char_cine_meca / char_meca,
         ◇ FONC_MULT = fonction / formule / nappe,
         ◇ TYPE_CHARGE = / "DIDI",
                         / "FIXE_CSTE" (par défaut),
                         / "SUIV",
      ),
    ◆ CONTACT = char_contact,
    ⟐ COMPORTEMENT = _F(
         # Si: is_in("RELATION", ('VMIS_ISOT_LINE','VMIS_ISOT_TRAC','VISCOCHAB','VISC_ISOT_LINE','VISC_ISOT_TRAC',))
             ◇ POST_ITER = "CRIT_RUPT" (ou non renseigné),
         # Si: is_in("RELATION", ('VMIS_ISOT_LINE','VMIS_CINE_LINE','VMIS_ECMI_LINE','VMIS_ISOT_TRAC','VMIS_CIN1_CHAB','VMIS_CIN2_CHAB'))
             ◇ POST_INCR = / "REST_ECRO",
                           / "SANS",
         ◆ / TOUT = "OUI" (ou non renseigné),
           / GROUP_MA = grma,
         ◇ RELATION = / "ARME",
                      / "ASSE_CORN",
                      / "BETON_BURGER",
                      / "BETON_DOUBLE_DP",
                      / "BETON_GRANGER",
                      / "BETON_GRANGER_V",
                      / "BETON_RAG",
                      / "BETON_REGLE_PR",
                      / "BETON_UMLV",
                      / "Barcelone",
                      / "CABLE",
                      / "CABLE_GAINE_FROT",
                      / "CAM_CLAY",
                      / "CHOC_ELAS_TRAC",
                      / "CHOC_ENDO",
                      / "CHOC_ENDO_PENA",
                      / "CJS",
                      / "CORR_ACIER",
                      / "CSSM",
                      / "CZM_ELAS_MIX",
                      / "CZM_EXP_MIX",
                      / "CZM_EXP_REG",
                      / "CZM_FAT_MIX",
                      / "CZM_LAB_MIX",
                      / "CZM_LIN_REG",
                      / "CZM_OUV_MIX",
                      / "CZM_TAC_MIX",
                      / "CZM_TRA_MIX",
                      / "CZM_TURON",
                      / "DASHPOT",
                      / "DHRC",
                      / "DIS_BILI_ELAS",
                      / "DIS_CHOC",
                      / "DIS_CONTACT",
                      / "DIS_ECRO_CINE",
                      / "DIS_ECRO_TRAC",
                      / "DIS_GOUJ2E_ELAS",
                      / "DIS_GOUJ2E_PLAS",
                      / "DIS_GRICRA",
                      / "DIS_VISC",
                      / "DRUCK_PRAGER",
                      / "DRUCK_PRAG_N_A",
                      / "ELAS" (par défaut),
                      / "ELAS_HYPER",
                      / "ELAS_HYPER_VISC",
                      / "ELAS_MEMBRANE_NH",
                      / "ELAS_MEMBRANE_SV",
                      / "ELAS_POUTRE_GR",
                      / "ELAS_VMIS_LINE",
                      / "ELAS_VMIS_PUIS",
                      / "ELAS_VMIS_TRAC",
                      / "ENDO_CARRE",
                      / "ENDO_FISS_EXP",
                      / "ENDO_HETEROGENE",
                      / "ENDO_ISOT_BETON",
                      / "ENDO_LOCA_EXP",
                      / "ENDO_LOCA_TC",
                      / "ENDO_ORTH_BETON",
                      / "ENDO_PORO_BETON",
                      / "ENDO_SCALAIRE",
                      / "FLUA_ENDO_PORO",
                      / "FLUA_PORO_BETON",
                      / "FONDATION",
                      / "GLRC_DAMAGE",
                      / "GLRC_DM",
                      / "GRAN_IRRA_LOG",
                      / "GRILLE_CINE_LINE",
                      / "GRILLE_ISOT_LINE",
                      / "GRILLE_PINTO_MEN",
                      / "GTN",
                      / "GonfElas",
                      / "HAYHURST",
                      / "HOEK_BROWN",
                      / "HOEK_BROWN_EFF",
                      / "HOEK_BROWN_TOT",
                      / "HUJEUX",
                      / "IRRAD3M",
                      / "Iwan",
                      / "JOINT_BA",
                      / "JOINT_BANDIS",
                      / "JOINT_MECA_ENDO",
                      / "JOINT_MECA_FROT",
                      / "JOINT_MECA_RUPT",
                      / "JONC_ENDO_PLAS",
                      / "KICHENIN_NL",
                      / "KIT_CG",
                      / "KIT_DDI",
                      / "KIT_H",
                      / "KIT_HH",
                      / "KIT_HH2",
                      / "KIT_HH2M",
                      / "KIT_HHM",
                      / "KIT_HM",
                      / "KIT_THH",
                      / "KIT_THH2",
                      / "KIT_THH2M",
                      / "KIT_THHM",
                      / "KIT_THM",
                      / "KIT_THV",
                      / "LAIGLE",
                      / "LEMAITRE",
                      / "LEMAITRE_IRRA",
                      / "LEMA_SEUIL",
                      / "LETK",
                      / "LKR",
                      / "MAZARS",
                      / "MAZARS_UNIL",
                      / "MCC",
                      / "META_LEMA_ANI",
                      / "META_LEMA_ANI",
                      / "META_P_CL",
                      / "META_P_CL_PT",
                      / "META_P_CL_PT_RE",
                      / "META_P_CL_RE",
                      / "META_P_IL",
                      / "META_P_IL_PT",
                      / "META_P_IL_PT_RE",
                      / "META_P_IL_RE",
                      / "META_P_INL",
                      / "META_P_INL_PT",
                      / "META_P_INL_PT_RE",
                      / "META_P_INL_RE",
                      / "META_V_CL",
                      / "META_V_CL_PT",
                      / "META_V_CL_PT_RE",
                      / "META_V_CL_RE",
                      / "META_V_IL",
                      / "META_V_IL_PT",
                      / "META_V_IL_PT_RE",
                      / "META_V_IL_RE",
                      / "META_V_INL",
                      / "META_V_INL_PT",
                      / "META_V_INL_PT_RE",
                      / "META_V_INL_RE",
                      / "MFRONT",
                      / "MOHR_COULOMB",
                      / "MONOCRISTAL",
                      / "MULTIFIBRE",
                      / "MetaAcierEPIL_PT",
                      / "MohrCoulombAS",
                      / "NLH_CSRM",
                      / "NORTON",
                      / "NORTON_HOFF",
                      / "PINTO_MENEGOTTO",
                      / "POLYCRISTAL",
                      / "RANKINE",
                      / "RELAX_ACIER",
                      / "RGI_BETON",
                      / "RGI_BETON_BA",
                      / "ROUSSELIER",
                      / "ROUSS_PR",
                      / "ROUSS_VISC",
                      / "RUPT_FRAG",
                      / "SANS",
                      / "UMAT",
                      / "VENDOCHAB",
                      / "VISCOCHAB",
                      / "VISC_CIN1_CHAB",
                      / "VISC_CIN2_CHAB",
                      / "VISC_CIN2_MEMO",
                      / "VISC_CIN2_NRAD",
                      / "VISC_DRUC_PRAG",
                      / "VISC_ENDO_LEMA",
                      / "VISC_GTN",
                      / "VISC_IRRA_LOG",
                      / "VISC_ISOT_LINE",
                      / "VISC_ISOT_NL",
                      / "VISC_ISOT_TRAC",
                      / "VISC_MAXWELL",
                      / "VISC_MAXWELL_MT",
                      / "VISC_MEMO_NRAD",
                      / "VISC_TAHERI",
                      / "VMIS_ASYM_LINE",
                      / "VMIS_CIN1_CHAB",
                      / "VMIS_CIN2_CHAB",
                      / "VMIS_CIN2_MEMO",
                      / "VMIS_CIN2_NRAD",
                      / "VMIS_CINE_GC",
                      / "VMIS_CINE_LINE",
                      / "VMIS_CINE_LINE",
                      / "VMIS_ECMI_LINE",
                      / "VMIS_ECMI_TRAC",
                      / "VMIS_ISOT_LINE",
                      / "VMIS_ISOT_NL",
                      / "VMIS_ISOT_PUIS",
                      / "VMIS_ISOT_TRAC",
                      / "VMIS_JOHN_COOK",
                      / "VMIS_MEMO_NRAD",
         ◇ REGU_VISC = / "NON" (par défaut),
                       / "OUI",
         # Si: equal_to("RELATION", 'MONOCRISTAL')
             ◆ COMPOR = compor,
         # Si: equal_to("RELATION", 'MULTIFIBRE')
             ◇ RIGI_GEOM = / "DEFAUT" (par défaut),
                           / "OUI",
         # Si: equal_to("RELATION", 'POLYCRISTAL')
             ◆ COMPOR = compor,
         # Si: equal_to("RELATION", 'UMAT')
             ◆ NB_VARI = int,
             ◆ LIBRAIRIE = text,
             ◆ NOM_ROUTINE = text,
         # Si: equal_to("RELATION", 'MFRONT')
             ◆ COMPOR_MFRONT = compor_mgis,
             ◇ VERI_BORNE = / "ARRET" (par défaut),
                            / "MESSAGE",
                            / "SANS",
             ◇ ALGO_CPLAN = / "ANALYTIQUE",
                            / "DEBORST" (par défaut),
             ◇ SYME_MATR_TANG = / "NON",
                                / "OUI" (par défaut),
         # Si: not equal_to('RELATION', 'MFRONT')
         # Si: equal_to("RELATION", 'KIT_DDI')
             ◆ RELATION_KIT = / "BETON_DOUBLE_DP",
                              / "BETON_GRANGER",
                              / "BETON_GRANGER_V",
                              / "BETON_UMLV",
                              / "ENDO_ISOT_BETON",
                              / "GLRC_DM",
                              / "MAZARS",
                              / "ROUSS_PR",
                              / "VMIS_CINE_LINE",
                              / "VMIS_ISOT_LINE",
                              / "VMIS_ISOT_PUIS",
                              / "VMIS_ISOT_TRAC",
         # Si: equal_to("RELATION", 'KIT_CG')
             ◆ RELATION_KIT = / "CABLE_GAINE_FROT",
                              / "ELAS",
                              / "PINTO_MENEGOTTO",
                              / "SANS",
                              / "VMIS_CINE_LINE",
                              / "VMIS_ISOT_LINE",
                              / "VMIS_ISOT_TRAC",
         # Si: is_in("RELATION", ['KIT_HHM','KIT_HH', 'KIT_H','KIT_HM','KIT_THHM', 'KIT_THH','KIT_THM','KIT_THV','KIT_THH2M','KIT_HH2M','KIT_HH2','KIT_THH2'])
             ◆ RELATION_KIT = / "Barcelone",
                              / "CAM_CLAY",
                              / "CJS",
                              / "CSSM",
                              / "CZM_EXP_REG",
                              / "CZM_LIN_REG",
                              / "DRUCK_PRAGER",
                              / "DRUCK_PRAG_N_A",
                              / "ELAS",
                              / "ENDO_ISOT_BETON",
                              / "GAZ",
                              / "GonfElas",
                              / "HOEK_BROWN_EFF",
                              / "HOEK_BROWN_TOT",
                              / "HUJEUX",
                              / "HYDR_ENDO",
                              / "HYDR_TABBAL",
                              / "HYDR_UTIL",
                              / "HYDR_VGC",
                              / "HYDR_VGM",
                              / "Iwan",
                              / "JOINT_BANDIS",
                              / "LAIGLE",
                              / "LETK",
                              / "LIQU_AD_GAZ",
                              / "LIQU_AD_GAZ_VAPE",
                              / "LIQU_GAZ",
                              / "LIQU_GAZ_ATM",
                              / "LIQU_SATU",
                              / "LIQU_VAPE",
                              / "LIQU_VAPE_GAZ",
                              / "LKR",
                              / "MAZARS",
                              / "MCC",
                              / "MFRONT",
                              / "MOHR_COULOMB",
                              / "NLH_CSRM",
                              / "RANKINE",
                              / "VISC_DRUC_PRAG",
                              / "VISC_MAXWELL",
                              / "VISC_MAXWELL_MT",
             # Si: 'MFRONT' in value("RELATION_KIT")
                 ◆ COMPOR_MFRONT = compor_mgis,
                 ◇ VERI_BORNE = / "ARRET" (par défaut),
                                / "MESSAGE",
                                / "SANS",
                 ◇ ALGO_CPLAN = / "ANALYTIQUE",
                                / "DEBORST" (par défaut),
                 ◇ RESI_INTE = float (défaut: 1e-08),
                 ◇ ITER_INTE_MAXI = int,
                 ◇ SYME_MATR_TANG = / "NON",
                                    / "OUI" (par défaut),
             # Si: 'MFRONT' not in value("RELATION_KIT")
         # Si: value("RELATION").startswith('META_') and not value("RELATION").startswith('META_LEMA_ANI')
             ◆ RELATION_KIT = / "ACIER",
                              / "ZIRC",
         ◇ DEFORMATION = / "GDEF_LOG",
                         / "GREEN_LAGRANGE",
                         / "GROT_GDEP",
                         / "PETIT" (par défaut),
                         / "PETIT_REAC",
                         / "SIMO_MIEHE",
         ◇ RESI_CPLAN_MAXI = float,
         # Si: not exists("RESI_CPLAN_MAXI")
             ◇ RESI_CPLAN_RELA = float (défaut: 1e-06),
         ◇ ITER_CPLAN_MAXI = int (défaut: 10),
         # Si: (equal_to("RELATION", 'MFRONT'))
             ◇ RESI_INTE = float,
             ◇ ITER_INTE_MAXI = int,
         # Si: is_in("RELATION", ('RGI_BETON','FLUA_PORO_BETON','FLUA_ENDO_PORO', 'RGI_BETON_BA',))
             ◇ RESI_INTE = float (défaut: 1e-06),
             ◇ ITER_INTE_MAXI = int (défaut: -1),
         # Si: not is_in("RELATION", ('MFRONT','RGI_BETON','FLUA_PORO_BETON','FLUA_ENDO_PORO','RGI_BETON_BA',))
             ◇ RESI_INTE = float (défaut: 1e-06),
             ◇ ITER_INTE_MAXI = int (défaut: 20),
         # Si: is_in("DEFORMATION", ('PETIT','PETIT_REAC','GROT_GDEP'))
             ◇ ITER_INTE_PAS = int (défaut: 0),
         ◇ ALGO_INTE = / "ANALYTIQUE",
                       / "BASCULE_EXPLICITE",
                       / "BRENT",
                       / "DEKKER",
                       / "NEWTON",
                       / "NEWTON_1D",
                       / "NEWTON_PERT",
                       / "NEWTON_RELI",
                       / "RUNGE_KUTTA",
                       / "SANS_OBJET",
                       / "SECANTE",
                       / "SEMI_EXPLICITE",
                       / "SPECIFIQUE",
         # Si: not is_in("RELATION", ('RGI_BETON','FLUA_PORO_BETON','FLUA_ENDO_PORO', 'RGI_BETON_BA', 'ENDO_PORO_BETON'))
             ◇ TYPE_MATR_TANG = / "PERTURBATION",
                                / "VERIFICATION",
             # Si: (exists("TYPE_MATR_TANG"))
                 ◇ VALE_PERT_RELA = float (défaut: 1e-05),
             # Si: equal_to("TYPE_MATR_TANG", 'TANGENTE_SECANTE')
                 ◇ SEUIL = float (défaut: 3.0),
                 ◇ AMPLITUDE = float (défaut: 1.5),
                 ◇ TAUX_RETOUR = float (défaut: 0.05),
             ◇ PARM_THETA = float (défaut: 1.0),
             # Si: not exists("TYPE_MATR_TANG")
                 ◇ RESI_RADI_RELA = float,
         # Si: is_in("RELATION", ('RGI_BETON','FLUA_PORO_BETON','FLUA_ENDO_PORO', 'RGI_BETON_BA', 'ENDO_PORO_BETON'))
             ◇ TYPE_MATR_TANG = / "MATR_ELAS" (par défaut),
                                / "MATR_ENDO",
             ◇ PARM_THETA = float (défaut: 1.0),
             # Si: not exists("TYPE_MATR_TANG")
                 ◇ RESI_RADI_RELA = float,
      ),
    ⟐ NEWTON = _F(
         ◇ REAC_INCR = int (défaut: 1),
         ◇ PREDICTION = / "DEPL_CALCULE",
                        / "ELASTIQUE",
                        / "EXTRAPOL",
                        / "TANGENTE",
         ◇ MATRICE = / "ELASTIQUE",
                     / "TANGENTE" (par défaut),
         ◇ PAS_MINI_ELAS = float (défaut: 0.0),
         ◇ REAC_ITER = int (défaut: 0),
         ◇ REAC_ITER_ELAS = int (défaut: 0),
         ◇ EVOL_NOLI = evol_noli,
      ),
    ⟐ CONVERGENCE = _F(
         # Si: exists("RESI_REFE_RELA")
             ◆ | SIGM_REFE = float,
               | EPSI_REFE = float,
               | FLUX_THER_REFE = float,
               | FLUX_HYD1_REFE = float,
               | FLUX_HYD2_REFE = float,
               | VARI_REFE = float,
         ◇ / RESI_REFE_RELA = float,
           / | RESI_GLOB_MAXI = float,
             | RESI_GLOB_RELA = float,
         ◇ ITER_GLOB_MAXI = int (défaut: 10),
         ◇ ITER_GLOB_ELAS = int (défaut: 25),
         ◇ ARRET = / "NON",
                   / "OUI" (par défaut),
      ),
    ◇ ENERGIE = _F(
         ◇ CALCUL = "OUI",
      ),
    ◆ EXCIT_THER = _F(
         ◆ CHARGE = char_cine_ther / char_ther,
         ◇ FONC_MULT = fonction / formule / nappe,
      ),
)

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