2. Syntax#

fiss_xfem = DEFI_FISS_XFEM (
    ◇ TYPE_DISCONTINUITE =/"FISSURE" (by default),
                           /"INTERFACE ",
                           /"COHESIF ",
    ◆ MAILLAGE = mesh,
    ◇/MAILLAGE_GRILLE = mesh,
      /FISS_GRILLE = fiss_xfem,
    # If: equal_to (" TYPE_DISCONTINUITE ", 'COHESIF')
        ◆ DEFI_FISS = _F (
             ◇ FONC_LT = formula/function,
             ◇ FONC_LN = formula/function,
             ◆ GROUP_MA_BORD = GRMA,
             ◇ FORM_FISS =/"ELLIPSE ",
                           /"RECTANGLE ",
                           /"CYLINDRE ",
                           /"DEMI_PLAN ",
                           /"SEGMENT ",
                           /"DEMI_DROITE ",
                           /"DROITE ",
                           /"ENTAILLE ",
             # If: equal_to (" FORM_FISS ", 'ELLIPSE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS =/"IN" (by default),
                               /"OUT ",
             # If: 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" (by default),
                               /"OUT ",
             # If: equal_to (" FORM_FISS ", 'ENTAILLE')
                 ◆ DEMI_LONGUEUR = float,
                 ◆ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # If: equal_to (" FORM_FISS ", 'CYLINDRE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # If: equal_to (" FORM_FISS ", 'DEMI_PLAN')
                 ◆ PFON = float,
                 ◆ NORMALE = float,
                 ◆ DTAN = float,
             # If: equal_to (" FORM_FISS ", 'SEGMENT')
                 ◆ PFON_ORIG = float,
                 ◆ PFON_EXTR = float,
             # If: equal_to (" FORM_FISS ", 'DEMI_DROITE')
                 ◆ PFON = float,
                 ◆ DTAN = float,
             # If: equal_to (" FORM_FISS ", 'DROITE')
                 ◆ POINT = float,
                 ◆ DTAN = float,
          ),
    # If: not equal_to (" TYPE_DISCONTINUITE ", 'COHESIF')
        ◆ DEFI_FISS = _F (
             ◇ FONC_LT = formula/function,
             ◇ FONC_LN = formula/function,
             ◇ 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 ",
             # If: equal_to (" FORM_FISS ", 'ELLIPSE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
                 ◇ COTE_FISS =/"IN" (by default),
                               /"OUT ",
             # If: 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" (by default),
                               /"OUT ",
             # If: equal_to (" FORM_FISS ", 'ENTAILLE')
                 ◆ DEMI_LONGUEUR = float,
                 ◆ RAYON_CONGE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # If: equal_to (" FORM_FISS ", 'CYLINDRE')
                 ◆ DEMI_GRAND_AXE = float,
                 ◆ DEMI_PETIT_AXE = float,
                 ◆ CENTRE = float,
                 ◆ VECT_X = float,
                 ◆ VECT_Y = float,
             # If: equal_to (" FORM_FISS ", 'DEMI_PLAN')
                 ◆ PFON = float,
                 ◆ NORMALE = float,
                 ◆ DTAN = float,
             # If: equal_to (" FORM_FISS ", 'SEGMENT')
                 ◆ PFON_ORIG = float,
                 ◆ PFON_EXTR = float,
             # If: equal_to (" FORM_FISS ", 'DEMI_DROITE')
                 ◆ PFON = float,
                 ◆ DTAN = float,
             # If: equal_to (" FORM_FISS ", 'DROITE')
                 ◆ POINT = float,
                 ◆ DTAN = float,
          ),
    ◇ GROUP_MA_ENRI = Grma,
    # If: equal_to (" TYPE_DISCONTINUITE ", 'INTERFACE')
        ◇ CHAM_DISCONTINUITE =/"DEPL" (by default),
                               /"SIGM ",
    # If: equal_to (" TYPE_DISCONTINUITE ", 'FISSURE')
        ◇ CHAM_DISCONTINUITE = "DEPL ",
        ◇ TYPE_ENRI_FOND =/"TOPOLOGIQUE ",
                           /"GEOMETRIQUE" (by default),
        # If: equal_to (" TYPE_ENRI_FOND ", 'GEOMETRIQUE')
            ◇ RAYON_ENRI = float,
            # If: (not exists (" RAYON_ENRI "))
                ◇ NB_COUCHES = int (default: 2),
    # If: (not exists (" MAILLAGE_GRILLE ")) and (not exists (" FISS_GRILLE "))
        ◇ JONCTION = _F (
             ◆ FISSURE = fiss_xfem,
             ◆ POINT = float,
          ),
    ◇ INFO =/1 (by default),
             /2,
             /3,
)

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