char_contact = DEFI_CONTACT(
◆ MODELE = modele,
◇ INFO = / 1,
/ 2,
◇ FORMULATION = / "CONTINUE",
/ "DISCRETE" (par défaut),
/ "LIAISON_UNIL",
◇ FROTTEMENT = / "COULOMB",
/ "SANS" (par défaut),
# Si: ((equal_to("FORMULATION", 'CONTINUE')) or (equal_to("FORMULATION", 'DISCRETE')))
◇ STOP_INTERP = / "NON" (par défaut),
/ "OUI",
◇ LISSAGE = / "NON" (par défaut),
/ "OUI",
◇ VERI_NORM = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("FORMULATION", 'DISCRETE')
◇ ALGO_RESO_GEOM = "POINT_FIXE",
◇ REAC_GEOM = / "AUTOMATIQUE" (par défaut),
/ "CONTROLE",
/ "SANS",
# Si: equal_to("REAC_GEOM", 'AUTOMATIQUE')
◇ ITER_GEOM_MAXI = int (défaut: 10),
◇ RESI_GEOM = float (défaut: 0.01),
# Si: equal_to("REAC_GEOM", 'CONTROLE')
◇ NB_ITER_GEOM = int (défaut: 2),
# Si: equal_to("FORMULATION", 'CONTINUE')
◇ ALGO_RESO_GEOM = / "NEWTON",
/ "POINT_FIXE" (par défaut),
◇ CONT_STAT_ELAS = int (défaut: 0),
# Si: equal_to("ALGO_RESO_GEOM", 'NEWTON')
◇ RESI_GEOM = float (défaut: 1e-06),
# Si: equal_to("ALGO_RESO_GEOM", 'POINT_FIXE')
◇ REAC_GEOM = / "AUTOMATIQUE" (par défaut),
/ "CONTROLE",
/ "SANS",
# Si: equal_to("REAC_GEOM", 'AUTOMATIQUE')
◇ ITER_GEOM_MAXI = int (défaut: 10),
◇ RESI_GEOM = float (défaut: 0.01),
# Si: equal_to("REAC_GEOM", 'CONTROLE')
◇ NB_ITER_GEOM = int (défaut: 2),
# Si: equal_to("FORMULATION", 'DISCRETE')
◇ ITER_CONT_MULT = int (défaut: 4),
# Si: equal_to("FORMULATION", 'CONTINUE')
◇ ALGO_RESO_CONT = / "NEWTON" (par défaut),
/ "POINT_FIXE",
◇ RESI_CONT = float (défaut: -1),
# Si: equal_to("ALGO_RESO_CONT", 'POINT_FIXE')
◇ ITER_CONT_TYPE = / "MAXI" (par défaut),
/ "MULT",
# Si: equal_to("ITER_CONT_TYPE", 'MULT')
◇ ITER_CONT_MULT = int (défaut: 4),
# Si: equal_to("ITER_CONT_TYPE", 'MAXI')
◇ ITER_CONT_MAXI = int (défaut: 30),
# Si: equal_to("FROTTEMENT", 'COULOMB') and equal_to("FORMULATION", 'CONTINUE')
◇ ALGO_RESO_FROT = / "NEWTON" (par défaut),
/ "POINT_FIXE",
# Si: equal_to("ALGO_RESO_FROT", 'POINT_FIXE')
◇ ITER_FROT_MAXI = int (défaut: 10),
◇ RESI_FROT = float (défaut: 0.0001),
# Si: equal_to("ALGO_RESO_FROT", 'NEWTON')
◇ RESI_FROT = float (défaut: 0.0001),
# Si: equal_to("FORMULATION", 'DISCRETE')
◇ STOP_SINGULIER = / "NON",
/ "OUI" (par défaut),
◇ NB_RESOL = int (défaut: 10),
◇ RESI_ABSO = float,
◇ ITER_GCP_MAXI = int (défaut: 0),
◇ RECH_LINEAIRE = / "ADMISSIBLE" (par défaut),
/ "NON_ADMISSIBLE",
◇ PRE_COND = / "DIRICHLET",
/ "SANS" (par défaut),
# Si: equal_to("PRE_COND", 'DIRICHLET')
◇ COEF_RESI = float (défaut: -1.0),
◇ ITER_PRE_MAXI = int (défaut: 0),
# Si: equal_to("FORMULATION", 'LIAISON_UNIL')
◆ ZONE = _F(
◆ / GROUP_MA = list[grma],
/ GROUP_NO = list[grno],
◆ NOM_CMP = list[text],
◆ COEF_IMPO = fonction / formule / nappe,
◆ COEF_MULT = list[fonction / formule / nappe],
◇ SANS_GROUP_NO = list[grno],
◇ ALGO_CONT = / "CONTRAINTE" (par défaut),
/ "PENALISATION",
# Si: equal_to("ALGO_CONT", 'PENALISATION')
◆ COEF_PENA = float,
),
# Si: equal_to("FORMULATION", 'DISCRETE') and equal_to("FROTTEMENT", 'COULOMB')
◆ ZONE = _F(
◇ APPARIEMENT = / "MAIT_ESCL" (par défaut),
/ "NODAL",
◇ GROUP_MA_MAIT = grma,
◇ GROUP_MA_ESCL = grma,
◇ NORMALE = / "ESCL",
/ "MAIT" (par défaut),
/ "MAIT_ESCL",
◇ VECT_MAIT = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_MAIT", 'FIXE')
◆ MAIT_FIXE = list[float],
# Si: equal_to("VECT_MAIT", 'VECT_Y')
◆ MAIT_VECT_Y = list[float],
◇ VECT_ESCL = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_ESCL", 'FIXE')
◆ ESCL_FIXE = list[float],
# Si: equal_to("VECT_ESCL", 'VECT_Y')
◆ ESCL_VECT_Y = list[float],
◇ TYPE_PROJECTION = / "FIXE",
/ "ORTHOGONALE" (par défaut),
# Si: equal_to("TYPE_PROJECTION", 'FIXE')
◇ DIRE_APPA = list[float],
◇ DIST_POUTRE = / "NON" (par défaut),
/ "OUI",
◇ DIST_COQUE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("DIST_POUTRE", 'OUI') or equal_to("DIST_COQUE", 'OUI')
◆ CARA_ELEM = cara_elem,
◇ DIST_MAIT = fonction / formule / nappe,
◇ DIST_ESCL = fonction / formule / nappe,
◇ DIST_APPA = float (défaut: -1.0),
◇ TOLE_PROJ_EXT = float (défaut: 0.5),
◇ SANS_GROUP_NO = list[grno],
◇ SANS_GROUP_MA = list[grma],
◇ RESOLUTION = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("RESOLUTION", 'NON')
◇ TOLE_INTERP = float (défaut: 0.0),
◇ ALGO_CONT = / "CONTRAINTE" (par défaut),
/ "GCP",
/ "PENALISATION",
# Si: equal_to("ALGO_CONT", 'CONTRAINTE')
◇ GLISSIERE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("GLISSIERE", 'OUI')
◇ ALARME_JEU = float (défaut: 0.0),
# Si: equal_to("ALGO_CONT", 'PENALISATION')
◆ E_N = float,
◆ COULOMB = float,
◇ COEF_MATR_FROT = float (défaut: 0.0),
◇ ALGO_FROT = "PENALISATION",
◆ E_T = float,
),
# Si: equal_to("FORMULATION", 'DISCRETE') and not equal_to("FROTTEMENT", 'COULOMB')
◆ ZONE = _F(
◇ APPARIEMENT = / "MAIT_ESCL" (par défaut),
/ "NODAL",
◇ GROUP_MA_MAIT = grma,
◇ GROUP_MA_ESCL = grma,
◇ NORMALE = / "ESCL",
/ "MAIT" (par défaut),
/ "MAIT_ESCL",
◇ VECT_MAIT = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_MAIT", 'FIXE')
◆ MAIT_FIXE = list[float],
# Si: equal_to("VECT_MAIT", 'VECT_Y')
◆ MAIT_VECT_Y = list[float],
◇ VECT_ESCL = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_ESCL", 'FIXE')
◆ ESCL_FIXE = list[float],
# Si: equal_to("VECT_ESCL", 'VECT_Y')
◆ ESCL_VECT_Y = list[float],
◇ TYPE_PROJECTION = / "FIXE",
/ "ORTHOGONALE" (par défaut),
# Si: equal_to("TYPE_PROJECTION", 'FIXE')
◇ DIRE_APPA = list[float],
◇ DIST_POUTRE = / "NON" (par défaut),
/ "OUI",
◇ DIST_COQUE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("DIST_POUTRE", 'OUI') or equal_to("DIST_COQUE", 'OUI')
◆ CARA_ELEM = cara_elem,
◇ DIST_MAIT = fonction / formule / nappe,
◇ DIST_ESCL = fonction / formule / nappe,
◇ DIST_APPA = float (défaut: -1.0),
◇ TOLE_PROJ_EXT = float (défaut: 0.5),
◇ SANS_GROUP_NO = list[grno],
◇ SANS_GROUP_MA = list[grma],
◇ RESOLUTION = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("RESOLUTION", 'NON')
◇ TOLE_INTERP = float (défaut: 0.0),
◇ ALGO_CONT = / "CONTRAINTE" (par défaut),
/ "GCP",
/ "PENALISATION",
# Si: equal_to("ALGO_CONT", 'CONTRAINTE')
◇ GLISSIERE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("GLISSIERE", 'OUI')
◇ ALARME_JEU = float (défaut: 0.0),
# Si: equal_to("ALGO_CONT", 'PENALISATION')
◆ E_N = float,
),
# Si: equal_to("FORMULATION", 'CONTINUE') and equal_to("FROTTEMENT", 'COULOMB')
◆ ZONE = _F(
◇ ALGO_CONT = / "LAC",
/ "PENALISATION",
/ "STANDARD" (par défaut),
◇ ALGO_FROT = / "PENALISATION",
/ "STANDARD" (par défaut),
# Si: equal_to("ALGO_FROT", 'STANDARD')
# Si: (equal_to("ALGO_CONT", 'PENALISATION') and equal_to("ALGO_FROT", 'STANDARD') )
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
◇ COEF_FROT = float (défaut: 100.0),
# Si: (equal_to("ADAPTATION", 'NON') or equal_to("ADAPTATION", 'CYCLAGE') or not exists("ADAPTATION"))
◆ COEF_PENA_CONT = float,
# Si: (equal_to("ADAPTATION", 'ADAPT_COEF') or equal_to("ADAPTATION", 'TOUT'))
◇ PENE_MAXI = float,
◇ COEF_PENA_CONT = float (défaut: 100.0),
# Si: (equal_to("ALGO_CONT", 'STANDARD') and equal_to("ALGO_FROT",'STANDARD' ) )
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
◇ COEF_CONT = float (défaut: 100.0),
◇ COEF_FROT = float (défaut: 100.0),
# Si: (equal_to("ALGO_CONT", 'PENALISATION') and equal_to("ALGO_FROT", 'PENALISATION'))
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
# Si: (equal_to("ADAPTATION", 'NON') or equal_to("ADAPTATION", 'CYCLAGE') or not exists("ADAPTATION"))
◆ COEF_PENA_CONT = float,
◆ COEF_PENA_FROT = float,
# Si: (equal_to("ADAPTATION", 'ADAPT_COEF') or equal_to("ADAPTATION", 'TOUT'))
◇ PENE_MAXI = float,
◇ COEF_PENA_CONT = float (défaut: 100.0),
◇ GLIS_MAXI = float,
◇ COEF_PENA_FROT = float (défaut: 10000000.0),
# Si: (equal_to("ALGO_CONT", 'STANDARD') and equal_to("ALGO_FROT", 'PENALISATION'))
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
◇ COEF_CONT = float (défaut: 100.0),
# Si: (equal_to("ADAPTATION", 'NON') or equal_to("ADAPTATION", 'CYCLAGE'))
◆ COEF_PENA_FROT = float,
# Si: (equal_to("ADAPTATION", 'ADAPT_COEF') or equal_to("ADAPTATION", 'TOUT'))
◇ GLIS_MAXI = float,
◇ COEF_PENA_FROT = float (défaut: 10000000.0),
# Si: equal_to("ALGO_CONT", 'STANDARD') or equal_to("ALGO_CONT", 'PENALISATION')
◇ APPARIEMENT = "MAIT_ESCL",
◇ GROUP_MA_MAIT = grma,
◇ GROUP_MA_ESCL = grma,
◇ NORMALE = / "ESCL",
/ "MAIT" (par défaut),
/ "MAIT_ESCL",
◇ VECT_MAIT = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_MAIT", 'FIXE')
◆ MAIT_FIXE = list[float],
# Si: equal_to("VECT_MAIT", 'VECT_Y')
◆ MAIT_VECT_Y = list[float],
◇ VECT_ESCL = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_ESCL", 'FIXE')
◆ ESCL_FIXE = list[float],
# Si: equal_to("VECT_ESCL", 'VECT_Y')
◆ ESCL_VECT_Y = list[float],
◇ TYPE_PROJECTION = / "FIXE",
/ "ORTHOGONALE" (par défaut),
# Si: equal_to("TYPE_PROJECTION", 'FIXE')
◇ DIRE_APPA = list[float],
◇ DIST_APPA = float (défaut: -1.0),
◇ TOLE_PROJ_EXT = float (défaut: 0.5),
◇ DIST_POUTRE = / "NON" (par défaut),
/ "OUI",
◇ DIST_COQUE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("DIST_POUTRE", 'OUI') or equal_to("DIST_COQUE", 'OUI')
◆ CARA_ELEM = cara_elem,
◇ DIST_MAIT = fonction / formule / nappe,
◇ DIST_ESCL = fonction / formule / nappe,
◇ SANS_GROUP_NO = list[grno],
◇ SANS_GROUP_MA = list[grma],
◇ INTEGRATION = / "AUTO" (par défaut),
/ "GAUSS",
/ "NCOTES",
/ "SIMPSON",
# Si: equal_to("INTEGRATION", 'GAUSS')
◇ ORDRE_INT = int (défaut: 3),
# Si: equal_to("INTEGRATION", 'SIMPSON')
◇ ORDRE_INT = int (défaut: 1),
# Si: equal_to("INTEGRATION", 'NCOTES')
◇ ORDRE_INT = int (défaut: 3),
◇ RESOLUTION = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("RESOLUTION", 'NON')
◇ TOLE_INTERP = float (défaut: 0.0),
◇ CONTACT_INIT = / "INTERPENETRE" (par défaut),
/ "NON",
/ "OUI",
# Si: equal_to("CONTACT_INIT", 'INTERPENETRE')
◇ DIST_MAXI = float,
◇ GLISSIERE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("ALGO_CONT", 'LAC')
◇ APPARIEMENT = "MORTAR",
◇ TYPE_APPA = / "RAPIDE" (par défaut),
/ "ROBUSTE",
◇ RESI_APPA = float (défaut: 1e-08),
◇ TYPE_JACOBIEN = / "ACTUALISE",
/ "INITIAL" (par défaut),
◇ INTEGRATION = "AUTO",
◆ GROUP_MA_MAIT = grma,
◆ GROUP_MA_ESCL = grma,
◇ CONTACT_INIT = / "INTERPENETRE" (par défaut),
/ "NON",
/ "OUI",
# Si: equal_to("CONTACT_INIT", 'INTERPENETRE')
◇ DIST_MAXI = float,
◆ COULOMB = float,
◇ GRAND_GLIS = / "NON" (par défaut),
/ "OUI",
◇ SEUIL_INIT = float,
◇ SANS_GROUP_NO_FR = list[grno],
# Si: exists("SANS_GROUP_NO_FR")
◇ DIRE_EXCL_FROT = list[float],
),
# Si: equal_to("FORMULATION", 'CONTINUE') and not equal_to("FROTTEMENT", 'COULOMB')
◆ ZONE = _F(
◇ ALGO_CONT = / "LAC",
/ "PENALISATION",
/ "STANDARD" (par défaut),
# Si: equal_to("ALGO_CONT", 'STANDARD')
◇ COEF_CONT = float (défaut: 100.0),
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
# Si: equal_to("ALGO_CONT", 'PENALISATION')
◇ ADAPTATION = / "ADAPT_COEF",
/ "CYCLAGE" (par défaut),
/ "NON",
/ "TOUT",
# Si: (equal_to("ADAPTATION", 'ADAPT_COEF')) or (equal_to("ADAPTATION", 'TOUT'))
◇ PENE_MAXI = float,
◇ COEF_PENA_CONT = float (défaut: 100.0),
# Si: (equal_to("ADAPTATION", 'CYCLAGE')) or (equal_to("ADAPTATION", 'NON')) or (not exists("ADAPTATION"))
◆ COEF_PENA_CONT = float,
# Si: equal_to("ALGO_CONT", 'STANDARD') or equal_to("ALGO_CONT", 'PENALISATION')
◇ APPARIEMENT = "MAIT_ESCL",
◇ GROUP_MA_MAIT = grma,
◇ GROUP_MA_ESCL = grma,
◇ NORMALE = / "ESCL",
/ "MAIT" (par défaut),
/ "MAIT_ESCL",
◇ VECT_MAIT = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_MAIT", 'FIXE')
◆ MAIT_FIXE = list[float],
# Si: equal_to("VECT_MAIT", 'VECT_Y')
◆ MAIT_VECT_Y = list[float],
◇ VECT_ESCL = / "AUTO" (par défaut),
/ "FIXE",
/ "VECT_Y",
# Si: equal_to("VECT_ESCL", 'FIXE')
◆ ESCL_FIXE = list[float],
# Si: equal_to("VECT_ESCL", 'VECT_Y')
◆ ESCL_VECT_Y = list[float],
◇ TYPE_PROJECTION = / "FIXE",
/ "ORTHOGONALE" (par défaut),
# Si: equal_to("TYPE_PROJECTION", 'FIXE')
◇ DIRE_APPA = list[float],
◇ DIST_APPA = float (défaut: -1.0),
◇ TOLE_PROJ_EXT = float (défaut: 0.5),
◇ DIST_POUTRE = / "NON" (par défaut),
/ "OUI",
◇ DIST_COQUE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("DIST_POUTRE", 'OUI') or equal_to("DIST_COQUE", 'OUI')
◆ CARA_ELEM = cara_elem,
◇ DIST_MAIT = fonction / formule / nappe,
◇ DIST_ESCL = fonction / formule / nappe,
◇ SANS_GROUP_NO = list[grno],
◇ SANS_GROUP_MA = list[grma],
◇ INTEGRATION = / "AUTO" (par défaut),
/ "GAUSS",
/ "NCOTES",
/ "SIMPSON",
# Si: equal_to("INTEGRATION", 'GAUSS')
◇ ORDRE_INT = int (défaut: 3),
# Si: equal_to("INTEGRATION", 'SIMPSON')
◇ ORDRE_INT = int (défaut: 1),
# Si: equal_to("INTEGRATION", 'NCOTES')
◇ ORDRE_INT = int (défaut: 3),
◇ RESOLUTION = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("RESOLUTION", 'NON')
◇ TOLE_INTERP = float (défaut: 0.0),
◇ CONTACT_INIT = / "INTERPENETRE" (par défaut),
/ "NON",
/ "OUI",
# Si: equal_to("CONTACT_INIT", 'INTERPENETRE')
◇ DIST_MAXI = float,
◇ GLISSIERE = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("ALGO_CONT", 'LAC')
◇ APPARIEMENT = "MORTAR",
◇ TYPE_APPA = / "RAPIDE" (par défaut),
/ "ROBUSTE",
◇ RESI_APPA = float (défaut: 1e-08),
◇ TYPE_JACOBIEN = / "ACTUALISE",
/ "INITIAL" (par défaut),
◇ INTEGRATION = "AUTO",
◆ GROUP_MA_MAIT = grma,
◆ GROUP_MA_ESCL = grma,
◇ CONTACT_INIT = / "INTERPENETRE" (par défaut),
/ "NON",
/ "OUI",
),
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles