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) mim.setConstrainedDofsVAComputationMethod(VACMeth) mim/tim.setPreviousResidualsDecreaseCriterion()
où 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=||FreeExternalForces||+||CstrInternalForces||+||CstrInertialForces||nreac
Ensuite, si Rmoy<limitNormFactor on impose Rmoy=limitNormFactor
Le résidu est alors adimensionnalisé via
Residu=||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=√||FreeExternalForces||2+||CstrInternalForces||2+||CstrInertialForces||2nreac
Ensuite, si Rmoy<limitNormFactor on impose Rmoy=limitNormFactor
Le résidu est alors adimensionnalisé via
Residu=||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=||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=||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=||FreeResidual||adimFactor
Method6ResidualComputation(adimFactor)
le résidu est adimensionalisé par le facteur adimFactor
donné par l'utilisateur et par le nombre de dofs
Residu=||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) . |
||
VACMeth | VAC_SCHEMECONSISTANT | VAC_SCHEMECONSISTANT : Calcul des vitesses & accélérations via les formules de newmark |
VAC_BACKWARDEULER : Calcul des vitesses & accélérations selon un schéma Euler Arrière (pour stabiliser le newmark pur avec ddl à déplacement imposé non nul. voir thèse JPP pg VIII.28) |