1. Objectif de l’exercice#
On propose de créer une nouvelle option qui permet le calcul de la contrainte moyenne par maille.
Voici le cas d’utilisation visé :
RESU = CALC_CHAMP(reuse=RESU, RESULTAT=RESU, NUME_ORDRE=1, CONTRAINTE=("SIGM_ELEM"))
IMPR_RESU(RESU=_F(RESULTAT=RESU, NOM_CHAM=("SIGM_ELEM")), UNITE=8, FORMAT="RESULTAT")
On utilise une copie du cas test sslv04a, correspondant à tpdev02a pour cet exercice.
Un cas-test doit être :
de petite taille (quelques secondes de temps CPU, maillage avec le minimum de mailles) ;
facile à comprendre (peu de lignes) et doit couvrir une seule fonctionnalité (test élémentaire), toutes les configurations et tous les mots-clés ;
exemplaire : ne doit pas déclencher d’alarmes (par défaut, une alarme dans un cas-test produit une erreur) ;
documenté : dans le manual de validation.
Ce test est une section de 45 degrés d’un tuyau sous pression interne, pour lequel il existe une référence analytique, voir [V3.04.004].
Voici le fichier de commande à compléter:
DEBUT(DEBUG=_F(SDVERI="OUI"))
M = LIRE_MAILLAGE(FORMAT="MED")
DEFI_GROUP(reuse=M, MAILLAGE=M, CREA_GROUP_NO=_F(NOM="DIRI", GROUP_MA="DIRI"))
MO = AFFE_MODELE(MAILLAGE=M, AFFE=_F(TOUT="OUI", PHENOMENE="MECANIQUE", MODELISATION="3D"))
MA = DEFI_MATERIAU(ELAS=_F(E=200000.0, NU=0.3, ALPHA=0.0))
CM = AFFE_MATERIAU(MAILLAGE=M, AFFE=_F(TOUT="OUI", MATER=MA))
CH = AFFE_CHAR_MECA(
MODELE=MO,
DDL_IMPO=(_F(GROUP_NO="DIRI", DY=0.0), _F(GROUP_NO="F", DZ=0.0)),
FACE_IMPO=_F(GROUP_MA="DNOR", DNOR=0.0),
PRES_REP=_F(GROUP_MA="PRES", PRES=60.0),
)
RESU = MECA_STATIQUE(MODELE=MO, CHAM_MATER=CM, EXCIT=_F(CHARGE=CH))
CALC_CHAMP(reuse=RESU, RESULTAT=RESU,
# ...
)
TEST_RESU(
RESU=(
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIXX",
# ...
),
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIYY",
# ...
),
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIZZ",
# ...
),
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIXY",
# ...
),
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIXZ",
# ...
),
_F(
NUME_ORDRE=1,
RESULTAT=RESU,
NOM_CHAM="SIGM_ELEM",
NOM_CMP="SIYZ",
# ...
),
)
)
IMPR_RESU(FORMAT="MED", RESU=_F(MAILLAGE=M, RESULTAT=RESU))
FIN()