2. Syntaxe#

fiss_xfem = DEFI_FISS_XFEM(
    ◇ TYPE_DISCONTINUITE = / "FISSURE" (par défaut),
                           / "INTERFACE",
                           / "COHESIF",
    ◆ MAILLAGE = maillage,
    ◇ / MAILLAGE_GRILLE = maillage,
      / FISS_GRILLE = fiss_xfem,
    # Si: equal_to("TYPE_DISCONTINUITE", 'COHESIF')
        ◆ DEFI_FISS = _F(
             ◇ FONC_LT = formule / fonction,
             ◇ FONC_LN = formule / fonction,
             ◆ GROUP_MA_BORD = grma,
             ◇ FORM_FISS = / "ELLIPSE",
                           / "RECTANGLE",
                           / "CYLINDRE",
                           / "DEMI_PLAN",
                           / "SEGMENT",
                           / "DEMI_DROITE",
                           / "DROITE",
                           / "ENTAILLE",
             # Si: equal_to("FORM_FISS", 'ELLIPSE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS = / "IN" (par défaut),
                               / "OUT",
             # Si: equal_to("FORM_FISS", 'RECTANGLE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◇ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS = / "IN" (par défaut),
                               / "OUT",
             # Si: equal_to("FORM_FISS", 'ENTAILLE')
                 ◆ DEMI_LONGUEUR = float,
                 ◆ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # Si: equal_to("FORM_FISS", 'CYLINDRE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # Si: equal_to("FORM_FISS", 'DEMI_PLAN')
                 ◆ PFON = float,
                 ◆ NORMALE = float,
                 ◆ DTAN = float,
             # Si: equal_to("FORM_FISS", 'SEGMENT')
                 ◆ PFON_ORIG = float,
                 ◆ PFON_EXTR = float,
             # Si: equal_to("FORM_FISS", 'DEMI_DROITE')
                 ◆ PFON = float,
                 ◆ DTAN = float,
             # Si: equal_to("FORM_FISS", 'DROITE')
                 ◆ POINT = float,
                 ◆ DTAN = float,
          ),
    # Si: not equal_to("TYPE_DISCONTINUITE", 'COHESIF')
        ◆ DEFI_FISS = _F(
             ◇ FONC_LT = formule / fonction,
             ◇ FONC_LN = formule / fonction,
             ◇ CHAM_NO_LSN = cham_no,
             ◇ CHAM_NO_LST = cham_no,
             ◇ GROUP_MA_FISS = grma,
             ◇ GROUP_MA_FOND = grma,
             ◇ FORM_FISS = / "ELLIPSE",
                           / "RECTANGLE",
                           / "CYLINDRE",
                           / "DEMI_PLAN",
                           / "SEGMENT",
                           / "DEMI_DROITE",
                           / "DROITE",
                           / "ENTAILLE",
             # Si: equal_to("FORM_FISS", 'ELLIPSE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS = / "IN" (par défaut),
                               / "OUT",
             # Si: equal_to("FORM_FISS", 'RECTANGLE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◇ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS = / "IN" (par défaut),
                               / "OUT",
             # Si: equal_to("FORM_FISS", 'ENTAILLE')
                 ◆ DEMI_LONGUEUR = float,
                 ◆ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # Si: equal_to("FORM_FISS", 'CYLINDRE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # Si: equal_to("FORM_FISS", 'DEMI_PLAN')
                 ◆ PFON = float,
                 ◆ NORMALE = float,
                 ◆ DTAN = float,
             # Si: equal_to("FORM_FISS", 'SEGMENT')
                 ◆ PFON_ORIG = float,
                 ◆ PFON_EXTR = float,
             # Si: equal_to("FORM_FISS", 'DEMI_DROITE')
                 ◆ PFON = float,
                 ◆ DTAN = float,
             # Si: equal_to("FORM_FISS", 'DROITE')
                 ◆ POINT = float,
                 ◆ DTAN = float,
          ),
    ◇ GROUP_MA_ENRI = grma,
    # Si: equal_to("TYPE_DISCONTINUITE", 'INTERFACE')
        ◇ CHAM_DISCONTINUITE = / "DEPL" (par défaut),
                               / "SIGM",
    # Si: equal_to("TYPE_DISCONTINUITE", 'FISSURE')
        ◇ CHAM_DISCONTINUITE = "DEPL",
        ◇ TYPE_ENRI_FOND = / "TOPOLOGIQUE",
                           / "GEOMETRIQUE" (par défaut),
        # Si: equal_to("TYPE_ENRI_FOND", 'GEOMETRIQUE')
            ◇ RAYON_ENRI = float,
            # Si: (not exists("RAYON_ENRI"))
                ◇ NB_COUCHES = int (défaut: 2),
    # Si: (not exists("MAILLAGE_GRILLE")) and (not exists("FISS_GRILLE"))
        ◇ JONCTION = _F(
             ◆ FISSURE = fiss_xfem,
             ◆ POINT = float,
          ),
    ◇ INFO = / 1 (par défaut),
             / 2,
             / 3,
)

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