2. Syntaxe#

/ fiss_xfem
/ maillage = PROPA_FISS(
    ◆ METHODE_PROPA = / "SIMPLEXE",
                      / "MAILLAGE",
                      / "INITIALISATION",
                      / "GEOMETRIQUE",
                      / "UPWIND",
    ◇ OPERATION = / "RIEN" (par défaut),
                  / "DETECT_COHESIF",
                  / "PROPA_COHESIF",
    # Si: (equal_to("METHODE_PROPA", 'SIMPLEXE')) or (equal_to("METHODE_PROPA", 'UPWIND')) or (equal_to("METHODE_PROPA", 'GEOMETRIQUE') and equal_to("OPERATION", 'RIEN'))
        ◆ MODELE = modele,
        ◇ TEST_MAIL = / "NON" (par défaut),
                      / "OUI",
        ◆ DA_MAX = float,
        ◆ RAYON = float,
        ◇ ZONE_MAJ = / "TOUT",
                     / "TORE" (par défaut),
        # Si: equal_to("ZONE_MAJ", 'TORE')
            ◇ RAYON_TORE = float,
        # Si: 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",
                 # Si: equal_to("LOI", 'PARIS')
                     ◆ C = float,
                     ◆ M = float,
                     ◇ DELTA_K_SEUIL = float,
                 ◆ MATER = mater,
              ),
            ◆ COMP_LINE = _F(
                 ◆ COEF_MULT_MINI = float,
                 ◆ COEF_MULT_MAXI = float,
              ),
            ◇ CRIT_ANGL_BIFURCATION = / "SITT_MAX_DEVER",
                                      / "SITT_MAX" (par défaut),
                                      / "K1_MAX",
                                      / "K2_NUL",
                                      / "PLAN",
                                      / "ANGLE_IMPO",
                                      / "ANGLE_IMPO_GAMMA",
                                      / "ANGLE_IMPO_BETA_GAMMA",
        # Si: equal_to("TEST_MAIL", 'OUI')
            ◆ FISSURE = _F(
                 ◆ FISS_ACTUELLE = fiss_xfem,
                 ◆ FISS_PROPAGEE = co,
              ),
            ◇ ITERATIONS = int (défaut: 5),
            ◇ TOLERANCE = float (défaut: 5.0),
    # Si: (equal_to("OPERATION", 'DETECT_COHESIF'))
        ◆ MODELE = modele,
        ◇ TEST_MAIL = / "NON" (par défaut),
                      / "OUI",
        ◆ RESULTAT = evol_noli / evol_elas,
        ◇ ZONE_MAJ = / "TOUT",
                     / "TORE" (par défaut),
        # Si: equal_to("ZONE_MAJ", 'TORE')
            ◇ RAYON_TORE = float,
        # Si: 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" (par défaut),
                                      / "K1_MAX",
                                      / "K2_NUL",
                                      / "PLAN",
                                      / "ANGLE_IMPO",
                                      / "ANGLE_IMPO_GAMMA",
                                      / "ANGLE_IMPO_BETA_GAMMA",
    # Si: (equal_to("OPERATION", 'PROPA_COHESIF'))
        ◆ MODELE = modele,
        ◆ DA_MAX = float,
        ◇ TEST_MAIL = / "NON" (par défaut),
                      / "OUI",
        ◇ ZONE_MAJ = / "TOUT",
                     / "TORE" (par défaut),
        # Si: equal_to("ZONE_MAJ", 'TORE')
            ◇ RAYON_TORE = float,
        # Si: 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" (par défaut),
                                      / "K1_MAX",
                                      / "K2_NUL",
                                      / "PLAN",
                                      / "ANGLE_IMPO",
    # Si: (equal_to("METHODE_PROPA", 'MAILLAGE'))
        ◆ MAIL_STRUC = maillage,
        ◆ ITERATION = int,
        ◆ DA_MAX = float,
        ◆ FISSURE = _F(
             ◆ MAIL_ACTUEL = maillage,
             ◇ GROUP_MA_FOND = grma (défaut: FOND),
             ◇ GROUP_MA_FISS = grma (défaut: FISS),
             ◆ FISS_ACTUELLE = fiss_xfem,
             ◇ MAIL_PROPAGE = co,
             ◆ TABLE = table,
          ),
        ◆ MAIL_TOTAL = co,
        ◆ LOI_PROPA = _F(
             ◇ LOI = "PARIS",
             # Si: equal_to("LOI", 'PARIS')
                 ◆ C = float,
                 ◆ M = float,
                 ◇ DELTA_K_SEUIL = float,
             ◆ MATER = mater,
          ),
        ◆ COMP_LINE = _F(
             ◆ COEF_MULT_MINI = float,
             ◆ COEF_MULT_MAXI = float,
          ),
        ◇ CRIT_ANGL_BIFURCATION = / "SITT_MAX" (par défaut),
                                  / "SITT_MAX_DEVER",
                                  / "K1_MAX",
                                  / "K2_NUL",
                                  / "PLAN",
                                  / "ANGLE_IMPO",
    # Si: (equal_to("METHODE_PROPA", 'INITIALISATION'))
        ◆ MAIL_STRUC = maillage,
        ◆ FORM_FISS = / "DEMI_DROITE",
                      / "DEMI_PLAN",
                      / "ELLIPSE",
        ◇ GROUP_MA_FOND = grma (défaut: FOND),
        ◇ GROUP_MA_FISS = grma (défaut: FISS),
        ◆ MAIL_TOTAL = co,
        ◇ MAIL_FISS = co,
        # Si: equal_to("FORM_FISS", 'DEMI_DROITE')
            ◆ PFON = float,
            ◆ DTAN = float,
        # Si: equal_to("FORM_FISS", 'DEMI_PLAN')
            ◆ DTAN = float,
            ◆ POINT_ORIG = float,
            ◆ POINT_EXTR = float,
            ◆ NB_POINT_FOND = int,
        # Si: 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 (par défaut),
             / 2,
)

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