commit:2018:01_06
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2018:01_06 [2018/01/06 22:20] – [LineSearch - Initial Balancing et IterationResolution] wautelet | commit:2018:01_06 [2018/01/09 22:53] (current) – wautelet | ||
---|---|---|---|
Line 3: | Line 3: | ||
Ce commit est pour un petit nettoyage de la routine IterationResolution. | Ce commit est pour un petit nettoyage de la routine IterationResolution. | ||
- | ==== IterationResolution ==== | + | ==== LineSearch - Initial Balancing et IterationResolution ==== |
- | J'ai fait entré | + | Si on désire utiliser l'algorithme du line search, cette méthode ne doit pas être activée si nous avons que le résidu du line search est positif c'est à dire que la direction utilisée |
- | J'ai commentarisé | + | Le résidu du line search est une fonction de la taille du pas α le long de la direction de recherche $\mathbf{\Delta x}^{(i)}$ obtenue par la méthode de Newton-Raphson à l' |
- | J'ai formalisé la sortie du Line Search comme les itérations mécaniques : notations scientifiques sous forme exponentielle. | + | $$ res_{LS} \left(\alpha \right) = \mathbf{F}^{OOB}\left(\mathbf{x}^{(i)}+\alpha \mathbf{\Delta x}^{(i)} \right) |
- | ==== LineSearch - Initial Balancing et IterationResolution ==== | + | Dans le cas échéant où $\alpha |
+ | |||
+ | $$ res_{LS} \left(0 \right) | ||
- | Si on désire utiliser l' | + | Puisque |
- | Le résidu du line search est une fonction de la taille du pas $\alpha$ le long de la direction de recherche | + | $$\mathbf{K}_{T}^{(i)} . \mathbf{\Delta x}^{(i)} |
- | $$ res_{LS}^{(k)} \left(\alpha^{k} \right) | + | Ainsi, nous avons que le résidu du line search est négatif en α=0 si la matrice de raideur tangente est définie positive : |
- | Dans le cas échéant où $\alpha^{k=0} = 0$, nous avons que | + | $$ res_{LS} |
+ | <note important> | ||
+ | < | ||
+ | if (res_k > 0.0) // test Lpx (pas logique mais snecmaRupt + DSS pivot nul => res > 0 ...) | ||
+ | { | ||
+ | rester_ls = false; | ||
+ | WARNING_MESSAGE(" | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | ==== Nettoyage du flag forcesAreComputed de IterationManager ==== | ||
- | Puisque la direction | + | Ce flag est utilisée principalement pour éviter |
- | $$\mathbf{K}_{T}^(i) \mathbf{\Delta | + | < |
+ | *** STEP 28: t= 2 - dt= 0.015238 - CPU= 1.72s/ | ||
+ | |||
+ | mechanical iteration | ||
+ | cpuRatio = 4 reactualisation = 1 iterationIsRefused = 0 | ||
+ | - Line search : iteration | ||
+ | - Line search : iteration | ||
+ | mechanical iteration | ||
+ | </ | ||
- | Dans ce cas de figure, nous devons utiliser | + | On comprend directement l' |
- | ==== Nettoyage | + | Le plus gros problème est qu'il faut garantir quelque soit le comportement des algorithmes utilisés pour la résolution d'un pas de temps, que ce flag soit dans un état cohérent, ce qui est loin d' |
+ | |||
+ | <note important> | ||
===== Fichiers ajoutés/ | ===== Fichiers ajoutés/ |
commit/2018/01_06.1515273608.txt.gz · Last modified: by wautelet