Assistance #363
empêcher la variation épaisseur d'un élément membrane
Description
Gérard,
est-ce qu'il y a un moyen dans Herezh d'imposer une variation nulle d'épaisseur à un élément membrane ?
On peut par exemple empêcher la variation de section d'un élément barre (variation_section). Existe-t-il un équivalent pour les éléments 2D ?
donc en gros, ça aboutirait à un comportement contrainte plane (sig33=0) mais également eps33 = 0. Etrange comme comportement, mais c'est pour tester quelque chose en identification de loi de comportement.
C'est le genre de chose qu'on peut faire par exemple dans Abaqus (on peut imposer un coef de Poisson nul dans l'épaisseur => loi contrainte plane mais néanmoins eps33=0)
mes pistes pour imposer une déformation nulle dans l'épaisseur sans passer par une loi déformation plane sont :
1) essayer une loi "HYPO_ORTHO3D + loi contrainte plane" en jouant sur les coefs pour essayer d'empêcher la variation d'épaisseur
2) idem mais avec une projection anisotrope PROJECTION_ANISOTROPE_3D
Fichiers
Mis à jour par Julien Troufflard il y a 10 mois
- Fichier test_non_variation_epaisseur.tar test_non_variation_epaisseur.tar ajouté
pour info, je n'ai pas testé la méthode avec PROJECTION_ANISOTROPE_3D, car un travail R&T d'un certain Julien T. avait montré que les coef dans la direction de l'épaisseur (A3, B13, B23) n'ont aucune influence en contrainte plane.
Avec la méthode "HYPO_ORTHO3D + loi contrainte plane", j'ai un début de quelque chose.
j'ai mis en pièce jointe mon cas test (un cube en traction ou compression). Le but est d'avoir une loi élastique isotrope dans le plan de la membrane et une non-variation d'épaisseur.
dans l'exemple, c'est une loi sensée avoir un module d'Young de 100 MPa et un coef Poisson de 0.4 dans le plan de la membrane.
pour avoir une non variation d'épaisseur, j'ai mis nu13=nu23=0. A priori (par le test), le module E3 n'a pas d'influence, de même pour G13 et G23 => j'ai mis E3=G13=G23=1.
le fichier gnu permet de tracer :
axe x : la def log de traction/compression (composante 11)
axe y : le coef de Poisson (def log 22 divisé par def log 11) => doit se situer autour de 0.4
axe y2 : la variation relative d'épaisseur en % (épaisseur initiale = 0.038)
résultat :
1) OK en traction : j'obtiens bien une non-variation d'épaisseur. J'ai une très légère augmentation d'épaisseur de l'ordre 0.07% pour une déf log de 1 (allongement 170%).
2) PROBLEME en compression : j'obtiens une forte augmentation d'épaisseur => jusqu'à une augmentation de 35% de l'épaisseur pour une déf log de -1 (63% d'écrasement du cube)
Je reste donc preneur de tout autre manière plus directe ou indirecte d'avoir une non-variation d'épaisseur.
Mis à jour par Julien Troufflard il y a 10 mois
- Fichier test_non_variation_epaisseur.tar test_non_variation_epaisseur.tar ajouté
erreur dans ma pièce jointe précédente :
ci-joint nouvelle version, le fichier gnu ne fonctionnera pas en l'absence des fonctions elongation_al(eps_almansi) et eps_log(eps_almansi)
Mis à jour par Julien Troufflard il y a 10 mois
et bien curieusement, si on refait le même calcul avec une loi 3D sur un cube, tout se passe comme prévu.
=> en mettant nu13=nu23=0, on a bien sig33 = eps33 = 0
Dans l'exemple pièce jointe, c'est tout simplement le même calcul que précédemment mais en version 3D complète sur un hexaedre.
Le fichier gnu_3D trace le coef de poisson dans la direction Y (axe y) et celui dans la direction Z (axe y2) => on a bien 0.4 selon Y et 0 selon Z, que ce soit en traction ou en compression.
Géométriquement, la seule chose qui change entre ce cas 3D et le cas précédent 3D contrainte plane, c'est que le cube a une longueur de 1 selon Z, et non 0.038.
Mis à jour par Julien Troufflard il y a 10 mois
un point important concernant le test membrane "HYPO_ORTHO3D + loi contrainte plane" :
si on rajoute la sortie DEF_EPAISSEUR dans le .CVisu, on constate que la déformation d'épaisseur est bien nulle pour nu13=nu23=0. Et si on met autre chose, par exemple nu13=nu23=0.1, on obtient bien une déformation d'épaisseur non nulle.
donc on dirait que la loi est correctement calculée. C'est le calcul de l'épaisseur qui n'est pas bon.
Mis à jour par Julien Troufflard il y a 10 mois
et pour finir, toujours sur le test membrane 3D CP :
le calcul de l'épaisseur est en général inexact en compression avec la combinaison HYPO_ORTHO3D + LOI_CONTRAINTES_PLANES.
Si on teste avec loi complètement isotrope :
E1= 100 E2= 100 E3= 100 \
nu12= 0.4 nu13= 0.4 nu23= 0.4 \
G12= 35.714286 G13= 35.714286 G23= 35.714286
Donc, par définition d'une loi hypoélastique isotrope, si on impose une déformation log 11 égale à 1 en traction (ou -1 en compression), on devrait avoir :
def log 22 = def epaisseur log = -NU*def log 11 = -0.4
dans l'exemple fourni et avec les coefs ci-dessus, on obtient en fin de calcul :
en compression :
EPS11 = -3.194536910646e+00 => correspond bien à une déf log quasi égale à -1
EPS22 = 2.755187548278e-01 => correspond bien à une déf log de +0.4
DEF_EPAISSEUR = 2.756736769801e-01 => ok car idem EPS22
cette déformation épaisseur devrait correspondre à une déformation finale égale à :
0.038*exp(0.4) = 0.056732
mais à la place, on obtient : EPAISSEUR_FINALE = 6.473713723140e-02
soit un écart de 14%
=> donc en conclusion, l'état de déformation est correct mais l'épaisseur erronnée
en traction, même raisonnnement, on obtient un résultat similaire avec un état de déformation correct. Par contre, l'épaisseur obtenue est bien plus proche du résultat attendu.
Pour une déformation log de traction égale à 1, on obtient une déformation d'épaisseur log de -0.4, ce qui donne théoriquement l'épaisseur finale : 0.038*exp(-0.4) = 0.025472
Herezh obtient réellement : EPAISSEUR_FINALE = 2.549944683516e-02
soit un écart tout à fait acceptable de 0.1%
pourquoi obtient-on une épaisseur erronée et une telle différence traction/compression ?
Mis à jour par Julien Troufflard il y a 10 mois
argh, désolé pour les multiples messages, mais je constate encore un truc intéressant.
si on prend la loi MAT_ISO, c'est-à-dire une loi hypoélastique classique encapsulée dans une contrainte plane :
HYPO_ELAS3D
#conversion : E=100 NU=0.4
Kc= 500. mu= 71.428572 type_derivee -1
fin_loi_HYPO_ELAS3D
cette fois, on obtient le résultat attendu en compression :
1) le bon état de déformation (idem HYPO_ORTHO3D isotrope selon 1,2,3)
2) la bonne épaisseur en compression : EPAISSEUR_FINALE = 5.662135306126e-02 (écart -0.07% avec théorique)
3) résultats également corrects en traction
=> le problème vient donc spécifiquement de HYPO_ORTHO3D
Mis à jour par Gérard Rio il y a 10 mois
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 10
Oui, je pense qu'il manquait un 1/3 sur le calcul de la compressibilité dans la loi hypo_ortho:
mais le coef est approximatif: cf. théorie, en fait je fais la moyenne dans les 3 directions. Du coup j'ai l'impression qu'il y aura toujours une variation d'épaisseur en CP même si les paramètres selon l'épaisseur sont nuls.
Il faut peut-être revoir ce point... si on veut pouvoir gérer spécifiquement l'épaisseur avec une loi anisotrope ...en CP
à suivre ...
Mis à jour par Julien Troufflard il y a 10 mois
ok. C'est le dernier point majeur pour arriver à mon but (une non-variation d'épaisseur avec une loi hypoélastique symétrique traction-compression)
et voir aussi si ça fonctionne comme prévu en relaxation dynamique (je suis en train de regarder pour la loi HYPO_ELAS2D_C).
Mis à jour par Gérard Rio il y a 10 mois
j'ai une question:
pourquoi le cas def plane ne répond pas à la question ?
. Par exemple si on choisit une isoelas 2D_D, on n'a pas de variation d'épaisseur et les contraintes sont uniquement surfaciques.
. On pourrait avoir exactement le même type de loi en hypo isoela 2D_D
Si on utilise une loi combinée def plane + loi 3D, la contrainte sig33 issue de la loi 3D, ne sert pas pour l'équilibre ... par contre la loi 3D utilise le fait de n'avoir pas de variation suivant l'axe 3 ... est-ce là ton problème ?
Mis à jour par Julien Troufflard il y a 10 mois
et bien je suis resté sur l'impression du travail 2022 avec une loi LOI_DEFORMATIONS_PLANES avec ISOHYPERBULK + Favier + autre (hysteresis, maheo, ...)
Le résultat était une loi extrêmement raide sur un quadrangle en chargement biaxial. En l'absence de déformation d'épaisseur et avec une déf EPS11 et EPS22 imposée => variation de volume énorme => comportement sphérique majoritaire => grosse contrainte (dans le plan).
Je n'ai jamais testé ISOELAS2D_D. Pour mon cas actuel, c'est bien un HYPO_ELAS2D_D qu'il faudrait.
Je n'ai pas de préférence entre les deux solutions qui ont l'air sur la table :
1) introduire une nouvelle loi : HYPO_ELAS2D_D
2) modifier HYPO_ORTHO3D
en gros, les deux répondent à mon problème actuel.
Pour d'autres utilisations, l'une (HYPO_ELAS2D_D) sera plus rapide à calculer mais ne donne pas le choix sur la variation d'épaisseur. L'autre permettrait de faire le choix que l'on veut sur la variation d'épaisseur mais évidemment la loi est plus lourde avec son repère à gérer.
on peut aussi imaginer une fonctionnalité optionnelle sur HYPO_ELAS2D_C => choisir un coefficient de Poisson pour calculer l'épaisseur en fonction des déformations du plan (formule classique ISOELAS2D_C mais en déformation log). Je ne me rends pas compte de ce que cela impliquerait dans Herezh pour traiter un tel cas spécial de variation d'épaisseur.
J'ai envie de dire : aller au plus simple en terme de développement.
Mis à jour par Julien Troufflard il y a 10 mois
Si on utilise une loi combinée def plane + loi 3D, la contrainte sig33 issue de la loi 3D, ne sert pas pour l'équilibre ... par contre la loi 3D utilise le fait de n'avoir pas de variation suivant l'axe 3 ... est-ce là ton problème ?
je n'ai pas exactement répondu à cette question. En fait, je ne sais pas trop ce qu'implique une sig33 non nulle dans l'équilibre. Avec une loi contrainte plane, on s'assure qu'il n'y en a pas. Il s'agit juste ensuite de ne pas faire varier l'épaisseur. Et comme dit précédemment, je pensais qu'une loi déf plane allait générer des grosses contraintes dues au sphérique.
Mais je n'ai peut-être pas bien saisi le problème. Ce que tu me dis, c'est qu'une loi HYPO_ELAS3D + LOI_DEFORMATIONS_PLANES correspondrait à ce que je cherche ?
(je vais tester pour voir en attendant ta réponse)
Mis à jour par Julien Troufflard il y a 10 mois
bon après test de HYPO_ELAS3D + def plane, j'ai bien une augmentation de raideur naturellement introduite par la condition def plane. Sur un cas test traction équi-biaxial (loi E=170 NU=0.4), l'augmentation de contrainte est d'un facteur 1.4. C'est pas énorme, mais ce n'est pas ce que je cherche.
avec ISOELAS2D_D, j'ai un peu pareil (contrainte def plane = 1.333 * contrainte contrainte plane).
donc l'impact de l'hypothèse déformation est bien là, quelque soit la manière de l'imposer.
Mis à jour par Gérard Rio il y a 10 mois
ok,
je crois que j'ai une solution simple à ton pb, je te propose de l'implanter mais en te montrant sur le code ce que je fais
Mis à jour par Julien Troufflard il y a 10 mois
comme tu veux. Comment tu veux procéder ? montrer le code ici dans ce ticket ?
Mis à jour par Julien Troufflard il y a 10 mois
Gérard,
comme dit à l'oral, on va déjà voir avec la loi hypo actuelle avant d'aller plus loin dans les développements.
Je suis tenté de te dire de fermer le ticket, à mon avis on n'ira pas plus loin.
Il y aurait juste une version 7.022 pour linux à produire pour que Frank puisse l'utiliser.
merci pour les modifs.
Mis à jour par Gérard Rio il y a 10 mois
- Statut changé de En cours à Résolu
- % réalisé changé de 10 à 100