2. Syntaxe#

/ grille
/ maillage
/ squelette = DEFI_GROUP(
    ◆ reuse = <objet de MAILLAGE ou GRILLE>,
    ◆ / MAILLAGE = maillage / squelette,
      / GRILLE = grille,
    ◆ | DETR_GROUP_MA = _F(
           ◆ NOM = text,
        ),
      | CREA_GROUP_MA = _F(
           ◆ NOM = text,
           ◆ / TOUT = "OUI" (ou non renseigné),
             / GROUP_MA = grma,
             / INTERSEC = grma,
             / UNION = grma,
             / DIFFE = grma,
             / OPTION = / "APPUI",
                        / "BANDE",
                        / "CYLINDRE",
                        / "FACE_NORMALE",
                        / "FISS_XFEM",
                        / "SPHERE",
           ◇ TYPE_MAILLE = / "1D",
                           / "2D",
                           / "3D",
                           / "HEXA20",
                           / "HEXA27",
                           / "HEXA8",
                           / "PENTA15",
                           / "PENTA18",
                           / "PENTA6",
                           / "POI1",
                           / "PYRAM13",
                           / "PYRAM5",
                           / "QUAD4",
                           / "QUAD8",
                           / "QUAD9",
                           / "SEG2",
                           / "SEG3",
                           / "SEG4",
                           / "TETRA10",
                           / "TETRA4",
                           / "TOUT" (par défaut),
                           / "TRIA3",
                           / "TRIA6",
                           / "TRIA7",
           # Si: exists("GROUP_MA")
               ◇ / NUME_INIT = int,
                 / POSITION = / "FIN",
                              / "INIT",
                              / "MILIEU",
               # Si: exists("NUME_INIT")
                   ◇ NUME_FIN = int,
           # Si: equal_to("OPTION", 'FACE_NORMALE')
               ◆ / ANGL_NAUT = float,
                 / VECT_NORMALE = float,
               ◇ ANGL_PREC = float (défaut: 0.5),
               ◇ VERI_SIGNE = / "NON",
                              / "OUI" (par défaut),
           # Si: equal_to("OPTION", 'SPHERE')
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ RAYON = float,
               ◇ CRIT_NOEUD = / "AU_MOINS_UN" (par défaut),
                              / "MAJORITE",
                              / "TOUS",
           # Si: equal_to("OPTION", 'CYLINDRE')
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ RAYON = float,
               ◆ / ANGL_NAUT = float,
                 / VECT_NORMALE = float,
               ◇ CRIT_NOEUD = / "AU_MOINS_UN" (par défaut),
                              / "MAJORITE",
                              / "TOUS",
           # Si: equal_to("OPTION", 'BANDE')
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ DIST = float,
               ◆ / ANGL_NAUT = float,
                 / VECT_NORMALE = float,
               ◇ CRIT_NOEUD = / "AU_MOINS_UN" (par défaut),
                              / "MAJORITE",
                              / "TOUS",
           # Si: equal_to("OPTION", 'APPUI')
               ◆ / GROUP_NO = grno,
               ◆ TYPE_APPUI = / "AU_MOINS_UN",
                              / "MAJORITE",
                              / "SOMMET",
                              / "TOUT",
           # Si: equal_to("OPTION", 'FISS_XFEM')
               ◇ TYPE_GROUP = / "CRACKTIP",
                              / "FISSUREE",
                              / "HEAVISIDE",
                              / "MIXTE",
                              / "XFEM" (par défaut),
               ◆ FISSURE = fiss_xfem,
        ),
      | CREA_GROUP_NO = _F(
           ◇ OPTION = / "ENV_CYLINDRE",
                      / "ENV_SPHERE",
                      / "FISS_XFEM",
                      / "INCLUSION",
                      / "INTERVALLE_VALE",
                      / "NOEUD_ORDO",
                      / "PLAN",
                      / "RELA_CINE_BP",
                      / "SEGM_DROI_ORDO",
                      / "TUNNEL",
           # Si: not exists("OPTION")
               ◆ / TOUT_GROUP_MA = "OUI" (ou non renseigné),
                 / GROUP_MA = grma,
                 / GROUP_NO = grno,
                 / INTERSEC = grno,
                 / UNION = grno,
                 / DIFFE = grno,
               # Si: exists("GROUP_MA")
                   ◇ NOM = text,
                   ◇ CRIT_NOEUD = / "CENTRE",
                                  / "MILIEU",
                                  / "SOMMET",
                                  / "TOUS" (par défaut),
               # Si: exists("GROUP_NO")
                   ◇ / NUME_INIT = int,
                     / POSITION = / "FIN",
                                  / "INIT",
                                  / "MILIEU",
                   # Si: exists("NUME_INIT")
                       ◇ NUME_FIN = int,
               # Si: not exists("GROUP_MA") and not exists("TOUT_GROUP_MA")
                   ◆ NOM = text,
           # Si: equal_to("OPTION", 'ENV_SPHERE')
               ◆ NOM = text,
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ RAYON = float,
               ◆ PRECISION = float,
           # Si: equal_to("OPTION", 'ENV_CYLINDRE')
               ◆ NOM = text,
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ RAYON = float,
               ◆ / ANGL_NAUT = float,
                 / VECT_NORMALE = float,
               ◆ PRECISION = float,
           # Si: equal_to("OPTION", 'PLAN')
               ◆ NOM = text,
               ◆ / POINT = float,
                 / GROUP_NO_CENTRE = grno,
               ◆ / ANGL_NAUT = float,
                 / VECT_NORMALE = float,
               ◆ PRECISION = float,
           # Si: equal_to("OPTION", 'SEGM_DROI_ORDO')
               ◆ NOM = text,
               ◇ GROUP_NO = grno,
               ◆ GROUP_NO_ORIG = grno,
               ◆ GROUP_NO_EXTR = grno,
               ◆ PRECISION = float,
               ◆ CRITERE = / "ABSOLU",
                           / "RELATIF",
           # Si: equal_to("OPTION", 'NOEUD_ORDO')
               ◆ NOM = text,
               ◆ GROUP_MA = grma,
               ◇ GROUP_NO_ORIG = grno,
               ◇ GROUP_NO_EXTR = grno,
               ◇ VECT_ORIE = float,
               ◇ ORIGINE = "SANS" (ou non renseigné),
           # Si: equal_to("OPTION", 'TUNNEL')
               ◆ NOM = text,
               ◆ | TOUT = "OUI" (ou non renseigné),
                 | GROUP_MA = grma,
               ◇ GROUP_MA_AXE = grma,
               ◇ GROUP_NO_ORIG = grno,
               ◆ RAYON = float,
               ◇ LONGUEUR = float,
           # Si: equal_to("OPTION", 'INCLUSION')
               ◆ NOM = text,
               ◆ CAS_FIGURE = / "2.5D",
                              / "2D",
                              / "3D",
               ◇ DISTANCE_MAX = float,
               ◆ GROUP_MA = grma,
               ◆ GROUP_MA_INCL = grma,
               ◇ MAILLAGE_INCL = maillage,
           # Si: equal_to("OPTION", 'FISS_XFEM')
               ◆ NOM = text,
               ◆ TYPE_GROUP = / "CRACKTIP",
                              / "HEAVISIDE",
                              / "MIXTE",
                              / "TORE",
                              / "XFEM",
                              / "ZONE_MAJ",
               ◆ FISSURE = fiss_xfem,
               # Si: equal_to("TYPE_GROUP", 'TORE')
                   ◆ RAYON_TORE = float,
           # Si: equal_to("OPTION", 'INTERVALLE_VALE')
               ◆ NOM = text,
               ◆ CHAM_GD = cham_no,
               ◆ NOM_CMP = text,
               ◆ VALE = float,
           # Si: equal_to("OPTION", 'RELA_CINE_BP')
               ◆ CABLE_BP = cabl_precont,
               ◇ PREF_GRNO = text (défaut: "RCBP"),
        ),
      | DETR_GROUP_NO = _F(
           ◆ NOM = text,
        ),
    ◇ ALARME = / "NON",
               / "OUI" (par défaut),
    ◇ INFO = / 1,
             / 2,
)

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