commit:2017:04_22
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2017:04_22 [2017/04/25 18:08] – [Lagrangien Augmenté] wautelet | commit:2017:04_22 [2017/04/26 14:50] (current) – wautelet | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Commit 2017-04-22 ====== | + | ===== Commit 2017-04-26 ====== |
Ce commit est pour améliorer quelques routines liées au contact et pour mettre progressivement mes développements sur la version courante. | Ce commit est pour améliorer quelques routines liées au contact et pour mettre progressivement mes développements sur la version courante. | ||
Line 11: | Line 11: | ||
=== Contexte === | === Contexte === | ||
- | L' | + | L' |
- | Auparavant, nous pouvons choisir cette méthode via l' | + | Auparavant, nous pouvons choisir cette méthode via l' |
=== Méthode interfacée === | === Méthode interfacée === | ||
- | Après un petit refactoring, | + | Après un petit refactoring, |
=== Stratégie de la méthode de Newton Raphson Modifiée | === Stratégie de la méthode de Newton Raphson Modifiée | ||
+ | La différence entre les deux méthodes précitées réside dans la détermination du paramètre residualDecreaseFactor et maxNbOfModifiedNRIterations. Le premier paramètre définit la valeur maximale autorisée de décroissance entre deux résidus successifs sans mise à jour de la matrice de raideur tangente. Si le résidu ne décroit pas suffisamment, | ||
- | La différence entre les deux méthodes réside dans la détermination du paramètre residualDecreaseFactor et maxNbOfModifiedNRIterations. | + | Dans le cas de la méthode PeriodicModifiedNRStiffnessUpdateCriterion, |
- | Finalement, lors de l' | + | Finalement, lors de l' |
=== Récapitulatif === | === Récapitulatif === | ||
Voici les méthodes disponibles et les options associées. | Voici les méthodes disponibles et les options associées. | ||
+ | |||
+ | == NRStiffnessUpdateCriterion (Méthode Par défaut)== | ||
+ | |||
+ | < | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = NRStiffnessUpdateCriterion(mim) | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | == StiffnessUpdateCriterion (Ancienne méthode de mise à jour de la matrice de raideur tangente) == | ||
+ | |||
+ | < | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = StiffnessUpdateCriterion(mim) | ||
+ | stiffUpdate.setNbOfIterationsForStiffUpdate(parameters[' | ||
+ | stiffUpdate.setCpuDependency(parameters[' | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | == CpuModifiedNRStiffnessUpdateCriterion == | ||
+ | |||
+ | < | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = CpuModifiedNRStiffnessUpdateCriterion(mim) | ||
+ | stiffUpdate.setKeepStepStiffness(parameters[' | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | == PeriodicModifiedNRStiffnessUpdateCriterion == | ||
+ | |||
+ | < | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = PeriodicModifiedNRStiffnessUpdateCriterion(mim) | ||
+ | stiffUpdate.setMaxNbOfModifiedNRIterations(parameters[' | ||
+ | stiffUpdate.setResidualDecreaseFactor(parameters[' | ||
+ | stiffUpdate.setKeepStepStiffness(parameters[' | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | Le paramètre keepStepStiffness permet de conserver la matrice de raideur tangente d'un pas de temps à l' | ||
+ | |||
+ | |||
+ | <note important> | ||
===== Lagrangien Augmenté ===== | ===== Lagrangien Augmenté ===== | ||
Line 41: | Line 93: | ||
</ | </ | ||
+ | === Mise à jour de la matrice de raideur tangente === | ||
+ | |||
+ | La raison principale qui m'a poussé à tenter de remettre à jour les méthodes de mise à jour de la matrice de raideur tangente est la combinaison de ce type de stratégie avec la méthode du Lagrangien augmenté. Lors de l' | ||
+ | |||
+ | Ainsi, il semble intéressant d' | ||
+ | |||
+ | === Récapitulatif === | ||
+ | |||
+ | Voici les méthodes disponibles et les options associées. | ||
+ | |||
+ | == AlmCpuModifiedNRStiffnessUpdateCriterion == | ||
+ | |||
+ | < | ||
+ | alm = StandardAugmentedLagrangianManager(metafor) | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = AlmCpuModifiedNRStiffnessUpdateCriterion(mim, | ||
+ | stiffUpdate.setAugmentationThreshold(parameters[' | ||
+ | stiffUpdate.setKeepStepStiffness(parameters[' | ||
+ | stiffUpdate.setKeepAugmentationStiffness(parameters[' | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | == AlmPeriodicModifiedNRStiffnessUpdateCriterion == | ||
+ | |||
+ | < | ||
+ | alm = StandardAugmentedLagrangianManager(metafor) | ||
+ | mim = metafor.getMechanicalIterationManager() | ||
+ | stiffUpdate = AlmPeriodicModifiedNRStiffnessUpdateCriterion(mim, | ||
+ | stiffUpdate.setMaxNbOfModifiedNRIterations(parameters[' | ||
+ | stiffUpdate.setResidualDecreaseFactor(parameters[' | ||
+ | stiffUpdate.setAugmentationThreshold(parameters[' | ||
+ | stiffUpdate.setKeepStepStiffness(parameters[' | ||
+ | stiffUpdate.setKeepAugmentationStiffness(parameters[' | ||
+ | stiffUpdate.setDebug(parameters[' | ||
+ | stiffUpdate.setVerbose(parameters[' | ||
+ | mim.setStiffnessUpdateCriterion(stiffUpdate) | ||
+ | </ | ||
+ | |||
+ | Le paramètre keepAugmentationStiffness permet de conserver la matrice de raideur tangente après une augmentation, | ||
+ | |||
+ | Le paramètre augmentationThreshold permet de spécifier à partir de quel numéro d' | ||
+ | |||
+ | Finalement, l' | ||
+ | | ||
===== Formulation AIC ===== | ===== Formulation AIC ===== | ||
Line 48: | Line 146: | ||
< | < | ||
- | [a]: | + | [a]:mtFEM/ |
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
[r]: | [r]: | ||
</ | </ | ||
Line 55: | Line 170: | ||
< | < | ||
- | [a]: | + | [a]:apps/ |
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
+ | [a]: | ||
[r]: | [r]: | ||
</ | </ | ||
- | --- // | + | --- // |
commit/2017/04_22.1493136498.txt.gz · Last modified: by wautelet