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ù :
RextetEpsont respectivement le rayon extérieur et l’épaisseur du tuyau, renseignés dans la commandeAFFE_CARA_ELEM.NsectetNcousont respectivement le nombre de secteur et de couche, renseignés dans la commandeAFFE_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.