1. Syntaxe#

list_inst = DEFI_LIST_INST(
    ◇ MODELE = modele,
    ◇ METHODE = / "AUTO",
                / "MANUEL" (par défaut),
    # Si: equal_to("METHODE", 'MANUEL')
        ◆ DEFI_LIST = _F(
             ◆ / VALE = list[float],
               / LIST_INST = listr8,
               / RESULTAT = resultat,
             ◇ & SUBD_PAS = int,
          ),
    # Si: (equal_to("METHODE", 'AUTO'))
        ◆ DEFI_LIST = _F(
             ◆ / VALE = list[float],
               / LIST_INST = listr8,
             ◇ PAS_MINI = float,
             ◇ PAS_MAXI = float,
             ◇ NB_PAS_MAXI = int (défaut: 1000000),
          ),
    ⟐ ECHEC = _F(
         ◇ EVENEMENT = / "DELTA_GRANDEUR",
                       / "DIVE_RESI",
                       / "ERREUR" (par défaut),
                       / "INSTABILITE",
                       / "INTERPENETRATION",
                       / "RESI_MAXI",
         # Si: equal_to("EVENEMENT", 'ERREUR')
             # Si: equal_to("ACTION", 'DECOUPE')
                 # Si: equal_to("SUBD_METHODE", 'AUTO')
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 # Si: equal_to("SUBD_METHODE", 'MANUEL')
                     ◇ SUBD_PAS = int (défaut: 4),
                     ◇ SUBD_NIVEAU = int (défaut: 3),
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 ◇ SUBD_METHODE = / "AUTO",
                                  / "MANUEL" (par défaut),
             # Si: equal_to("ACTION", 'ITER_SUPPL')
                 # Si: equal_to("SUBD_METHODE", 'AUTO')
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 # Si: equal_to("SUBD_METHODE", 'MANUEL')
                     ◇ SUBD_PAS = int (défaut: 4),
                     ◇ SUBD_NIVEAU = int (défaut: 3),
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 ◇ PCENT_ITER_PLUS = int (défaut: 50),
                 ◇ SUBD_METHODE = / "AUTO",
                                  / "MANUEL" (par défaut),
             ◇ ACTION = / "ARRET",
                        / "DECOUPE" (par défaut),
                        / "ITER_SUPPL",
         # Si: equal_to("EVENEMENT", 'DELTA_GRANDEUR')
             # Si: equal_to("ACTION", 'DECOUPE')
                 # Si: equal_to("SUBD_METHODE", 'AUTO')
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 # Si: equal_to("SUBD_METHODE", 'MANUEL')
                     ◇ SUBD_PAS = int (défaut: 4),
                     ◇ SUBD_NIVEAU = int (défaut: 3),
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 ◇ SUBD_METHODE = / "AUTO",
                                  / "MANUEL" (par défaut),
             ◇ / GROUP_MA = list[grma],
               / GROUP_NO = list[grno],
             ◆ VALE_REF = float,
             ◆ NOM_CHAM = / "DEPL",
                          / "SIEF_ELGA",
                          / "VARI_ELGA",
             ◆ NOM_CMP = text,
             ◇ ACTION = / "ARRET",
                        / "DECOUPE" (par défaut),
         # Si: equal_to("EVENEMENT", 'INTERPENETRATION')
             # Si: equal_to("ACTION", 'ADAPT_COEF_PENA')
                 ◇ COEF_MAXI = float (défaut: 1000000000000.0),
             ◆ PENE_MAXI = float,
             ◇ ACTION = / "ADAPT_COEF_PENA" (par défaut),
                        / "ARRET",
         # Si: equal_to("EVENEMENT", 'DIVE_RESI')
             # Si: equal_to("ACTION", 'DECOUPE')
                 # Si: equal_to("SUBD_METHODE", 'AUTO')
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 # Si: equal_to("SUBD_METHODE", 'MANUEL')
                     ◇ SUBD_PAS = int (défaut: 4),
                     ◇ SUBD_NIVEAU = int (défaut: 3),
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 ◇ SUBD_METHODE = / "AUTO",
                                  / "MANUEL" (par défaut),
             ◇ ACTION = "DECOUPE",
         # Si: equal_to("EVENEMENT", 'RESI_MAXI')
             # Si: equal_to("ACTION", 'DECOUPE')
                 # Si: equal_to("SUBD_METHODE", 'AUTO')
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 # Si: equal_to("SUBD_METHODE", 'MANUEL')
                     ◇ SUBD_PAS = int (défaut: 4),
                     ◇ SUBD_NIVEAU = int (défaut: 3),
                     ◇ SUBD_PAS_MINI = float (défaut: 0.0),
                 ◇ SUBD_METHODE = / "AUTO",
                                  / "MANUEL" (par défaut),
             ◆ RESI_GLOB_MAXI = float,
             ◇ ACTION = "DECOUPE",
         # Si: equal_to("EVENEMENT", 'INSTABILITE')
             ◇ ACTION = / "ARRET",
                        / "CONTINUE" (par défaut),
      ),
    # Si: equal_to("METHODE", 'AUTO')
        ⟐ ADAPTATION = _F(
             ◇ EVENEMENT = / "AUCUN",
                           / "SEUIL" (par défaut),
                           / "TOUT_INST",
             # Si: equal_to("EVENEMENT", 'SEUIL')
                 ◇ NB_INCR_SEUIL = int (défaut: 2),
                 ◇ NOM_PARA = "NB_ITER_NEWTON",
                 ◇ CRIT_COMP = / "GE",
                               / "GT",
                               / "LE" (par défaut),
                               / "LT",
                 # Si: equal_to("NOM_PARA", 'NB_ITER_NEWTON')
                     ◇ VALE_I = int,
             ◇ MODE_CALCUL_TPLUS = / "DELTA_GRANDEUR",
                                   / "FIXE" (par défaut),
                                   / "IMPLEX",
                                   / "ITER_NEWTON",
             # Si: equal_to("MODE_CALCUL_TPLUS", 'FIXE')
                 ◇ PCENT_AUGM = float (défaut: 100.0),
             # Si: equal_to("MODE_CALCUL_TPLUS", 'DELTA_GRANDEUR')
                 ◇ / GROUP_MA = list[grma],
                   / GROUP_NO = list[grno],
                 ◆ VALE_REF = float,
                 ◆ NOM_CHAM = / "DEPL",
                              / "SIEF_ELGA",
                              / "VARI_ELGA",
                 ◆ NOM_CMP = text,
             # Si: equal_to("MODE_CALCUL_TPLUS", 'ITER_NEWTON')
                 ◆ NB_ITER_NEWTON_REF = int,
          ),
    ◇ INFO = / 1 (par défaut),
             / 2,
)

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