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)
où meth
défini la méthode de calcul du .
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
Ensuite, si on impose
Le résidu est alors adimensionnalisé via
avec
: nombre de degrés de liberté total
: 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
Ensuite, si on impose
Le résidu est alors adimensionnalisé via
avec
: nombre de degrés de liberté total
: 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 alors le résidu vaut Sinon, on évalue et le résidu est adimensionnalisé selon
Method4ResidualComputation(limitNormFactor)
Cette méthode correspond à Method1ResidualComputation()
sans diviser par le nombre de dofs, donc
Ensuite, si on impose
Le résidu est alors adimensionnalisé via
Method5ResidualComputation(adimFactor)
Le résidu est adimensionalisé par le facteur adimFactor
donné par l'utilisateur sans diviser par le nombre de dofs.
Method6ResidualComputation(adimFactor)
le résidu est adimensionalisé par le facteur adimFactor
donné par l'utilisateur et par le nombre de dofs
avec
: 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) |