summary: Allow better control of the convergence in the StandardElasticity brick --> Allow better control of the convergence in the StandardElastoviscoPlascity brick
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Newton steps rejections based on the change of the flow direction between two successive estimates
Some stress criteria (Hosford 1972, Barlat 2004, Mohr-Coulomb) shows sharp edges that may cause the failure of the standard Newton algorithm, due to oscillations in the prediction of the flow direction.
Rejecting Newton steps leading to a too large variation of the flow direction between the new estimate of the flow direction and the previous estimate is a cheap and efficient method to overcome this issue. This method can be viewed as a bisectional linesearch based on the Newton prediction: the Newton steps magnitude is divided by two if its results to a too large change in the flow direction.
More precisely, the change of the flow direction is estimated by the computation of the cosine of the angle between the two previous estimates:
with (\norm{\tenseur{n}}=\sqrt{\tenseur{n}\,\colon\,\tenseur{n}}).
The Newton step is rejected if the value of (\cos\paren{\alpha_{\tenseur{n}}}) is lower than a user defined threshold. This threshold must be in the range (\left[-1:1\right]), but due to the slow variation of the cosine near (0), a typical value of this threshold is (0.99) which is equivalent to impose that the angle between two successive estimates is below (8\mbox{}^{\circ}).
During the Newton iterations, the current estimate of the equivalent stress (\sigmaeq) may be significantly higher than the elastic limit (R). This may lead to a divergence of the Newton algorithm.
One may reject the Newton steps leading to such high values of the elastic limit by specifying a relative threshold denoted (\alpha), i.e. if (\sigmaeq) is greater than (\alpha\,\cdot\,R). A typical value for (\alpha) is (1.5). This relative threshold is specified by the maximum_equivalent_stress_factor option.
In some cases, rejecting steps may also lead to a divergence of the Newton algorithm, so one may specify a relative threshold (\beta) on the iteration number which desactivate this check, i.e. the check is performed only if the current iteration number is below (\beta\,\cdot\,i_{\max{}}) where (i_{\max{}}) is the maximum number of iterations allowed for the Newton algorithm. A typical value for (\beta) is (0.4). This relative threshold is specified by the equivalent_stress_check_maximum_iteration_factor option.
Newton steps rejections based on the change of the flow direction between two successive estimates
Some stress criteria (Hosford 1972, Barlat 2004, Mohr-Coulomb) shows sharp edges that may cause the failure of the standard Newton algorithm, due to oscillations in the prediction of the flow direction.
Rejecting Newton steps leading to a too large variation of the flow direction between the new estimate of the flow direction and the previous estimate is a cheap and efficient method to overcome this issue. This method can be viewed as a bisectional linesearch based on the Newton prediction: the Newton steps magnitude is divided by two if its results to a too large change in the flow direction.
More precisely, the change of the flow direction is estimated by the computation of the cosine of the angle between the two previous estimates:
[
\cos\paren{\alpha_{\tenseur{n}}}=\dfrac{\tenseur{n}\,\colon\,\tenseur{n}_{p}}{\norm{\tenseur{n}}\,\norm{\tenseur{n}}}
]
with (\norm{\tenseur{n}}=\sqrt{\tenseur{n}\,\colon\,\tenseur{n}}).
The Newton step is rejected if the value of (\cos\paren{\alpha_{\tenseur{n}}}) is lower than a user defined threshold. This threshold must be in the range (\left[-1:1\right]), but due to the slow variation of the cosine near (0), a typical value of this threshold is (0.99) which is equivalent to impose that the angle between two successive estimates is below (8\mbox{}^{\circ}).
Example
Maximum equivalent stress in the
PlasticflowDuring the Newton iterations, the current estimate of the equivalent stress (\sigmaeq) may be significantly higher than the elastic limit (R). This may lead to a divergence of the Newton algorithm.
One may reject the Newton steps leading to such high values of the elastic limit by specifying a relative threshold denoted (\alpha), i.e. if (\sigmaeq) is greater than (\alpha\,\cdot\,R). A typical value for (\alpha) is (1.5). This relative threshold is specified by the
maximum_equivalent_stress_factoroption.In some cases, rejecting steps may also lead to a divergence of the Newton algorithm, so one may specify a relative threshold (\beta) on the iteration number which desactivate this check, i.e. the check is performed only if the current iteration number is below (\beta\,\cdot\,i_{\max{}}) where (i_{\max{}}) is the maximum number of iterations allowed for the Newton algorithm. A typical value for (\beta) is (0.4). This relative threshold is specified by the
equivalent_stress_check_maximum_iteration_factoroption.Example