Assistance #224
Raideur des éléments 1D en RD
Description
Gérard,
Dans le modèle du BSO complet j'utilise des éléments BIEL pour lier les nœuds situés aux extrémités du fuseau à l'axe du ballon. Le nœud commun en bas est encastré tandis que celui du haut glisse sur l'axe. Ces éléments 1D de petites taille sont sensé représenter les pièces polaires haute et basse en aluminium, ils devraient donc être très rigides. Par facilité ils sont actuellement affectés de la même rigidité que les rubans.
Avec une loi IE à 20° (très souple donc) le déploiement est très rapide et stable, bien que la cinématique soit assez complexe. Il faut moins de 6000 itérations pour un maillage de 40x2x74, ce qui est remarquable.
En utilisant la loi IE à -60° (beaucoup plus raide) la convergence nécessite 60000 itérations, soit 10 x plus ! En grattant un peu j'ai vu que c'est la raideur des éléments BIEL aux pôles qui pénalise la convergence. En leur affectant la raideur sangle à 20° au lieu de -60° il ne faut plus que 20000 itérations.
Je suis embêté que ces éléments sensés être infiniment rigides pénalisent a ce point le calcul. Vois-tu une méthode pour modéliser ces attaches d'une façon plus efficace ?
Merci
Frank
Mis à jour par Gérard Rio il y a presque 5 ans
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 10
Bonjour Frank,
Le comportement doit sans doute venir du fait que la stabilité de l'ensemble évolue en fonction de la raideur la plus grande dans le maillage.
Les biellettes de l'extrémité doivent imposer une pseudo-masse importante (car en RD le pseudo pas de temps est imposé à 1.). Du coup, la structure met beaucoup de temps pour atteindre sa position d'équilibre.
On pourrait penser à mettre un contact sur une sphère pour les noeuds qui bougent de la biellette, mais je pense que cela induira le même phénomène (en fonction de la pénalisation).
Peut-être une idée:
- affecter un comportement aux biellettes qui évolue au cours des itération. Au début, une assez grande souplesse qui permet un bon déploiement, puis quand la structure se tend, augmenter la raideur ce qui devrait induire un déplacement moins important que le déploiement d'où une convergence globale peut-être plus rapide ??
Par exemple, ce comportement pourrait-être géré par une variation de section: on peut utiliser une fonction nD pour la section, du coup cela donne accès aux variables globales, par exemple l'énergie interne.
Mais, la relation petits pas de temps stable versus les petits éléments (ou les éléments très raides) est inscrit dans les gènes des méthodes explicites !!
Une autre idée serait de mettre une combinaison de CLL qui remplace les biellettes, mais j'ai l'impression qu'il faudrait une CLL non-linéaire (déplacement sur une sphère), ce qui n'est pas possible actuellement.
Bon... à suivre
Mis à jour par Frank Petitjean il y a presque 5 ans
Gérard,
J'aime bien l'idée de la section variable. Je peux la piloter avec la norme de convergence par exemple puisque je connais sa valeur finale puisque je l'impose. Le pilotage avec le nombre d'itérations est plus délicat car ne je connais pas a priori le nombre d'itérations à la fin de l'incrément.
Merci pour ces pistes cela me permet de limiter cibler plus rapidement les possibles dans Herezh.
Frank
Mis à jour par Julien Troufflard il y a presque 5 ans
Bonjour,
désolé de m'immiscer dans le débat. Cette histoire d'éléments infiniment rigides m'intéresse car je m'y suis confronté l'année dernière. Non pas pour des problèmes de convergence, mais juste le problème de "comment imposer une norme constante entre 2 noeuds" et ceci dans un cadre statique implicite.
Et j'avais testé les deux approches : 1) via une sphère + contact collant, 2) via les CLL. Dans le premier cas, j'en suis arrivé au constat que ça fonctionnait mais qu'il n'était pas évident pour les noeuds de respecter d'éventuelles conditions limites + la condition de contact. Dans le deuxième cas, effectivement ce n'est pas possible d'y arriver via les CLL. Difficile de dresser le bilan des choses que j'ai tenté avec CLL, ça date un peu. Mais dans tous les cas, il y avait toujours un souci.
Donc ça serait vraiment intéressant d'introduire la fonctionnalité dans Herezh : "norme constante entre 2 noeuds". Cette fonctionnalité générale permettrait de rendre infiniment rigide n'importe quel type d'élément fini.
ps : quand à la raideur des bielettes, elle est égale à ES/L (E=module Young, S=section, L=longueur). Donc jouer sur le module ou la section revient à la même chose => la méthode classique d'une loi des mélanges sur la loi IE devrait produire la même chose qu'une loi sur la section.
J'ai testé le cas E=1000,S=1 et E=10,S=100 sur un cas très simple (barre en traction + force ponctuelle + RD), et effectivement dans les 2 cas j'ai strictement le même nombre d'itérations.
Mis à jour par Gérard Rio il y a presque 5 ans
Oui, changer la loi ou la section revient au même.
Mettre en place une condition de distance revient en fait à mettre en place une condition non-linéaire.
C'est dans les cartons !!
Mis à jour par Frank Petitjean il y a presque 5 ans
Tu es toujours le bien venu Julien ;-)
La méthode de la sphère, même si d'un point de vue géométrique cela fonctionne, me parait compliqué dans le cas qui m'intéresse car il y a beaucoup de bielles !
J'ai déjà mis en place une loi des mélanges qui permet de moduler la raideur, et tu fais bien de rappeler que c'est identique à modifier la raideur. Actuellement la loi des mélanges est piloter par le TEMPS mais cela oblige à utiliser plusieurs incréments, ce que je voudrais éviter. D'où l’intérêt d'utiliser une fonction nD sur la section.
Question : avec quelle grandeur globale piloter la section ? le nombre d'itérations, la norme de convergence, une grandeur plus complexe comme le volume du ballon... Il y a pas mal de possibilités !
Mis à jour par Julien Troufflard il y a presque 5 ans
tu peux piloter une loi des mélanges via la norme de convergence. J'ai retrouvé la trame de loi ci-dessous dans mes tiroirs. ça donne une idée.
nom_loi LOI_DES_MELANGES_EN_SIGMA
les_grandeurs_de_controle_= norme_de_convergence fin_grandeurs_
deb_fonct_= fct_nD_precision fin_fonct_
#loi 1
ISOELAS2D_C calcule_si_prop_non_nulle_
100. 0.45
#loi 2
ISOELAS2D_C calcule_si_prop_non_nulle_
200. 0.45
fin_liste_lois_elementaires