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()