2. Syntaxe#

/ cham_elem
/ cham_no = CALC_FATIGUE(
    ◆ TYPE_CALCUL = / "CUMUL_DOMMAGE",
                    / "FATIGUE_MULTI",
                    / "FATIGUE_VIBR",
    # Si: equal_to("TYPE_CALCUL", 'CUMUL_DOMMAGE')
        ◆ OPTION = / "DOMA_ELNO_SIGM",
                   / "DOMA_ELGA_SIGM",
                   / "DOMA_ELNO_EPSI",
                   / "DOMA_ELGA_EPSI",
                   / "DOMA_ELNO_EPME",
                   / "DOMA_ELGA_EPME",
        # Si: equal_to("OPTION", 'DOMA_ELNO_SIGM') or equal_to("OPTION", 'DOMA_ELGA_SIGM')
            ◆ HISTOIRE = _F(
                 ◆ RESULTAT = evol_noli / dyna_trans / evol_elas,
                 ◇ EQUI_GD = "VMIS_SG",
              ),
        # Si: not equal_to("OPTION", 'DOMA_ELNO_SIGM') and not equal_to("OPTION", 'DOMA_ELGA_SIGM')
            ◆ HISTOIRE = _F(
                 ◆ RESULTAT = evol_noli / dyna_trans / evol_elas,
                 ◇ EQUI_GD = "INVA_2_SG",
              ),
        ◇ & DOMMAGE = / "WOHLER",
                      / "MANSON_COFFIN",
                      / "TAHERI_MANSON",
                      / "TAHERI_MIXTE",
          & MATER = mater,
        ◇ TAHERI_NAPPE = formule / nappe,
        ◇ TAHERI_FONC = formule / nappe / fonction,
    # Si: equal_to("TYPE_CALCUL", 'FATIGUE_VIBR')
        ◆ OPTION = / "DOMA_ELNO_SIGM",
                   / "DOMA_ELGA_SIGM",
        ◆ CORR_SIGM_MOYE = / "GOODMAN",
                           / "GERBER",
        ◆ HISTOIRE = _F(
             ◆ RESULTAT = evol_noli / evol_elas,
             ◆ MODE_MECA = mode_meca,
             ◆ NUME_MODE = int,
             ◇ FACT_PARTICI = float (défaut: 1.0),
             ◇ EQUI_GD = "VMIS_SG",
          ),
        ◇ & DOMMAGE = "WOHLER" (ou non renseigné),
          & MATER = mater,
    # Si: equal_to("TYPE_CALCUL", 'FATIGUE_MULTI')
        ◆ TYPE_CHARGE = / "PERIODIQUE",
                        / "NON_PERIODIQUE",
        ◆ OPTION = / "DOMA_ELGA",
                   / "DOMA_NOEUD",
        ◆ RESULTAT = evol_noli / evol_elas,
        ◇ CHAM_MATER = cham_mater,
        ◆ MAILLAGE = maillage,
        ◆ / GROUP_MA = grma,
          / GROUP_NO = grno,
        ◇ COEF_PREECROU = float (défaut: 1.0),
        # Si: equal_to("TYPE_CHARGE", 'PERIODIQUE')
            ◆ CRITERE = / "MATAKE_MODI_AC",
                        / "DANG_VAN_MODI_AC",
                        / "VMIS_TRESCA",
                        / "FORMULE_CRITERE",
            # Si: (equal_to("CRITERE", 'MATAKE_MODI_AC') or equal_to("CRITERE", 'DANG_VAN_MODI_AC'))
                ◆ METHODE = "CERCLE_EXACT" (ou non renseigné),
            # Si: (equal_to("CRITERE", 'FORMULE_CRITERE'))
                ◆ FORMULE_GRDEQ = formule / fonction,
                ◆ COURBE_GRD_VIE = / "WOHLER",
                                   / "MANSON_COFFIN",
                                   / "FORM_VIE",
                ◇ FORMULE_CRITIQUE = formule / fonction,
                # Si: (equal_to("COURBE_GRD_VIE", 'FORM_VIE'))
                    ◆ FORMULE_VIE = formule / fonction,
            ◇ & INST_INIT_CYCL = float,
              & INST_CRIT = / "RELATIF",
                            / "ABSOLU",
            # Si: (equal_to("INST_CRIT", 'RELATIF'))
                ◇ PRECISION = float (défaut: 1e-06),
            # Si: (equal_to("INST_CRIT", 'ABSOLU'))
                ◆ PRECISION = float,
        # Si: equal_to("TYPE_CHARGE", 'NON_PERIODIQUE')
            ◆ CRITERE = / "MATAKE_MODI_AV",
                        / "DANG_VAN_MODI_AV",
                        / "FATESOCI_MODI_AV",
                        / "FORMULE_CRITERE",
                        / "VMIS_TRESCA",
            # Si: (not equal_to("CRITERE", 'VMIS_TRESCA'))
                ◆ PROJECTION = / "UN_AXE",
                               / "DEUX_AXES",
                ◇ DELTA_OSCI = float,
            # Si: (equal_to("CRITERE", 'FORMULE_CRITERE'))
                ◆ FORMULE_GRDEQ = formule / fonction,
                ◆ COURBE_GRD_VIE = / "WOHLER",
                                   / "MANSON_COFFIN",
                                   / "FORM_VIE",
                # Si: (equal_to("COURBE_GRD_VIE", 'FORM_VIE'))
                    ◆ FORMULE_VIE = formule / fonction,
    ◇ INFO = / 1 (par défaut),
             / 2,
)

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