Anomalie #229
ouvertanisotropie par projection
100%
Description
Bonjour Gérard,
ci-joint un exemple pourtant simple qui ne converge pas dès le premier incrément.
C'est un cube en traction selon X. Le repère d'anisotropie est tel que l'axe 1 d'aniso est à 90° de la direction de traction.
Tous les coefficients d'anisotropie sont égaux à 1 sauf A1.
J'ai commencé par A1=2. Le premier incrément n'arrive pas à converger.
J'ai ensuite essayé quelques valeurs pour voir :
- A1 = 1 => OK
- A1 = 1.5 => OK
- A1 = 1.75 => OK
- A1 = 2.25 => ECHEC
- A1 = 10. => ECHEC
- A1 = 1.99 => OK
- A1 = 1.999 => ECHEC
donc en gros vers A1=2 et au-delà => pas de convergence. As-tu une idée de ce qu'il se passe ?
Fichiers
Mis à jour par Julien Troufflard il y a presque 6 ans
Gérard,
j'ai une piste à creuser. Je pense que l'opérateur tangent n'est plus symétrique.
Par exemple, en élasticité linéaire :
La contrainte de référence est :
=> sigma_ref = C:epsilon
La contrainte projetee est :
=> sigma_proj = H:sigma_ref
La contrainte vaut donc :
=> sigma_proj = H:C:epsilon
Et bien théoriquement, le tenseur H:C n'est pas forcément symétrique.
Je vais tester dans Herezh++ le cas où je mets l'option :
para_syteme_lineaire-----
TYPE_MATRICE BANDE_NON_SYMETRIQUE
Mis à jour par Julien Troufflard il y a presque 6 ans
Gérard,
c'était ça. Les bonnes options sont :
para_syteme_lineaire ----------
TYPE_MATRICE BANDE_NON_SYMETRIQUE_LAPACK
SYMETRIE_MATRICE 0
Donc résolu. Par contre, il faut peut-être le signaler dans la doc théorique et utilisateur.
Mis à jour par Gérard Rio il y a presque 6 ans
- Statut changé de Nouveau à Résolu
Et bien super ! très bonne intuition.
Effectivement avec une matrice non-symétrique, on peut avoir une non-convergence dans le cas d'une résolution par défaut qui utilise une symétrisation par défaut.
Je vais suivre ton conseil et mettre une info dans la doc.
Merci
Mis à jour par Gérard Rio il y a presque 6 ans
pour information, il est également possible d'utiliser une résolution itérative qui peut se révéler une alternative performante par rapport à une résolution directe.
Je donne un exemple de mise en données qui fonctionne bien.
Je l'ai testé avec un maillage plus conséquent et la résolution itérative est plus rapide que la résolution directe.
@tester à l'occasion
NB: cela m'a permis de corriger un pb de lecture de nb d'itération (le paramètre: NB_ITER_NONDIRECTE) qui était mal lu, il faut donc utiliser la dernière version >= V 6.938
para_syteme_lineaire-----
TYPE_MATRICE CREUSE_COMPRESSEE_COLONNE
SYMETRIE_MATRICE 0
#BI_CONJUG BI_CONJUG_STAB CONJUG_GRAD_SQUARE
#GENE_MINI_RESIDUAL QUASI_MINI_RESIDUAL
TYPE_RESOLUTION CONJUG_GRAD_SQUARE
TYPE_PRECONDITIONNEMENT ICP
NB_ITER_NONDIRECTE 1200
TOLERANCE 1.e-8