Évaluation de la stabilité ========================== .. code-block:: text ◇ CRIT_STAB = _F( ◇ OPTION = / "BANDE", / "CALIBRATION", / "PLUS_PETITE" (par défaut), # Si: (equal_to("OPTION", 'BANDE')) ◇ CHAR_CRIT = float, # Si: (equal_to("OPTION", 'PLUS_PETITE')) ◇ NMAX_CHAR_CRIT = int (défaut: 3), # Si: (equal_to("OPTION", 'CALIBRATION')) ◇ CHAR_CRIT = float, ◇ COEF_DIM_ESPACE = int (défaut: 5), ◇ RIGI_GEOM = / "NON", / "OUI" (par défaut), ◇ MODI_RIGI = / "NON" (par défaut), / "OUI", ◇ TYPE = / "FLAMBEMENT" (par défaut), / "STABILITE", ◇ PREC_INSTAB = float (défaut: 1e-06), ◇ SIGNE = / "NEGATIF", / "POSITIF", / "POSITIF_NEGATIF" (par défaut), # Si: (equal_to("RIGI_GEOM", 'NON')) ◇ DDL_EXCLUS = / "DAMG", / "DCX", / "DCY", / "DCZ", / "DRX", / "DRY", / "DRZ", / "DX", / "DY", / "DZ", / "GONF", / "GRX", / "H1X", / "H1Y", / "H1Z", / "K1", / "K2", / "K3", / "LAGS_C", / "LAG_GV", / "LIAISON", / "PHI", / "PRE1", / "PRE2", / "PRES", / "PRES11", / "PRES12", / "PRES13", / "PRES21", / "PRES22", / "PRES23", / "PRES31", / "PRES32", / "PRES33", / "TEMP", / "UI2", / "UI3", / "UI4", / "UI5", / "UI6", / "UO2", / "UO3", / "UO4", / "UO5", / "UO6", / "V11", / "V12", / "V13", / "V21", / "V22", / "V23", / "V31", / "V32", / "V33", / "VARI", / "VI2", / "VI3", / "VI4", / "VI5", / "VI6", / "VO2", / "VO3", / "VO4", / "VO5", / "VO6", / "WI1", / "WI2", / "WI3", / "WI4", / "WI5", / "WI6", / "WO", / "WO1", / "WO2", / "WO3", / "WO4", / "WO5", / "WO6", # Si: equal_to("TYPE", 'STABILITE') and equal_to("RIGI_GEOM", 'NON') ◆ DDL_STAB = / "DAMG", / "DCX", / "DCY", / "DCZ", / "DRX", / "DRY", / "DRZ", / "DX", / "DY", / "DZ", / "GONF", / "GRX", / "H1X", / "H1Y", / "H1Z", / "K1", / "K2", / "K3", / "LAGS_C", / "LAG_GV", / "LIAISON", / "PHI", / "PRE1", / "PRE2", / "PRES", / "PRES11", / "PRES12", / "PRES13", / "PRES21", / "PRES22", / "PRES23", / "PRES31", / "PRES32", / "PRES33", / "TEMP", / "UI2", / "UI3", / "UI4", / "UI5", / "UI6", / "UO2", / "UO3", / "UO4", / "UO5", / "UO6", / "V11", / "V12", / "V13", / "V21", / "V22", / "V23", / "V31", / "V32", / "V33", / "VARI", / "VI2", / "VI3", / "VI4", / "VI5", / "VI6", / "VO2", / "VO3", / "VO4", / "VO5", / "VO6", / "WI1", / "WI2", / "WI3", / "WI4", / "WI5", / "WI6", / "WO", / "WO1", / "WO2", / "WO3", / "WO4", / "WO5", / "WO6", ◇ / LIST_INST = listr8, / PAS_CALC = int, / INST = float, ◇ CRITERE = / "ABSOLU", / "RELATIF" (par défaut), # Si: (equal_to("CRITERE", 'RELATIF')) ◇ PRECISION = float (défaut: 1e-06), # Si: (equal_to("CRITERE", 'ABSOLU')) ◆ PRECISION = float, ), Le mot-clé CRIT_STAB permet de déclencher le calcul, à la fin de chaque incrément de temps, d'un critère de stabilité. Ce critère est utile pour déceler, au cours du chargement, le point à partir duquel on perd la stabilité par l'utilisation de deux critères * Par flambage dans le cas de phénomène mécanique réversibles (TYPE = 'FLAMBEMENT'). * Par une étude de signe sur la dérivée seconde de l'énergie en respectant l'accroissement des degrés de liberté irréversibles dans le cas d'une mécanique dissipative (TYPE = 'STABILITE') Cas du flambage --------------- Pour le flambement, le critère est alors calculé de la façon suivante. À la fin d'un pas de temps, en petites perturbations, on résout .. math:: det\left({K}^{T}+{\mu}\cdot {K}^{g}\right)=0 où :math:`{K}^{T}` est la matrice tangente cohérente à cet instant et :math:`{K}^{g}` est la matrice de rigidité géométrique, calculée à partir du champ de contraintes à cet instant. En pratique, le chargement est instable si le coefficient de charge critique :math:`{\mu}` vérifie :math:`|{\mu}|<1` (en fait :math:`0<{\mu}<1` ). On calcule les valeurs propres par la méthode de Sorensen (voir :ref:`CALC_MODES `). Ceci peut être assez coûteux pour les problèmes de grande taille. Pour les grands déplacements et les grandes déformations, on résout .. math:: det\left({K}^{T}+{\mu}\cdot I\right)=0 car :math:`{K}^{T}` contient alors :math:`{K}^{g}`. Le critère est alors un critère d'instabilité : quand :math:`{\mu}` change de signe (donc passe par 0) le chargement est instable. On stocke le mode propre correspondant à la plus petite charge critique (en valeur absolue) dans l'objet résultat, sous le nom MODE_FLAMB. Ce mode propre peut être extrait et visualisé (comme un champ de déplacements ou un mode propre classique). Il est normalisé à 1 sur la plus grande composante de déplacement. L'analyse de stabilité linéaire ne permettant pas de tenir compte de l'aspect suiveur de certaines forces, il faut alors utiliser CRIT_STAB. La documentation [:ref:`U2.08.04 `] présentent les différentes approches pour les analyses de flambement. Cas de la stabilité ------------------- Pour traiter le cas particulier TYPE = 'STABILITE', on impose de prendre comme matrice de rigidité géométrique la matrice identité :math:`{K}^{g}={I}_{d}` . On recherche ensuite le minimum de la fonctionnelle quadratique suivante .. math:: C(x)=\frac{{x}^{t} {K}^{T}x}{{x}^{t} x} où :math:`{K}^{T}` est la matrice tangente cohérente à l'instant étudié et :math:`{x}^{t}` le vecteur transposé du champ des inconnus nodales :math:`x`, sous des contraintes de positivité sur les degrés de liberté de :math:`x` de nature irréversible. Le signe du minimum permet ensuite de conclure sur la stabilité du chargement. Dans le cas où celui-ci est négatif, la solution est instable. Dans le cas contraire, la solution obtenue numériquement est stable. Le mode obtenu, qui est le vecteur minimisant :math:`C(x)` (dit mode d'instabilité dans le cas où le minimum est négatif), et l'estimation du critère de stabilité associé sont stockés dans l'objet résultat sous le nom MODE_STAB ( CHAR_STAB = :math:`C(x)` ). Sortie des résultats -------------------- L'ensemble des résultats est stocké dans une structure de données de type table_container de nom 'ANALYSE_MODALE' attachée à la structure de données evol_noli . Les modes de flambement ( TYPE='FLAMBEMENT' ) sont stockés comme TYPE_MODE=' MODE_FLAMB ' dans la table tandis que les modes de stabilité ( TYPE=' STABILITE ' ) y sont stockés comme TYPE_MODE=' MODE_STAB ' (voir [:ref:`DYNA_NON_LINE `]). Sélection dans le transitoire ----------------------------- Les instants pour lesquels on veut faire un calcul de stabilité sont donnés par une liste d'instants renseignée par LIST_INST ou par une fréquence PAS_CALC. La sélection est contrôlée par les mots-clefs PRECISION et CRITERE, voir [:ref:`U4.71.00 `]. En l'absence de ces mots clés le critère est calculé à tous les pas de temps. Réglages du solveur modal ------------------------- Le mot-clé OPTION permet de choisir le type de recherche: * OPTION='PLUS_PETITE': les NMAX_CRIT vecteurs propres et valeurs propres correspondant aux plus petites valeurs propres; * OPTION='BANDE': les vecteurs propres et valeurs propres pour les chargements critiques compris dans la bande CHAR_CRIT; * OPTION='CALIBRATION' donne juste le nombre de valeurs propres pour les chargements critiques compris dans la bande CHAR_CRIT;. Le mot-clé COEF_DIM_ESPACE (5 est sa valeur par défaut) permet à l'utilisateur de contrôler la taille du sous-espace dans la méthode de Sorensen (la taille du sous espace est égale à la multiplication de ce coefficient par la valeur nbfreq renseignée précédemment). L'intérêt étant de pouvoir réduire cet espace dans le cas où l'on utilise en plus l'opérande DDL_STAB. Sélection des matrices ---------------------- Le mot-clé RIGI_GEOM ('OUI' par défaut) donne le choix à l'utilisateur entre effectuer une recherche de valeurs propres généralisées avec la matrice géométrique au second membre ou non (cas des grandes déformations). Choisir 'NON' signifie que la matrice de raideur géométrique est remplacée par l'identité. Le mot-clé MODI_RIGI ('NON' par défaut) permet de préciser si la matrice de rigidité globale (et la matrice de rigidité géométrique si elle est utilisée) doit être modifiée au niveau des degrés de liberté que l'on liste avec DDL_EXCLUS. Cela permet, par exemple, pour des modèles mixtes, de ne mener l'analyse de stabilité en excluant certains type de degré de liberté et en corrigeant les matrices de rigidité globales pour que les termes liés à ces degrés de liberté ne : viennent pas perturber la recherche d'instabilité. On donne d'autres détails dans le paragraphe consacré à DDL_EXCLUS. Si la liste de degrés de liberté exclus est vide, alors MODI_RIGI ne sert donc à rien. Sélection des degrés de liberté ------------------------------- Le mot-clé DDL_EXCLUS (liste vide par défaut) désigne l'ensemble des degrés de liberté que l'on souhaite mettre à 0 dans le second membre de la recherche de valeurs propres généralisées. Il ne peut être utilisé que sous la condition RIGI_GEOM = 'NON' ou si MODI_RIGI = 'OUI'. Dans le cas RIGI_GEOM = 'NON' et MODI_RIGI = 'NON', cela permet d'imposer des conditions supplémentaires de compatibilité sur les modes propres et ainsi d'effectuer une recherche sélective. Cela est particulièrement adapté aux formulations mixtes. Dans ce cas, l'élimination des multiplicateurs de Lagrange au second membre, permet d'exclure les modes parasites à dominantes Lagrangiennes et de valeurs propres négatives. Dans le cas MODI_RIGI= 'OUI', cela permet de modifier la matrice de rigidité (et si besoin est la matrice de rigidité géométrique) de manière à mener l'analyse de stabilité en ne tenant pas compte des degrés de liberté exclus. Par exemple, on doit utiliser cette option pour les modèles fluide-structure couplés (formulation :math:`(u,p,\phi )` , *confer* documentation [:ref:`R4.02.02 `], qui est utilisable avec DYNA_NON_LINE mais pas STAT_NON_LINE) pour exclure les degrés de liberté fluide car la matrice de rigidité assemblée globale est singulière pour ces degrés de liberté. Pour plus de détails, l'utilisateur pourra utilement se reporter aux documentations [:ref:`U2.06.11 `] et [:ref:`U2.08.04 `]. Le mot-clé DDL_STAB désigne l'ensemble des degrés de liberté irréversibles dans l'étude de stabilité que l'on souhaite réaliser avec CRIT_STAB . Il ne peut être utilisé que sous les conditions : TYPE='STABILITE' et RIGI_GEOM='NON' . Cela permet d'effectuer une étude de signe sur la dérivée seconde de l'énergie, au chargement considéré, en ne regardant que les perturbations susceptibles d'augmenter les degrés de liberté déclarés dans DDL_STAB . Ceci afin de respecter les conditions mécaniques d'irréversibilité. Sélection des critères ---------------------- Le mot-clé SIGNE permet de spécifier quel type de critère d'instabilité sera utilisé. Ce critère permettra de déclencher un arrêt propre (base sauvegardée) du calcul non-linéaire en cas d'instabilité, si l'utilisateur le précise, sous [:ref:`DEFI_LIST_INST `]. Sans cette déclaration sous DEFI_LIST_INST, même en cas d'instabilité détectée le calcul non-linéaire tentera de se poursuivre: c'est le mode par défaut. Pour les analyses de stabilité sans matrice de rigidité géométrique, le critère d'instabilité est qu'une charge critique tende vers 0, ou change de signe. Dans ce cas, le mot-clé SIGNE ne sert pas. En revanche, pour les cas où la matrice de rigidité géométrique est utilisée, ce mot-clé SIGNE est utile. Avec la valeur par défaut SIGNE = ' POSITIF_NEGATIF' , la solution sera déclarée instable dans les cas où une charge critique devient comprise entre -1 et 1. Si l'utilisateur choisit l'option 'NEGATIF' alors le domaine d'instabilité sera borné par les valeurs -1 et 0. Inversement, l'option 'POSITIF' définira les valeurs 0 et 1 comme limites du domaine d'instabilité. Le choix par défaut est le plus conservatif, mais dans certains cas où l'on peut dédouaner a priori une partie du domaine d'instabilité, alors il est pertinent de modifier le critère avec le mot-clé SIGNE. On rappelle que la charge critique calculée par CRIT_STAB, dans le cas où la matrice de rigidité géométrique est prise en compte, est égale au coefficient multiplicateur du chargement imposé qui rend le problème instable. Donc si la valeur calculée par CRIT_STAB vaut 1 cela signifie qu'on est instable pour la charge imposée. Si on obtient la valeur -1, alors l'instabilité se produira pour une charge imposée de même valeur mais de signe opposé. Donc pour des chargements imposés connus et évoluant de façon monotone, il est aisé de restreindre le domaine d'instabilité car on sait que le chargement ne peut changer de signe. En revanche, pour des chargements cycliques ou quelconques, il est plus sûr de ne pas restreindre le domaine d'instabilité. Le mot-clé PREC_INSTAB permet de définir la tolérance relative avec laquelle on souhaite vérifier le critère d'instabilité, qui est paramétré par le mot-clé précédent SIGNE .