v1.01.296 ZZZZ296 – Validation de la position des sous-points des tuyaux#

Résumé:

Ce test valide le calcul de la position des sous-points d’intégration dans le repère global pour une modélisation TUYAU_3M. Toutes les coordonnées des sous-points sont testées.

Solution de référence#

Méthode de calcul#

Les éléments supports des tuyaux sont des SEG3.

  • La position des points d’intégration le long du SEG3 est donnée dans [R3.01.01] “Fonctions de forme et points d’intégration des éléments finis”.

# Coordonnées des Points de Gauss sur l'axe X
long_poutre = 3.0
xpg = (1.0 / 3.0) ** 0.5
points_gauss = (long_poutre * (1.0 + xpg) * 0.5, long_poutre * (1.0 - xpg) * 0.5)
  • Les coordonnées des sous-points d’intégration sont fonctions du nombre de couches, du nombre de secteurs et bien sûr du diamètre et de l’épaisseur du tuyau.

# Coordonnées des Sous-Points !!!
def coord_fibre(ifib):
    Rint = Rext - Ep
    # index des coordonnées
    numAng = ((ifib - 1) % (2 * Nsect + 1)) / (2.0 * Nsect)
    numCou = ((ifib - 1) // (2 * Nsect + 1)) / (2.0 * Ncou)
    y = (Rint + Ep * numCou) * np.cos(2.0 * np.pi * numAng)
    z = -(Rint + Ep * numCou) * np.sin(2.0 * np.pi * numAng)
    if abs(y) < 1.0e-08:
        y = 0.0
    if abs(z) < 1.0e-08:
        z = 0.0
    return y, z

où :

  • Rext et Ep sont respectivement le rayon extérieur et l’épaisseur du tuyau, renseignés dans la commande AFFE_CARA_ELEM.

  • Nsect et Ncou sont respectivement le nombre de secteur et de couche, renseignés dans la commande AFFE_CARA_ELEM.

CARA = AFFE_CARA_ELEM(
    MODELE=MODELE,
    INFO=1,
    POUTRE=_F(
        GROUP_MA=("POUTRE", "POUTRE0"),
        SECTION="CERCLE",
        CARA=("R", "EP"),
        VALE=(Rext, Ep),
        TUYAU_NSEC=Nsect,
        TUYAU_NCOU=Ncou,
    ),
)
  • La matrice de passage du tuyau \(P0P1\) au tuyau \(P0P2\) permet de calculer les coordonnées des sous-points du tuyau \(P0P2\) à partir des formules précédentes.

# Matrice de passage Axe_X vers Trisectrice

un3 = 1.0 / pow(3.0, 0.5)
un2 = 1.0 / pow(2.0, 0.5)
un6 = 1.0 / pow(6.0, 0.5)
MatPass = np.array([[un3, -un2, -un6], [un3, un2, -un6], [un3, 0.0, 2.0 * un6]])

Pour le tuyau \(P0P1\) les coordonnées \((x,y,z)\) de la fibre ifib pour le point ipt sont données par :

xx = points_gauss[ipt]
yy, zz = coord_fibre(ifib)

Pour le tuyau \(P0P2\) les coordonnées \(({x}_{t},{y}_{t},{z}_{t})\) de la fibre ifib pour le point ipt sont données par :

# Suivant la Trisectrice
xx = points_gauss[ipt]
yy, zz = coord_fibre(ifib)
xxt,yyt,zzt = np.dot( MatPass, np.array( [xx,yy,zz ] ) )

Grandeurs et résultats de référence#

Les coordonnées de tous les sous-points sont testés.

Pour obtenir les coordonnées une table est générée à partir d’un champ de contrainte construit aux sous-points.

CSIEF = CREA_CHAMP(
    TYPE_CHAM='ELGA_SIEF_R',
    OPERATION="AFFE",
    MODELE= MODELE,
    AFFE_SP=_F(CARA_ELEM = CARA, ),
    PROL_ZERO='OUI' ,
    AFFE=_F(TOUT="OUI",
    NOM_CMP=('SIXX' , ),
    VALE= ( 0.0, ) , ),
)

RESU = CREA_RESU(
    TYPE_RESU = "EVOL_NOLI",
    OPERATION = "AFFE",
    NOM_CHAM='SIEF_ELGA',
    AFFE= _F(
        CHAM_GD = CSIEF,
        MODELE = MODELE,
        CARA_ELEM = CARA,
        INST = 0.0,
    ),
)

Les coordonnées sont ensuite testées à l’aide de TEST_TABLE.

Par exemple pour la coordonnée \(X\) du tuyau \(P0P1\) :

TEST_TABLE(
    REFERENCE='ANALYTIQUE',
    VALE_CALC=xx,
    VALE_REFE=xx,
    NOM_PARA='COOR_X',
    TABLE= TBEPS0,
    FILTRE=(
        _F(NOM_PARA='POINT' , VALE_I= ipt , ) ,
        _F(NOM_PARA='SOUS_POINT' , VALE_I= ifib , ),
    ),
)

Incertitudes sur la solution#

Aucune, solution exacte.

Modélisation A#

Caractéristiques du maillage#

Le maillage des tuyaux est composé d’une maille type SEG3.

Caractéristiques de la modélisation#

Définition du modèle:

MODELE = AFFE_MODELE(
    MAILLAGE=MAPOU, AFFE=_F(TOUT="OUI", PHENOMENE="MECANIQUE", MODELISATION="TUYAU_3M")
)

Affectation des caractéristiques:

  • Rayon et épaisseur du tuyau

  • Nombre de secteur et nombre de couche

CARA = AFFE_CARA_ELEM(
MODELE=MODELE,
INFO=1,
POUTRE=_F(
    GROUP_MA=("POUTRE", "POUTRE0"),
    SECTION="CERCLE",
    CARA=("R", "EP"),
    VALE=(Rext, Ep),
    TUYAU_NSEC=Nsect,
    TUYAU_NCOU=Ncou,
    ),
)

Valeurs testées et résultats#

Toutes les coordonnées des sous-points pour les 2 tuyaux sont testées.

Synthèse des résultats#

Ce test a pour but de vérifier que les positions des sous-points d’intégration de la modélisation TUYAU_3M sont bien calculées.