2. Syntax#

/fiss_xfem
/mesh = PROPA_FISS (
    ◆ METHODE_PROPA =/"SIMPLEXE ",
                      /"MAILLAGE ",
                      /"INITIALISATION ",
                      /"GEOMETRIQUE ",
                      /"UPWIND ",
    ◇ OPERATION =/"RIEN" (by default),
                  /"DETECT_COHESIF ",
                  /"PROPA_COHESIF ",
    # If: (equal_to (" METHODE_PROPA ", 'SIMPLEXE')) or (equal_to (" METHODE_PROPA ", 'UPWIND')) or (equal_to (" METHODE_PROPA ", 'GEOMETRIQUE') and equal_to (" OPERATION ", 'RIEN')
        ◆ MODELE = model,
        ◇ TEST_MAIL =/"NON" (by default),
                      /"OUI ",
        ◆ DA_MAX = float,
        ◆ RAYON = float,
        ◇ ZONE_MAJ =/"TOUT ",
                     /"TORE" (by default),
        # If: equal_to (" ZONE_MAJ ", 'TORE')
            ◇ RAYON_TORE = float,
        # If: equal_to (" TEST_MAIL ", 'NON')
            ◆ FISSURE = _F (
                 ◆ FISS_ACTUELLE = fiss_xfem,
                 ◆ FISS_PROPAGEE = co,
                 ◇ NB_POINT_FOND = int,
                 ◆ TABLE = table,
              ),
            ◆ LOI_PROPA = _F (
                 ◇ LOI = "PARIS ",
                 # If: equal_to (" LOI ", 'PARIS')
                     ◆ C = float,
                     ◆ M = float,
                     ◇ DELTA_K_SEUIL = float,
                 ◆ MATER = subdue,
              ),
            ◆ COMP_LINE = _F (
                 ◆ COEF_MULT_MINI = float,
                 ◆ COEF_MULT_MAXI = float,
              ),
            ◇ CRIT_ANGL_BIFURCATION =/"SITT_MAX_DEVER ",
                                      /"SITT_MAX" (by default),
                                      /"K1_ MAX ",
                                      /"K2_ NUL ",
                                      /"PLAN ",
                                      /"ANGLE_IMPO ",
                                      /"ANGLE_IMPO_GAMMA ",
                                      /"ANGLE_IMPO_BETA_GAMMA ",
        # If: equal_to (" TEST_MAIL ", 'OUI')
            ◆ FISSURE = _F (
                 ◆ FISS_ACTUELLE = fiss_xfem,
                 ◆ FISS_PROPAGEE = co,
              ),
            ◇ ITERATIONS = int (default: 5),
            ◇ TOLERANCE = float (default: 5.0),
    # If: (equal_to (" OPERATION ", 'DETECT_COHESIF'))
        ◆ MODELE = model,
        ◇ TEST_MAIL =/"NON" (by default),
                      /"OUI ",
        ◆ RESULTAT = evol_noli/evol_elas,
        ◇ ZONE_MAJ =/"TOUT ",
                     /"TORE" (by default),
        # If: equal_to (" ZONE_MAJ ", 'TORE')
            ◇ RAYON_TORE = float,
        # If: equal_to (" TEST_MAIL ", 'NON')
            ◆ FISSURE = _F (
                 ◆ FISS_ACTUELLE = fiss_xfem,
                 ◆ FISS_PROPAGEE = co,
                 ◇ NB_POINT_FOND = int,
                 ◆ TABLE = table,
              ),
            ◇ CRIT_ANGL_BIFURCATION =/"SITT_MAX_DEVER ",
                                      /"SITT_MAX" (by default),
                                      /"K1_ MAX ",
                                      /"K2_ NUL ",
                                      /"PLAN ",
                                      /"ANGLE_IMPO ",
                                      /"ANGLE_IMPO_GAMMA ",
                                      /"ANGLE_IMPO_BETA_GAMMA ",
    # If: (equal_to (" OPERATION ", 'PROPA_COHESIF'))
        ◆ MODELE = model,
        ◆ DA_MAX = float,
        ◇ TEST_MAIL =/"NON" (by default),
                      /"OUI ",
        ◇ ZONE_MAJ =/"TOUT ",
                     /"TORE" (by default),
        # If: equal_to (" ZONE_MAJ ", 'TORE')
            ◇ RAYON_TORE = float,
        # If: equal_to (" TEST_MAIL ", 'NON')
            ◆ FISSURE = _F (
                 ◆ FISS_ACTUELLE = fiss_xfem,
                 ◆ FISS_PROPAGEE = co,
                 ◇ NB_POINT_FOND = int,
                 ◆ TABLE = table,
              ),
            ◇ CRIT_ANGL_BIFURCATION =/"SITT_MAX" (by default),
                                      /"K1_ MAX ",
                                      /"K2_ NUL ",
                                      /"PLAN ",
                                      /"ANGLE_IMPO ",
    # If: (equal_to (" METHODE_PROPA ", 'MAILLAGE'))
        ◆ MAIL_STRUC = mesh,
        ◆ ITERATION = int,
        ◆ DA_MAX = float,
        ◆ FISSURE = _F (
             ◆ MAIL_ACTUEL = mesh,
             ◇ GROUP_MA_FOND = grma (default: FOND),
             ◇ GROUP_MA_FISS = grma (default: FISS),
             ◆ FISS_ACTUELLE = fiss_xfem,
             ◇ MAIL_PROPAGE = co,
             ◆ TABLE = table,
          ),
        ◆ MAIL_TOTAL = co,
        ◆ LOI_PROPA = _F (
             ◇ LOI = "PARIS ",
             # If: equal_to (" LOI ", 'PARIS')
                 ◆ C = float,
                 ◆ M = float,
                 ◇ DELTA_K_SEUIL = float,
             ◆ MATER = subdue,
          ),
        ◆ COMP_LINE = _F (
             ◆ COEF_MULT_MINI = float,
             ◆ COEF_MULT_MAXI = float,
          ),
        ◇ CRIT_ANGL_BIFURCATION =/"SITT_MAX" (by default),
                                  /"SITT_MAX_DEVER ",
                                  /"K1_ MAX ",
                                  /"K2_ NUL ",
                                  /"PLAN ",
                                  /"ANGLE_IMPO ",
    # If: (equal_to (" METHODE_PROPA ", 'INITIALISATION'))
        ◆ MAIL_STRUC = mesh,
        ◆ FORM_FISS =/"DEMI_DROITE ",
                      /"DEMI_PLAN ",
                      /"ELLIPSE ",
        ◇ GROUP_MA_FOND = grma (default: FOND),
        ◇ GROUP_MA_FISS = grma (default: FISS),
        ◆ MAIL_TOTAL = co,
        ◇ MAIL_FISS = co,
        # If: equal_to (" FORM_FISS ", 'DEMI_DROITE')
            ◆ PFON = float,
            ◆ DTAN = float,
        # If: equal_to (" FORM_FISS ", 'DEMI_PLAN')
            ◆ DTAN = float,
            ◆ POINT_ORIG = float,
            ◆ POINT_EXTR = float,
            ◆ NB_POINT_FOND = int,
        # If: equal_to (" FORM_FISS ", 'ELLIPSE')
            ◆ CENTRE = float,
            ◆ DEMI_GRAND_AXE = float,
            ◆ DEMI_PETIT_AXE = float,
            ◆ VECT_X = float,
            ◆ VECT_Y = float,
            ◆ ANGLE_ORIG = float,
            ◆ ANGLE_EXTR = float,
            ◆ NB_POINT_FOND = int,
    ◇ INFO =/0,
             /1 (by default),
             /2,
)

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