4. Résolution non-linéaire#

Les 3 grands types de non-linéarités dans Code_Aster sont les suivants:

  • non-linéarité liée au comportement du matériau (par exemple plastique);

  • non-linéarité liée à la géométrie (par exemple en grands déplacements);

  • non-linéarité liée au contact-frottant.

Les conseils généraux de résolution de problèmes non-linéaires font l’objet d’un document spécifique dont on recommande fortement la lecture: u2.04.01 u2.04.01 u2.04.01.

Avant tout calcul non-linéaire, il est indispensable de s’assurer que le calcul fonctionne correctement en élasticité linéaire. Les non-linéarités pourront alors être ajoutées les unes après les autres.

On rappelle brièvement les conseils majeurs sur la discrétisation temporelle et les paramètres numériques de résolution non-linéaire dans les paragraphes suivants.

4.1. Non-linéarité et discrétisation temporelle#

La résolution d’un problème non-linéaire nécessite généralement d’appliquer le chargement extérieur progressivement, par incrément de charge. Ainsi le temps (ou pseudo-temps en quasi-statique) est discrétisé en pas de temps et à chaque pas de temps correspond un incrément de charge (voir § 2.2 ). Plus le pas de temps est petit, moins le problème est non-linéaire donc plus facile à résoudre. Afin d’autoriser le sous-découpage du pas de temps en cas d’échec de convergence, il est indispensable d’utiliser la commande DEFI_LIST_INST (pour plus de détails sur la gestion de la liste d’instants, voir le paragraphe §3.1 du document u2.04.01)

Pour vérifier la cohérence des données (système d’unités, conditions aux limites, caractéristiques élémentaires, effet des variables de commandes), il est toujours utile d’effectuer un premier calcul élastique linéaire (STAT_NON_LINE/RELATION=”ELAS”, ou MECA_STATIQUE), avant toute étude non linéaire, puis d’ajouter les non linéarités les unes après les autres.

4.2. Paramètres numériques pour l’algorithme de résolution non-linéaire#

Par défaut, l’algorithme de résolution non-linéaire est basé sur la méthode de Newton-Raphson (STAT_NON_LINE / METHODE=”NEWTON”).

Il est conseillé d’utiliser une matrice tangente réactualisée à chaque itération de Newton: REAC_ITER=1 afin de faciliter la convergence de l’algorithme (voir le paragraphe §2.2 du document u2.04.01).

Il est fortement recommandé de ne pas augmenter le critère de convergence de la méthode de Newton (RESI_GLOB_RELA=106 par défaut). D’autres critères de convergence sont également disponibles (voir le paragraphe §3.3 du document u2.04.01).

Remarques:

  • Pour des problèmes adoucissants, Code_Aster offre la possibilité d’utiliser une méthode alternative à la méthode Newton-Raphson: c’est la méthode IMPLEX qui est une méthode robuste mais approchée (voir le paragraphe §4.5 du document u2.04.01).

  • Pour une optimisation du temps de calcul, Code_Aster offre la possibilité d’utiliser une méthode de Newton inexacte (à condition que le solveur linéaire choisi soit un solveur itératif): c’est la méthode NEWTON_KRYLOV.