Welcome to the forums. Please post in English or French.

You are not logged in.

#1 Re: Code_Aster usage » Formule en fonction d'un noeud spécifique » 2022-02-01 18:22:16

J'ai tenté une solution en faisant plusieurs pas de calcul :
Je note la hauteur du réservoir à la fin d'un pas et je l'utilise comme entrée recalculer la nouvelle (ainsi que la hauteur) que j'enchaine à la première, par l'intermédiaire de fonctions (voir fichier comm ci-joint).

Malheureusement, la solution ne "converge" pas vers une solution stable en"oscillant" d'une position à l’autre :
fin pas 1 : le premier résultat avec une forte pression aplati le réservoir
fin pas 2 : le second avec une faible pression le rehausse
fin pas 3 : le troisième avec une hauteur plus haute et donc une pression plus grande conduit à aplatir le réservoir
etc.

--> Il faudrait vraiment pour actualiser la formule à chaque instant pas de temps.

#2 Code_Aster usage » Formule en fonction d'un noeud spécifique » 2022-02-01 14:50:34

Romuald
Replies: 1

Bonjour,

Je suis entrain de réaliser une simulation d'un réservoir souple soumis à une pression interne très faible.

Comment peut-on utiliser la coordonnée d'un nœud spécifique dans une formule ? L'idée serait de pouvoir implanter une fonction du type : PRESSION(Z) = DENSITE*G*(Z2 - Z)
DENSITE, G étant des constantes
Z le paramètre
Z2 la position du nœud le plus haut, le numéro 2 par exemple (c'est ce que je n'arrive pas à faire)


Voici ce que j'ai réalisé et trouvé :

Cela ressemble à l'exemple de la formation U1.05.00, sauf que le réservoir est déformable. On ne peut donc pas faire l'hypothèse d'une fonction constante définie à l'avance.

Je l'ai tout de même reproduit pour avoir une base (voir pièces jointes) en faisant un calcul non linéaire. Je pars d'un cylindre que je laisse s'équilibrer en fonction du gradient de pression. Le résultat est encourageant mais toujours faux. Il faut encore réactualiser la pression au cours du calcul non linéaire en fonction de la position du noeud le plus haut (toujours le même).

J'ai trouvé un post précédent (notamment le post #4) mais je n'ai pas l'impression qu'il permette de réactualiser la formule au cours du calcul. Je n'arrive pas à mettre de liens alors voici son intitulé dans le forum :
"[RESOLU] Câbles - Chargement dépendant de l'attitude"


Belle journée,
Romuald

#3 Re: Code_Aster usage » Gonfler une membrane » 2021-10-07 09:57:51

Merci de vos recherches.

J'ai réussi à faire converger le calcul presque jusqu'à la fin (2.98/3), ce qui est déjà pas mal.

La réalité du produit que j'étudie est qu'il est orthotrope. Là, j'arrive à une limitation du modèle MEMBRANE qui ne peut pas le faire (si j'en crois les messages d'erreurs). La chose intéressante est que si repasse a un modèle 3D (ce modèle extrudé sur 1mm), avec les mêmes paramètres... cela fonctionne bien avec le matériau ELAS_ORTH, malgré les éléments très plats.

L'ennui est que je ne dispose pas de moyens d'essais suffisant pour caractériser les différentes constantes de ce matériau (je n'ai qu'une machine d'essai de traction/compression à ma disposition). J'ai initié cet été une coopération avec une école d'ingénieur pour travailler sur le sujet mais cela prend du temps à démarrer.

Je pense cependant que l'approximation isotrope pour une faible pression (comme le cas de ce calcul) est suffisante pour avoir effectuer une corrélation avec l'essai. Je ne sais pas si cela intéresserai des gens que je partage la synthèse et le fichier comm final mais je le ferai quand j'aurai pu le réaliser...

#4 Re: Code_Aster usage » STAT_NON_LIN : écrire résultats même si dernier pas non convergé? » 2021-10-07 09:37:49

Ce n'est pas exactement ce que j'avais en tête. Mais merci, le STOP_SINGULIER est intéressant dans certain oui.

Lorsqu'un calcul échoue durant la convergence, il peut s'arrêter à un pas de calcul non connu à l'avance.
Pour comprendre qui se passe, on peut vouloir étudier les résultats jusqu'au dernier convergé. Il faut donc relancer le calcul en le stoppant "manuellement" via le "end step time". Cela nécessite donc de relancer le calcul.
J'utilisais un autre code de calcul par le passé qui permettait de toujours écrire les résultats même si le calcul plantait. Je me demandais donc si une option similaire existait.

#5 Re: Code_Aster usage » Gonfler une membrane » 2021-10-04 11:52:11

J'ai essayé d'appliquer une tension en appliquant une force x & y dans le plan xy avant d'appliquer la pression (voir fichier comm ci-joint).
Cela fonctionne presque... mais le calcul plante pendant que je retire cette force (qui empêche d'avoir une déformée réaliste), presque à la fin (2.8/3). On y est presque!

#6 Code_Aster usage » STAT_NON_LIN : écrire résultats même si dernier pas non convergé? » 2021-10-04 11:26:27

Romuald
Replies: 4

Bonjour,

Un des problèmes récurrents de la non convergence est de comprendre pourquoi un calcul ne converge pas à un pas de temps donnée (P). Je relance alors le calcul jusqu'au pas précédemment convergé (P-1) pour comprendre ce qui se passe. C'est très utile mais assez long.
J'ai essayé, sans succès évidemment, de trouver une option permettant d'écrire les résultats convergés même si le calcul échoue.
Est-ce possible? Si oui, comment?

Merci par avance,

#7 Re: Code_Aster usage » Gonfler une membrane » 2021-10-04 09:47:38

Bonjour et merci de vos réponses.

- j'ai tenté de mettre de la prétension (N_INIT dans AFFE_CARA_ELEM) : 1.0e-3, 1.0e-6, 1, 1000, 1e+6 sans succès. Existe-t-il une autre façon de le faire?

- Je ne peux pas encastrer les bords même si cela fonctionne : ce n'est plus la simulation que je dois réaliser.
J'ai joint l'exemple d'un prototype rectangle que j'ai réalisé (à gauche : la poche à plat, à droite : la poche gonflée).

- la densité est juste un résidu d'un des nombreux tests réalisés. Oui, les unités ne sont pas consistantes mais je n'utilise pas de cas gravitaire.

#8 Re: Code_Aster usage » Gonfler une membrane » 2021-10-01 15:12:11

Et voilà le fichier med.

La membrane est à l'état initial plate.

#9 Re: Code_Aster usage » Gonfler une membrane » 2021-10-01 14:34:24

Je suis pas expert de code_aster, alors je ne sais pas si c'est la même méthode :
je vais dans le module mesh, puis file > import > unv file
ensuite, dans le module asterstudy : add stage from file

je suis preneur s'il y a une meilleur, ou plus facile, méthode.

#10 Re: Code_Aster usage » Gonfler une membrane » 2021-10-01 10:07:04

J'ai oublié de préciser qu'il y a le cas de validation SSNS115 qui est très proche.
J'ai essayé les paramètres que j'y ai trouvé sans succès.

#11 Re: Code_Aster usage » Mesh formulation for hyperelastic case » 2021-09-30 09:46:51

Merci, c'était très instructif.

Petit hors sujet pour AsterO'dactyle :
Je serai intéressé de discuter ou rencontrer ces chercheurs de Lille (je travaille aussi dans cette agglomération). Je pense qu'il y a de fortes similitudes entre la bio-mécanique et le caoutchouc et les échanges pourraient être enrichissants pour les 2 partis.

#12 Re: Code_Aster usage » Gonfler une membrane » 2021-09-30 09:43:30

Et voici le maillage assez simple (960 éléments quad linéaire) qui va avec.

#13 Code_Aster usage » Gonfler une membrane » 2021-09-30 09:42:01

Romuald
Replies: 12

Bonjour,

J'essaie de gonfler une membrane pour prédire la forme gonflée. L'idée et de pouvoir ajuster la forme à plat.
J'ai joint le fichier comm.
-->J'ai malheureusement des problèmes dans la convergence du calcul que je n'arrive pas à résoudre :

   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   ! <S> Exception user raised but not interceptee.                                !
   ! The bases are fermees.                                                        !
   ! Type of the exception: NonConvergenceError                                    !
   !                                                                               !
   !  Stop due to absence of convergence with the necessary iteration count in the !
   ! nonlinear algorithm of Newton.                                                !
   !  The total base is                                                            !
   ! saved. It contains the pitches archived before the stop.                      !
   !                                                                               !
   !  Advices:                                                                     !
   !  - Increase ITER_GLOB_MAXI.                                                   !
   !  - More often Reactualize the                                                 !
   ! tangent matrix.                                                               !
   !  - Refine your temporal discretization.                                       !
   !  - Try to activate event management (cutting of the time step for example)    !
   ! in command DEFI_LIST_INST.                                                    !
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

J'ai tenté de faire un modèle 3d en extrudant le maillage. Le calcul tourne (du moins sur quelques itérations) mais j'ai des problèmes de flambage du à la rigidité de la paroi que j'espérais résoudre avec l'hypothèse de la membrane.

Belle journée et merci par avance de votre aide.

#14 Re: Code_Aster usage » Mesh formulation for hyperelastic case » 2021-09-14 21:12:41

Auto-réponse au cas où d'autres personnes se poseraient aussi cette question :

La formulation "3D" semble être un bon couteau suisse pour tous les cas 3d que j'ai étudié jusqu'à présent.
Il doit y avoir des limitations mais je ne les ai pas encore comprises du coup. Je laisse la communauté me corriger si j'écris une grossière erreur.

#15 Re: Code_Aster usage » Stabilisation d'un contact » 2021-01-21 14:46:20

Réponse à moi même, au cas où cela pourrait aider d'autres personnes :
Le document "Notice d'utilisation du contact" U2.04.04 chapitre 4.3 aborde cette problématique.

#16 Re: Code_Aster usage » Get sum of nodal force » 2021-01-20 18:17:09

Thanks for your response.

I solved the problem by putting FORC_NODA and REAC_NODA in CALC_CHAMP.
Here I working example :

reslin = CALC_CHAMP(reuse=reslin,
                    CONTRAINTE=('SIEF_ELNO', ),
                    CRITERES=('SIEQ_ELNO', ),
                    FORCE=('FORC_NODA', 'REAC_NODA'),
                    RESULTAT=reslin)

table = POST_RELEVE_T(ACTION=(_F(GROUP_NO=('Face_1'),

                                 INTITULE='applique',
                                 NOM_CHAM='FORC_NODA',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DX', 'DY', 'DZ'),
                                 RESULTAT=reslin),

                              _F(GROUP_NO=('Face_1'),
                                 INTITULE='reaction',
                                 NOM_CHAM='REAC_NODA',
                                 OPERATION=('EXTRACTION', ),
                                 RESULTANTE=('DX', 'DY', 'DZ'),
                                 RESULTAT=reslin)))

#17 Code_Aster usage » Stabilisation d'un contact » 2021-01-20 18:04:17

Romuald
Replies: 1

Bonjour,

Je suis entrain de réaliser un calcul non linéaire (grand déplacement et matériau hyperélastique).  C'est un flexible infiniment long (une tranche d'un seul élément est modélisé) posé sur un sol rigide qui sera rempli d'eau.

J'ai un problème au départ : il faut que je fixe tous les ddl pour éviter un pivot ratio évidemment. J'essaie donc de fixer les ddl x, y & z (je suis en 3D) le temps que le contact s'établisse, mais code plante lorsque j'arrête d'imposer le ddl via une DEFI_FONCTION.

J'imagine que les ddl des noeuds imposés doivent continuer de l'être tout le temps, car ils ont été retirés de la matrice de raideur.

Comment "stabiliser" un calcul sans bloquer des ddl? Ou existe-t-il une méthode permettant d'imposer un ddl puis de le "libérer"?

J'ai mis le fichier comm en pièce jointe. J'avais tenté de mettre un petit déplacement suivant un axe pour forcer l'établissement du contact mais j'ai le même problème sans déplacement.

Merci par avance,

#18 Code_Aster usage » Get sum of nodal force » 2020-10-01 16:20:42

Romuald
Replies: 2

Hello,

I tried to use a simple case in a static linear case.
I saw a topic on the forum ("Récupération des efforts aux noeuds")


But when i try to output force result, I have this error message :
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   ! <S> Exception user raised but not interceptee.                                !
   ! The bases are fermees.                                                        !
   ! Type of the exception: error                                                  !
   !                                                                               !
   !  occurrence 1 of the key word factor ACTION                                   !
   !  the NOM_CHAM REAC_NODA is not authorized for the RESULTAT reslin of the type !
   ! EVOL_ELAS                                                                     !
   !  or the NOM_CHAM is authorized but no effective field exists.                 !
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Do I need to use time step to output force results?
Is there an other way to sum nodal (or reac) force?

Thanks in advance,
Romuald

#19 Re: Code_Aster usage » Spécification du maillage par coté individuel. » 2020-07-03 07:59:05

Thank you very much.
I was doing it in the wrong way before (I was creating 2 meshes).
The concept of submesh is quite interesting.

#20 Code_Aster usage » Spécification du maillage par coté individuel. » 2020-07-01 15:52:36

Romuald
Replies: 2

Bonjour,

Je suis entrain de mailler dans Salome et j'ai une difficulté pour construire le maillage efficacement tel que je l'imagine.
Est-il possible de spécifier manuellement le nombre d'éléments par arête et non pas par objet?

Car lorsque j'applique une hypothèse sur le 1D, cela s'applique sur toutes les arrêtes de l'objet à mailler. J'ai tenté plusieurs approches en maillant d'abord la ligne en 1D avant de face en 2D mais cette dernière ne suit pas le nombre indiqué par la ligne.

J'ai mis une illustration d'un maillage et ce que j'aurai aimé réaliser.

Merci par avance

#21 Code_Aster usage » Mesh formulation for hyperelastic case » 2020-06-30 12:27:17

Romuald
Replies: 3

Hello,

I wondering which mesh formulation to be used for hyper elastic materials, with large displacement :

In the document U2.04.02, paragraph 1.2, we must use *_INCO_UP and *_INCO_UPG.
But when I read the validation case v6.04.189 SSNV227 (I haven't check all cases at this time), a saw that "3D" is used.

So I do not understand well how to input correct data to the solver.

Thanks in advance,
Romuald


PS : I read the documentation (U2.04.01, U2.04.02, etc.) and I thank all the people (if they read this topic) who wrote them for their quality.

#22 Introduce yourself / Présentez vous » Hello from Lille » 2020-06-24 16:00:35

Romuald
Replies: 0

Hello,

I am a computer scientist and a project manager in an elastomer company.
I starter using code_aster for its non linear capabilities (contacts, hyperelastic laws, large displacements) and its friendly interface thanks to Salome. I used in my previous working lifes various other finite elements codes, but I am glad to work this open software now.

I am still learning but I hope to use it for applications using rubber parts.

Romuald