Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:integration:general:mim_tim

This is an old revision of the document!


Gestion des itérations (mécaniques et thermiques)

Les paramètres des itérations mécaniques sont imposés par des fonctions relatives à metafor.getMechanicalIterationManager(), alors que les paramètres des itérations thermiques sont imposés par des fonctions relatives à metafor.getThermalIterationManager().

  mim = metafor.getMechanicalIterationManager() 
  tim = metafor.getThermalIterationManager()
  
  mim/tim.setResidualComputationMethod(meth)    
  mim/tim.setVerbose()     
  mim/tim.setResidualTolerance(prec)
  mim/tim.setMaxNbOfIterations(itma)
  mim/tim.setNbOfIterationsForStiffUpdate(irea)
  mim/tim.setMaxNbOfLineSearchIterations(lsma)
  mim/tim.setLineSearchTolerance1(lsp1)
  mim/tim.setLineSearchTolerance2(lsp2)
  mim.setPredictorComputationMethod(predMeth)

meth défini la méthode de calcul du $Residu$.

Method1RedisualComputation(limitNormFactor)

Le résidu est adimensionalisé à partir de la norme des forces externes et des réactions internes (valeur par défaut). On commence par évaluer

$$Rmoy = \frac{||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces||}{nreac} $$

Ensuite, si $$ Rmoy < limitNormFactor $$ on impose $$ Rmoy = limitNormFactor $$

Le résidu est alors adimensionnalisé via

$$Residu = \frac{||FreeResidual||}{nddls*Rmoy}$$

avec

$nddls$ : nombre de degrés de liberté total

$nreac$ : nombre de degrés de liberté fixés (et ayant donc une force de réaction)

Method2ResidualComputation(limitNormFactor)

Le résidu est adimensionalisé à partir du carré des normes des forces externes et des réactions internes. On commence par évaluer

$$Rmoy = \frac{\sqrt{||FreeExternalForces||^2 + ||CstrInternalForces||^2+||CstrInertialForces||^2}}{nreac}$$

Ensuite, si $$ Rmoy < limitNormFactor $$ on impose $$ Rmoy = limitNormFactor $$

Le résidu est alors adimensionnalisé via

$$Residu = \frac{||FreeResidual||}{nddls*Rmoy}$$ avec

$nddls$ : nombre de degrés de liberté total

$nreac$ : nombre de degrés de liberté fixés (et ayant donc une force de réaction)

Method3ResidualComputation(limitNormFactor)

Le résidu est adimensionalisé à partir de la norme des forces externes, d'inertie et des réactions internes (valeur à utiliser de préférence pour le thermique. Attention, … c'est à l'utilisateur de le définir …). Si on a $$ ||FreeExternalForces|| < limitNormFactor $$ alors le résidu vaut $$ Residu = max(|FreeResidual|) $$ Sinon, on évalue $$Rmoy = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces|| $$ et le résidu est adimensionnalisé selon $$Residu = \frac{||FreeResidual||}{nddls*Rmoy}$$

Method4ResidualComputation(limitNormFactor)

Cette méthode correspond à Method1ResidualComputation() sans diviser par le nombre de dofs, donc

$$Rmoy = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces|| $$

Ensuite, si $$ Rmoy < limitNormFactor$$ on impose $$ Rmoy = limitNormFactor $$

Le résidu est alors adimensionnalisé via

$$Residu = \frac{||FreeResidual||}{Rmoy}$$

Method5ResidualComputation(adimFactor)

Le résidu est adimensionalisé par le facteur adimFactor donné par l'utilisateur sans diviser par le nombre de dofs.

$$Residu = \frac{||FreeResidual||}{adimFactor }$$

Method6ResidualComputation(adimFactor)

le résidu est adimensionalisé par le facteur adimFactor donné par l'utilisateur et par le nombre de dofs

$$Residu = \frac{||FreeResidual||}{nddls * adimFactor }$$

avec

$nddls$ : nombre de degrés de liberté total

Paramètres

paramètre Valeur par défaut description
limitNormFactor 1.0 Valeur à partir de laquelle le résidu n'est plus divisé par Rmoy (à adapter en fonction du niveau de charge à l'aide de la sortie de verbose)
adimFactor - Facteur d'adimensionalisation fixe pour les méthodes 5 et 6 (pas de défaut : obligation de définir le facteur pour ces méthodes)
prec 1.0E-4 précision à atteindre sur le résidu
itma 7 nombre maximal d'itérations de Newton-Raphson (ce nombre est corrigé en interne si le critère automatique de réactualisation de la matrice est utilisé). Les itérations sont aussi stoppées si le résidu ne diminue pas sur 6 itérations
irea 1 = 1 : la matrice de raideur est actualisée à chaque itération
> 1 : la matrice est actualisée automatiquement si le numéro de l'itération est inférieur à irea. Le critère est basé sur une vitesse de convergence et un rapport des temps CPU (nécessite MDE_ICPU=1)
lsma 0 nombre maximal d'itérations de line-search
lsp1 1.0 précision requise sur le résidu du line search
lsp2 1.E-8 critère d'arrêt quand le paramètre du line search n'évolue plus suffisamment
predMeth EXTRAPOLATION_DEFAULT EXTRAPOLATION_DEFAULT = Extrapolation par défaut du schéma (par exemple méthode de calcul du prédicteur des déplacements par les formules de Newmark dans le cas du schéma alpha-généralisé)
EXTRAPOLATION_MRUA = Méthode de calcul du prédicteur des déplacements par les formules du MRUA (atuellement seulement possible pour les algorithmes alpha-généralisés)
EXTRAPOLATION_ZERO = Les positions sont les anciennes positions, la vitesse (et l'accélération pour les schémas dynamiques) sont nulles (atuellement seulement possible pour les algorithmes quasi-statiques et algorithmes alpha-généralisés) .
doc/user/integration/general/mim_tim.1373635719.txt.gz · Last modified: 2016/03/30 15:22 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki