2. Syntax#

RESTAB = CALC_STAB_PENTE (
    ◆ CHAM_MATER = cham_master,
    ◆ METHODE_STAB =/"SRM" (by default),
                     /"LEM ",
    # If: equal_to (" METHODE_STAB "," SRM "," ")
        ◆ MODELE = model,

        # choice of zone where SRM applies
        ◆/TOUT = "OUI" (or not specified),
          /GROUP_MA = grma,

        # list of loads to apply
        ◆ EXCIT = _F (
                        ◆ CHARGE = char_meca/char_cine_meca,
                        ◇ FONC_MULT = formula/sheet/function,
                        ◇ TYPE_CHARGE =/"FIXE_CSTE" (by default),
                                        /"SUIV ",
                                        /"DIDI ",
          ),

        # list of moments
        ◆ INCREMENT = C_ INCREMENT (" MECANIQUE ")

        # other `STAT_NON_LINE` configuration
        CONVERGENCE = C_ CONVERGENE (" STAT_NON_LINE ")
        COMPORTEMENT = C_ COMPORTEMENT (" STAT_NON_LINE ")

        # Verification: only one component among "MORH_COULOMB" and "DRUCK_PRAGER"
        # is allowed in the SRM zone

        ◇ FS = _F (
             ◇ FS_INIT = float (default: 1.0),
             ◇ INCR_INIT = float (default: 0.1),
             ◇ RESI_MAXI = float (default: 0.01),
             ◇ ITER_MAXI = int (default: 100),
             ◇ METHODE =/"EXPONENTIELLE" (by default),
                         /"LINEAIRE ",

             # If: equal_to (" METHODE "," LINEAIRE "," ")
                 ◆ ITER_RAFF_LINE = int,
          ),


    # If: equal_to (" METHODE_STAB "," LEM "," ")
        ◇ METHODE_LEM =/"BISHOP" (by default),
                        /"FELLENIUS ",
                        /"SPENCER ",
                        /"MORGENSTERN_PRICE ",
        ◇ CRITERE =/"MOHR_COULOMB" (by default),
                    /"DRUCK_PRAGER ",
        ◆ GROUP_MA = Grma,
        ◇ NB_TRANCHE = int (default: 10),
        RAFF_MAIL = _F (
                        ◇ NB_RAFF_MAXI = int (default: 4),
                        ◇ RAFF_CRIT_STAB = float (default: 0.001),
                        ),
        ◆ X1_ MINI = float,
        ◆ X1_ MAXI = float,
        ◆ X2_ MINI = float,
        ◆ X2_ MAXI = float,
        # If: (equal_to (" METHODE_LEM "," "," BISHOP ")) or (equal_to (" METHODE_LEM "," FELLENIUS "))
            ◇ NB_POINT_1 = int (default: 5),
            ◇ NB_POINT_2 = int (default: 5),
            ◇ Y_ MINI = float,
            ◇ Y_ MAXI = float,
        # If: (equal_to (" METHODE_LEM "," "," MORGENSTERN_PRICE ") or (equal_to (" METHODE_LEM "," SPENCER "))))
            ALGO_EFWA = _F (
                 ◇ ETAT_INIT = table,
                 ◇ ITER_MAXI = int (default: 100.0),
                 ◆ A = float,
                 ◇ N = int (default: 5),
                 ◇ M = int (default: 40),
                 ◇ MG = int (default: 5),
                 ◇ SA = float (default: 0.04),
                 ◇ SB = float (default: 0.8),
                 ◇ NB_STAB_MAXI = int (default: 10),
                 ◇ CRIT_STAB = float (default: 0.001),
                 ◇ MARGE_PENTE = float (default: 0.1),
              ),

    # evol_noli visualizing the sliding surface
    ◇ CHAM_DEFO = co,
    ◇ INFO =/1 (by default),
             /2,
)

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