u4.34.03 Opérateur DEFI_LIST_INST#

Définir la liste d’instants de calcul, ainsi que sa gestion pour les algorithmes de résolution itératifs (commandes [STAT_NON_LINE], [DYNA_NON_LINE], [MECA_NON_LINE] et [THER_NON_LINE] )

  • possibilités de re-découpage du pas de temps en cas d’échec,

  • possibilités d’adaptation du pas de temps.

Produit une structure de données list_inst.

Paramètres généraux#

Opérande METHODE#

Ce mot-clef permet de choisir le mode de gestion de la liste d’instants.

Par défaut, la gestion est manuelle (METHODE=”MANUEL”), ce qui signifie que l’on va parcourir exactement la liste d’instants définie par l’utilisateur. En cas de sous-découpage, de nouveaux instants peuvent être insérés.

En gestion automatique (METHODE=”AUTO”), le code calcule automatiquement les nouveaux instants de calcul. Les modes de calcul des nouveaux pas de temps sont définis sous le mot-clé ADAPTATION. Les instants de calculs définis par l’utilisateur sont cependant respectés.

Opérande MODELE#

Ce mot-clef permet de définir le modèle dans le cas où on opère un filtre du champ utilisé par DELTA_GRANDEUR (voir ci-après) via une liste de groupes de mailles ou de noeuds. Dans ce cas, le modèle est obligatoire. Sinon, il est inutile.

Définition de la liste d’instants - mot-clé DEFI_LIST#

Opérandes LIST_INST et VALE#

Les instants de calcul peuvent être définis de 3 manières différentes:

  • soit en renseignant le mot-clé LIST_INST avec un concept défini au préalable par la commande [DEFI_LIST_REEL],

  • soit en renseignant le mot-clé VALE avec une liste de réels,

  • soit en renseignant le mot-clé RESULTAT avec un concept produit par [STAT_NON_LINE] ou [DYNA_NON_LINE]. Ce mot-clé permet de raffiner une liste d’instants déjà existante. En effet, on définit alors une liste d’instants SUBD_PAS fois plus fine que la liste des instants réellement calculés dans [STAT_NON_LINE] ou [DYNA_NON_LINE]. Il est à noter que cette liste d’instants réellement calculés peut être différente de la liste des instants donnée en entrée du [STAT_NON_LINE] ou [DYNA_NON_LINE] (par exemple à cause du sous-découpage) et de la liste des instants archivés (si on n’archive pas tous les instants). Cette fonctionnalité est utile pour vérifier l’indépendance des résultats à la discrétisation temporelle. Par exemple, pour obtenir une liste d’instants 2 fois plus fine, on choisit SUBD_PAS=2.

Attention

Si la SD résultat provient d’un calcul avec reprise, il n’est pas possible de la réutiliser dans la commande car on ne peut extraire de liste d’instants uniques (certains instants seront en double).

Opérandes PAS_MINI, PAS_MAXI, NB_PAS_MAXI#

Ces opérandes ne sont à renseigner qu’en cas de gestion automatique de la liste des instants (METHODE=”AUTO”).

../../../../_images/Cadre29.gif

Fig. 68 Adaptation automatique du pas de temps#

L’opérande PAS_MINI permet de spécifier le pas de temps minimal. Si au cours de l’adaptation du pas de temps, on est amené à traiter un pas de temps inférieur à PAS_MINI, alors le calcul s’arrête. Si cet opérande n’est pas renseigné, dans le cas général PAS_MINI vaut alors \({10}^{-12}\) (c’est d’ailleurs la valeur minimale autorisée); s’il n’est pas renseigné et que MODE_CALCUL_TPLUS=”IMPLEX”, alors le PAS_MINI vaut 1/1000ème du premier pas de calcul (forcément entré par l’utilisateur via LIST_INST).

Si \(\Delta {t}_{i} < \text{PAS\_MINI}\) alors STOP.

Attention, la vérification de PAS_MINI n’est pas effectuée pendant le sous-découpage éventuel du pas de temps en cas d’échec (c’est SUBD_PAS_MINI qui agit pendant le sous-découpage). L’opérande PAS_MINI n’agit que pour le calcul d’un nouveau pas de temps.

L’opérande PAS_MAXI permet de spécifier le pas de temps maximal, mais son fonctionnement est différent de celui de PAS_MINI. En effet, si au cours de l’adaptation du pas de temps, on est amené à traiter un pas de temps supérieur à PAS_MAXI, alors le calcul ne s’arrête pas (contrairement au fonctionnement de PAS_MINI), mais le pas de temps est alors limité à PAS_MAXI. Si cet opérande n’est pas renseigné, on ne fera pas cette étape; s’il n’est pas renseigné et que MODE_CALCUL_TPLUS=”IMPLEX”, alors le PAS_MAXI vaut 10 fois le premier pas de calcul (forcément entré par l’utilisateur via LIST_INST).

Si \(\Delta {t}_{i} > \text{PAS\_MAXI}`\) alors \(\Delta {t}_{i} = \text{PAS\_MAXI}\)

L’opérande NB_PAS_MAXI permet de spécifier le nombre de pas de temps au-delà duquel le calcul s’arrête. La valeur par défaut est un million (c’est aussi la valeur maximale autorisée).

Opérande PAS_INIT#

Avertissement

Ce mot-clé est pris en compte par MECA_NON_LINE mais n’est pas utilisé par STAT_NON_LINE.

Ce mot-clé permet de définir le pas de temps initial du calcul. Il est sans effet si PAS_INIT est plus grand que le premier pas de temps calculé à partir de la liste d’instants.

Un instant de calcul à PAS_INIT de l’instant initial est inséré. En cas d’échec, de découpe et d’adaptation automatique, il est possible que cet instant précis ne soit pas calculé.

Mot-clé ECHEC#

Ce mot-clé facteur répétable permet de gérer la liste d’instants en cas d’échec de convergence. À chaque occurrence du mot-clé ECHEC, on définit une cause d’échec (voir Définition des causes d’échec ) et une action à effectuer si cette cause est satisfaite (voir Définition des actions à effectuer en cas d’échec ). Les actions peuvent être différentes entre chaque occurrence du mot-clé ECHEC.

Si plusieurs causes d’échec sont satisfaites simultanément, l’ordre de déclenchement de ces échecs est prédéterminé, en particulier, “ERREUR” est toujours prioritaire sur “DELTA_GRANDEUR”.

Définition des causes d’échec#

L’opérande EVENEMENT permet de définir les causes d’échec.

Événement “ERREUR”#

Par défaut, la cause d’échec est ERREUR. Cette cause regroupe les raisons suivantes:

  • Dépassement du nombre maximum autorisé d’itérations de Newton.

  • Échec lors de l’intégration locale de la loi de comportement. Les paramètres locaux de l’algorithme utilisé pour l’intégration de la loi de comportement se trouvent dans [COMPORTEMENT].

  • Échec de l’algorithme de Deborst pour les contraintes planes ou les modèles 1D. On trouvera plus de détails dans [COMPORTEMENT].

  • Échec lors de la résolution du problème de contact discret (voir [R5.03.50]). Il y a échec lorsque le nombre maximum d’itérations de contact est dépassé ou lorsque la matrice de contact est singulière.

  • La matrice du système est singulière. La détection de singularité s’appuie sur le paramètre NPREC du mot-clé facteur SOLVEUR (voir [SOLVEUR]).

  • Le solveur linéaire itératif a atteint le nombre maximum d’itérations de Krylov fixé par NMAX_ITER dans le mot-clé facteur SOLVEUR (voir [SOLVEUR]).

  • À convergence, des critères physiques ne sont pas satisfaits lors de l’intégration de la loi de comportement (notion d”«event-driven»).

Même si on ne trouve aucune occurrence de ECHEC / EVENEMENT = “ERREUR”, le code en rajoute automatiquement une avec les paramètres par défaut (c’est-à-dire l’action “DECOUPE” en mode “MANUEL” avec SUBD_NIVEAU=4).

Événement “DIVE_RESI”#

Le choix de l’événement “DIVE_RESI” permet de spécifier une autre cause possible d’échec («event-driven»). Il y aura échec si le résidu ne diminue pas suffisamment au cours des itérations de Newton. Plus précisément, il y aura échec si: \(min[R_{i}, R_{i-1}] > R_{i-2}\) pour \(i \ge 3\), où \(R_{j}\) est le résidu (RESI_GLOB_MAXI) à l’itération de Newton \(j\). S’il y a échec, alors le pas de temps est sous-découpé (il n’y a pas d’autres possibilités). L’intérêt de cette fonctionnalité est qu’il n’est pas nécessaire d’attendre que l’on arrive à la fin des itérations de Newton autorisées pour re-découper le pas de temps en cas de non-convergence «notable». On se rend compte de la non-convergence plus vite, un gain de temps est donc espéré.

Remarque

L’activation de cette fonctionnalité avec le contact discret n’est pas conseillée car dans ce type de calcul le résidu ne décroît en général pas de façon monotone.

Événement “DELTA_GRANDEUR”#

Le choix de l’événement “DELTA_GRANDEUR” permet de spécifier une autre cause possible d’échec («event-driven»). Il y aura échec si l’incrément d’une composante d’un champ dépasse un seuil fixé, à convergence. Il faut alors définir le nom du champ par l’opérande NOM_CHAM (champ de déplacement, de contraintes ou de variables internes), le nom de la composante par l’opérande NOM_CMP et la valeur du seuil de référence par l’opérande VALE_REF.

Plus précisément, soient \(v\) la composante NOM_CMP du champ NOM_CHAM et \(valref\) la valeur de référence VALE_REF.

Si le champ NOM_CHAM est un champ aux noeuds et \({N}_{no}\) est l’ensemble de tous les noeuds du maillage, alors il y aura échec si à convergence:

\[max(\Delta \vert{v}^{i}\vert, \forall i\in {N}_{no}) > valref\]

Si le champ NOM_CHAM est un champ aux points de Gauss, \({N}_{sp,pg,el}\) est l’ensemble de tous les sous-points de tous les points de Gauss de tous les éléments du modèle, alors il y aura échec si à convergence:

\[max(\Delta \vert{v}^{i}\vert, \forall i\in {N}_{sp,pg,el}) > valref\]

L’incrément \(\Delta\) est à prendre au sens incrément entre deux instants. Par défaut, le maximum est pris sur l’ensemble du champ. Toutefois, on peut filtrer la position en employant les mots-clés GROUP_MA (pour les champs SIEF_ELGA et VARI_ELGA) ou GROUP_NO (pour le champ DEPL). Dans ce cas, le maximum est pris respectivement sur la liste de groupes de mailles ou la liste de groupes de noeuds.

Exemple n°1 avec une loi VMIS_ISOT_LINE:

ECHEC = (
    _F(
        EVENEMENT="DELTA_GRANDEUR",
        VALE_REF=0.1e-2,
        NOM_CHAM="VARI_ELGA",
        NOM_CMP="V1",
    ),
)

On aura échec si l’incrément de la plasticité cumulée entre deux pas de temps dépasse \(10^{-3}\).

Exemple n°2:

ECHEC = (
    _F(
        EVENEMENT="DELTA_GRANDEUR",
        VALE_REF=5.0e-2,
        NOM_CHAM="DEPL",
        NOM_CMP="DX",
    ),
    _F(EVENEMENT="DELTA_GRANDEUR", VALE_REF=5.0e-2, NOM_CHAM="DEPL", NOM_CMP="DY"),
)

On aura échec si la norme (norme sup) du déplacement (en 2D) varie de plus de 0.05 entre deux pas de temps.

Remarque

Dans les deux exemples précédents, bien que EVENEMENT=”ERREUR” ne soit pas présent, il sera quand même activé par défaut.

Événement “INTERPENETRATION”#

Cet événement détecte l’interpénétration d’un noeud dans une surface lorsque le contact unilatéral de type régularisé (pénalisation) est activé. L’utilisateur donne une valeur de la pénétration maximale qu’il veut obtenir (paramètre PENE_MAXI) et le code adapte alors le coefficient de pénalisation (ACTION=”ADAPT_COEF_PENA”) ou s’arrête (ACTION=”ARRET”) pour respecter cette contrainte. Cette fonctionnalité n’est disponible que pour le contact en FORMULATION=”DISCRETE”(voir [DEFI_CONTACT]).

Événement “INSTABILITE”#

Cet événement permet de gérer le déroulement d’un calcul non-linéaire lorsqu’une instabilité est détectée lors de l’appel à CRIT_STAB (cf. [STAT_NON_LINE] et [DYNA_NON_LINE]). Si ce mot-clé CRIT_STAB n’est pas utilisé alors cet événement ne peut se produire.

Si une instabilité est détectée, une action sera alors déclenchée, selon deux possibilités:

  • ACTION=”CONTINUE”: c’est la valeur par défaut et on va continuer le calcul, même en cas d’instabilité,

  • ACTION=”ARRET”: si une instabilité est captée, alors on va arrêter la résolution non-linéaire proprement.

Plus de détails sur le critère d’instabilité et son utilisation sont donnés dans les documentations [R7.05.01] et [U2.08.04].

Événement “RESI_MAXI”#

Cet événement permet d’éviter que le résidu d’équilibre «explose». En effet, dans certaines situations, l’intégration de la loi de comportement sur de trop grands pas de temps augmente le résidu d’équilibre. Il n’est alors plus possible en général que le résidu diminue après, ce qui amène à l’échec du calcul. En activant cet événement, on met une valeur maximale à RESI_GLOB_MAXI pendant les itérations de Newton, ce qui permet de découper le pas de temps ou d’arrêter le calcul.

Définition des actions à effectuer en cas d’échec#

Selon l’événement, seules certaines actions sont possibles, voir tableau ci-dessous :

ACTION

EVENEMENT

ARRET

DECOUPE

ITER_SUPPL

ADAPT_COEF_PENA

CONTINUE

ERREUR

OUI

OUI

OUI

DIVE_RESI

OUI

DELTA_GRANDEUR

OUI

OUI

COLLISION

OUI

OUI

INTERPENETRATION

OUI

OUI

INSTABILITE

OUI

OUI

RESI_MAXI

OUI

OUI

Par exemple, dans le cas le plus général (EVENEMENT=”ERREUR”), il y a ces possibilités:

  • Découper le pas de temps (ACTION=”DECOUPE”);

  • Autoriser des itérations de Newton supplémentaires (ACTION=”ITER_SUPPL”);

  • S’arrêter (ACTION=”ARRET”).

Action “ARRET”#

Si l’on choisit ACTION= “ARRET”, le calcul s’arrête proprement.

Action “DECOUPE”#

Cette action consiste à refaire le pas de temps en le découpant. Il existe deux méthodes de découpe du pas de temps: le mode AUTO et le mode MANUEL.

Remarque

Dans MECA_NON_LINE, les instants insérés par la découpe ne sont pas des points de passage obligés. Ainsi si on utilise conjointement l’adaptation du pas de temps (accélération), il se peut certains des instants de découpe soient ignorés.

Découpe en mode MANUEL#

En mode MANUEL, le pas de temps est découpé de manière uniforme. Il faut donc préciser le nombre de découpes à l’aide du mot-clé SUBD_PAS.

../../../../_images/Cadre38.gif

Fig. 69 Découpe en mode MANUEL avec SUBD_PAS=2#

L’événement ERREUR se déclenche durant le pas de temps 1, initialement de longueur \(\Delta {t}_{1}^{{N}_{1}}\). Ce pas est alors découpé en deux pas (SUBD_PAS = 2) de longueurs égales telles que \(\Delta {t}_{1}^{{N}_{2}} = \Delta {t}_{2}^{{N}_{2}} = \frac{\Delta {t}_{1}^{{N}_{1}}}{2}\). Le pas suivant (numéro 2 dans la configuration initiale) devient alors le pas 3, sa longueur reste inchangée \(\Delta {t}_{3}^{{N}_{2}} = \Delta {t}_{2}^{{N}_{1}}\).

Pas

1

2

3

Initial – 1

\(\Delta {t}_{1}^{{N}_{1}}\)

\(\Delta {t}_{2}^{{N}_{1}}\)

Découpe – 2

\(\Delta {t}_{1}^{{N}_{2}}\)

\(\Delta {t}_{2}^{{N}_{2}}\)

\(\Delta {t}_{3}^{{N}_{2}}\)

La notion de niveau de découpe#

La découpe du pas de temps est récursive: si l “événement ERREUR se déclenche durant un pas déjà découpé, on redécoupe. On voit un exemple sur la figure suivante.

../../../../_images/Cadre117.gif

Fig. 70 Découpe récursive en mode MANUEL avec SUBD_PAS=2#

Après la première découpe, l’échec se produit dans le (nouveau) deuxième pas de temps. On redécoupe celui-ci avec \(\Delta {t}_{2}^{{N}_{3}} = \Delta {t}_{3}^{{N}_{3}} = \frac{\Delta {t}_{2}^{{N}_{2}}}{2}\). Le pas de temps suivant reste inchangé \(\Delta {t}_{4}^{{N}_{3}} = \Delta {t}_{3}^{{N}_{2}}\), le premier pas de temps est convergé et donc reste également inchangé \(\Delta {t}_{1}^{{N}_{3}} = \Delta {t}_{1}^{{N}_{2}}\). Ce qui donne:

Pas

1

2

3

4

Initial – 1

\(\Delta {t}_{1}^{{N}_{1}}\)

\(\Delta {t}_{2}^{{N}_{1}}\)

Découpe – 2

\(\Delta {t}_{1}^{{N}_{2}}\)

\(\Delta {t}_{2}^{{N}_{2}}\)

\(\Delta {t}_{3}^{{N}_{2}}\)

Découpe – 3

\(\Delta {t}_{1}^{{N}_{3}}\)

\(\Delta {t}_{2}^{{N}_{3}}\)

\(\Delta {t}_{3}^{{N}_{3}}\)

\(\Delta {t}_{4}^{{N}_{3}}\)

Il ne peut y avoir un écart de plus d’un niveau entre deux pas de temps.

Découpe en mode AUTO#

Le mode de découpe automatique utilise tente une extrapolation linéaire de la valeur des résidus.

Si l’on note \(iter\) l’itération de Newton et \({resi}^{\text{ext}}\) la valeur du résidu extrapolé (RESI_GLOB_RELA et/ou RESI_GLOB_MAXI), alors on cherche \({a}_{1}\), \({a}_{2}\) et \(b\) tels que :

\[{resi}^{\text{ext}} = \frac{({a}_{1} \cdot iter + {a}_{2})}{b}\]

Voici l’algorithme utilisé:

Pour \(iter = deb,fin\)

\(xx = log({resi}_{iter+1})\)

Si \(iter > fin -3\)

\(poids = 2\)

Sinon

\(poids = 1\)

On calcule

\(xn = xn+poids\)

\(sx = sx+poids.xx\)

\(sy = sy+poids.iter\)

\(sxx = sxx+poids.({xx}^{2})\)

\(syx = syx+poids.xx.iter\)

Fin Pour

\({a}_{1} = sxx.sy–sx.syx\)

\({a}_{2} = -(sx.sy)+syx.xn\)

\(b = -{sx}^{2}+sxx.xn\)

Pour faire cette extrapolation, on demande au minimum trois itérations de Newton et l’on considère que les deux dernières itérations ont deux fois plus de poids que les premières, si ce n’est pas possible (ou si l’extrapolation échoue pour une autre raison), on passe automatiquement en mode de découpe MANUEL (SUBD_PAS=4).

Contrôle de la découpe#

Si la convergence est difficile et que l’événement se déclenche plusieurs fois de suite, entraînant le découpage récursif du pas de temps, on peut arrêter le processus de deux manières en mode MANUEL:

  • Le découpage s’arrêtera dès que le découpage sera fait plus de SUBD_NIVEAU fois.

  • Le découpage s’arrêtera dès que le pas de temps sera inférieur à SUBD_PAS_MINI.

En mode AUTO, seul le mot-clé SUBD_PAS_MINI est disponible.

Remarque concernant le calcul de flambage

Lors de calcul de flambage élastoplastique, il peut arriver que la matrice tangente du système soit singulière au cours des itérations de Newton. En re-découpant le pas de temps, on peut passer ces points durs.

Particularités de l’opérande SUBD_NIVEAU

L’opérande SUBD_NIVEAU est une notion qui devrait être globale à toutes les occurrences du mot-clé ECHEC. Ainsi, cet opérande ne devrait être défini qu’une seule fois. Dans la pratique, ce n’est pas le cas et rien n’empêche de définir une valeur de SUBD_NIVEAU différente à chaque occurrence du mot-clé ECHEC. Pour se prémunir de ce cas là, l’algorithme retiendra au final comme valeur globale et unique de SUBD_NIVEAU le maximum des SUBD_NIVEAU définis par l’utilisateur.

Action “ITER_SUPPL”#

L’action “ITER_SUPPL” permet de faire des itérations de Newton au-delà du maximum donné par ITER_GLOB_MAXI (ou ITER_GLOB_ELAS). Elle évite que le calcul échoue pour quelques itérations de Newton. Pour cela, grâce à l’extrapolation linéaire des résidus (voir Action “DECOUPE” ), il est possible d’estimer le nombre d’itérations de Newton nécessaire à la convergence.

Le nombre d’itérations supplémentaires est limité par le mot-clé PCENT_ITER_PLUS.

Si le nombre estimé d’itérations est supérieur à :

\[( 1 + \text{PCENT\_ITER\_PLUS} / 100) \times \text{ITER\_GLOB\_MAXI} \text{ (ou ITER\_GLOB\_ELAS)}\]

alors on considère que l’on a échoué. De même si l’extrapolation ne réussit pas. Dans ces deux cas, il est possible d’activer la découpe du pas de temps (mot-clé SUBD_METHODE).

Action “ADAPT_COEF_PENA”#

Si l’événement INTERPENETRATION se déclenche, cette action consiste à augmenter automatiquement la valeur du coefficient de pénalisation (voir opérateur [DEFI_CONTACT]) de manière à diminuer cette interpénétration. Le paramètre COEF_MAXI permet de spécifier la valeur maximale prise par le coefficient de pénalisation lorsque le mécanisme d’adaptation automatique est utilisé, afin d’éviter des problèmes de conditionnement de la matrice (voir les précautions d’usage des méthodes pénalisées dans [U2.04.04]).

Actuellement, le mécanisme ne fait qu’augmenter ce coefficient et ne le fait jamais diminuer, même si l’interpénétration n’apparaît plus après adaptation, il a donc tendance à transformer un problème de contact avec interpénétration en un problème sans contact. Il convient donc de choisir un coefficient de pénalisation initial plus faible que nécessaire (voir opérateur [DEFI_CONTACT]).

Action “CONTINUE”#

Si l’événement INSTABILITE se déclenche, cette action consiste à tenter de poursuivre le calcul non-linéaire. C’est la valeur par défaut pour cet événement, qui est le seul à pouvoir se combiner avec cette action.

Mot-clé ADAPTATION#

L’adaptation du pas de temps consiste à calculer un nouveau pas de temps \(\Delta {t}_{i+1}\), à partir des informations du pas de temps actuel \(\Delta {t}_{i}\) (et des pas de temps précédents \(\Delta {t}_{i-1}\), \(\Delta {t}_{i-2}\), …).

Le but est donc de calculer \(\Delta {t}_{i+1} = c \cdot \Delta {t}_{i}\), où \(c\) est un coefficient réel.

Le procédé est le suivant:

Pour l’occurrence \(k\) du mot-clé ADAPTATION, on définit un événement et un mode de calcul de \(\Delta {t}_{i+1}\). Si l’événement est vérifié, alors on calcule \({c}^{k}\) avec le mode de calcul choisi.

On obtient un tableau récapitulatif de ce type:

Occurrence n°1

\({c}^{1} = 4.2\)

Occurrence n°2

événement non vérifié

Occurrence n°3

\({c}^{3} = 1.7\)

Occurrence n°4

\({c}^{4} = 3.9\)

Ensuite, on choisit \(c=min({c}^{k})\) parmi les occurrences dont l’événement est vérifié. Dans cet exemple, le nouveau pas de temps vaudra \(\Delta {t}_{i+1} = 1.7 \cdot \Delta {t}_{i}\) .

Pour utiliser MODE_CALCUL_TPLUS=”IMPLEX”, il faut que ce mot clé ne soit utilisé qu’une fois.

Opérande EVENEMENT#

Cet opérande permet de spécifier le critère de déclenchement pour l’adaptation du pas de temps.

Si EVENEMENT=”SEUIL”, alors l’événement n’est vérifié que si le seuil est franchi.

Si EVENEMENT=”TOUT_INST”, alors l’événement est vérifié à tous les instants ; ce cas est obligatoire avec la méthode IMPLEX.

Si EVENEMENT=”AUCUN”, alors l’événement n’est jamais vérifié.

Opérandes NB_INCR_SEUIL, NOM_PARA, CRIT_COMP, VALE_I#

Ces opérandes ne sont à renseigner qu’en cas d’événement de type seuil (EVENEMENT=”SEUIL”). L’événement est vérifié si on a NB_INCR_SEUIL fois de suite un «feu vert», un feu vert étant caractérisé par la condition définie par NOM_PARA, CRIT_COMP et VALE_I.

Par exemple si NB_INCR_SEUIL=2, NOM_PARA=”NB_ITER_NEWTON”, CRIT_COMP=”LE” et VALE_I=5, alors l’événement est vérifié si on a fait 2 fois de suite moins de 5 itérations de Newton.

Remarque

Il n’y a pas de valeur par défaut pour VALE_I dans le catalogue de l’opérateur DEFI_LIST_INST. Cependant, si sa valeur n’est pas renseignée, on prendra pour VALE_I la moitié du nombre maximal d’itérations de Newton (déclaré dans les options de l’opérateur non-linéaire).

Opérande MODE_CALCUL_TPLUS#

Cet opérande sert à spécifier le mode de calcul du nouveau pas de temps (en fait, du coefficient \(c\)).

Si MODE_CALCUL_TPLUS=”FIXE”, alors le coefficient \(c\) est fixe. Sa valeur est déterminée par le mot-clé PCENT_AUGM. Le nouveau pas de temps vaut alors:

\[\Delta {t}_{i+1} = \left( 1+\frac{\text{PCENT\_AUGM}}{100.} \right) \Delta {t}_{i}\]

Si le pas de temps suivant \(\Delta {t}_{i+2}\) conduisait à depasser l’instant suivant de la liste d’instants, il serait automatiquement réduit et l’augmentation suivante ne serait pas optimale. Dans ce cas, on limite \(\Delta {t}_{i+1}\) pour que \(\Delta {t}_{i+2} = c \Delta {t}_{i+1}\) permette d’atteindre exactement l’instant suivant. Ainsi \(\Delta {t}_{i+3}\) (après l’instant obligé) sera optimisé, etc.

Si MODE_CALCUL_TPLUS=”DELTA_GRANDEUR”, alors le coefficient \(c\) est lié à la variation au cours du pas de temps d’une grandeur choisie. On utilise la formule suivante:

\[c = \underset{i \in N}{min}\left( \frac{{V}_{ref}}{\vert \Delta {V}_{i} \vert} \right)\]

avec \(N\) l’ensemble des noeuds ou des points de Gauss pour lesquels \(\Delta {V}_{i}\) n’est pas nul. La valeur de référence \({V}_{ref}\) est choisie par l’utilisateur.

Si le champ \(\Delta V\) est identiquement nul, alors on considère que le critère (l’événement) n’est pas vérifié. Par défaut, toutes les valeurs de la composante sont examinées. Toutefois, on peut filtrer la position en employant les mots-clés GROUP_MA (pour les champs SIEF_ELGA et VARI_ELGA) ou GROUP_NO (pour le champ DEPL). Dans ce cas, l’évaluation ne porte que sur la liste de groupes de mailles ou la liste de groupes de noeuds.

Si MODE_CALCUL_TPLUS=”ITER_NEWTON”, alors le coefficient \(c\) est lié à la variation au cours du pas de temps du nombre d’itérations de Newton. On utilise la formule suivante:

\[c = \sqrt{\frac{{N}_{ref}}{{N}_{it}+1}}\]

\({N}_{it}\) est le nombre d’itérations de Newton effectuées et \({N}_{ref}\) une valeur de référence choisie par l’utilisateur. On rappelle que la prédiction est considérée comme l’itération de Newton n°0, ce qui signifie que si on converge dès la prédiction alors \(c=\sqrt{{N}_{ref}}\).

Si MODE_CALCUL_TPLUS=”IMPLEX”, alors le coefficient \(c\) est lié aux incréments de variables internes (déformation plastique cumulée ou endommagement) du pas précédent (voir [R5.03.81]). Dans ce cas, le mot clé ADAPTATION ne doit être utilisé qu’une seule fois. Le coefficient \(c\) sera forcément compris entre 0.5 et 1.2. De plus, par définition de la méthode IMPLEX il n’y aura aucune cause d’échec.

Opérande PCENT_AUGM#

Cet opérande sert à spécifier le pourcentage d’augmentation du pas de temps si MODE_CALCUL_TPLUS = “FIXE”. Par défaut, on augmente de 100%, c’est-à-dire que l’on double la valeur du pas de temps. La valeur peut être négative et doit être strictement supérieure à -100.

Opérandes VALE_REF, NOM_CHAM, NOM_CMP#

Ces opérandes servent à spécifier le calcul du coefficient \(c\) d’augmentation du pas de temps si MODE_CALCUL_TPLUS=”DELTA_GRANDEUR” (cf. Événement “DELTA_GRANDEUR”) avec VALE_REF la valeur de référence \({V}_{ref}\) et NOM_CHAM le nom du champ de grandeur considéré.

Opérande NB_ITER_NEWTON_REF#

Cet opérande sert à renseigner le nombre d’itérations de Newton de référence, noté \({N}_{ref}\) (cf. Opérande MODE_CALCUL_TPLUS) dans le cas où MODE_CALCUL_TPLUS = “ITER_NEWTON”.

Opérande INFO#

Pour le moment, cet opérande ne sert pas.