5. Nonlinear solver settings#
5.1. Choice of method#
There are three main categories of non-linear solvers available:
Newton’s method (and its variants);
< http://petsc.org>* the non-linear solvers called `#dnt_eoenokfhbkllklklgfbamhhkfjmppaColbj`_ (Scalable Nonlinear Equations Solvers) from the library` < https://petsc.org/release/manual/snes/> #dnt_ajcnkgalefikgalefikkammobKdchepelblcagi`_; * the « RASPEN » solver (Restricted Additive Schwarz Preconditioned Exact Newton) which is based on a non-linear domain decomposition approach.
The solver is selected by the keyword METHODE.
5.2. Newton’s method and its variants#
When METHODE = » NEWTON « , we use the Newton-Raphson algorithm to solve the problem (see [R5.03.01]).
It is the keyword factor NEWTON (only one occurrence) that allows you to regulate the various settings.
The prediction phase (Cf. [R5.03.01]) is intended to calculate an estimate of the displacement field in order to allow Newton’s method to converge more quickly. When the keyword is absent, it is the speed tangent matrix (option RIGI_MECA_TANG) that is used if one has chosen for Newton’s method a PREDICTION =” TANGENTE “, and it is the elastic matrix (option RIGI_MECA) which is used if PREDICTION =” ELASTIQUE “has been chosen.
The REAC_INCR =mf keyword allows you to control how often the matrix is updated compared to time steps.
- notes
If the matrix used in prediction corresponds to the elastic calculation, it is evaluated only once at the initial moment, at the start of the algorithm, unless the elastic characteristics depend on time or a control variable such as temperature that depends on time
This « elastic » matrix is calculated using Young’s modulus given under the keyword ELAS of the [U4.43.01] operator, not the original slope of the traction curve given under the keyword TRACTION (and who is used in the expression behavioral relationships (VMIS_ISOT_TRAC, VMIS_ECMI_TRAC, and VISC_ISOT_TRAC)
The matrix used for the global iterations of the method is the tangent (consistent) matrix [R5.03.01] if MATRICE =” TANGENTE “or the elastic matrix if MATRICE =” ELASTIQUE”.
The REAC_ITER =it keyword allows you to control how often the matrix is updated compared to Newton iterations. So at Newton’s first iteration, we only reassemble the tangent matrix if it is equal to 1: otherwise the matrix used in the prediction phase is retained. By convention, if it is equal to 0 the matrix is not reevaluated during the entire time period.
5.3. Method « SNES »#
< http://petsc.org>When METHODE = » SNES « , we use the non-linear solver `#dnt_lagpipaoonghkjhcoflkogejoeggnjnnnn`_ from the library` < https://petsc.org/release/manual/snes/> #dnt_kagifomaadlmklmkboiblkloeclclgmcdmk`_. It is a very generic implementation of many different solvers ranging from the classical Newton method, to the BFGS method or the Picard method as well as all the possible combinations of these (see [bia1] _). The configuration is done by a list of options transmitted in the form of character strings by the keyword OPTION_PETSC of the keyword factor SOLVEUR (see [U4.50.01]). Its use is reserved for advanced users.
5.4. Method « RASPEN »#
The « RASPEN » method is based on a non-linear domain decomposition method. It can only be used in the HPC context. It is based on 2 levels of non-linear solvers:
a local level, where a non-linear problem is solved on each sub-domain, without communication with its neighbors and therefore in a parallel and asynchronous way;
a global level, which uses previous local resolutions to facilitate the resolution of the problem in question.
As for the « SNES » method, the configuration is done by a list of options transmitted in the form of strings of characters by the OPTION_PETSC keyword of the keyword factor SOLVEUR. Local solver options are prefixed with lsnes_
while global solver options are prefixed with gsnes_
.
Conveniently, these options can be defined as follows:
MyOptions = (
"-ksp_type fgmres -ksp_monitor -pc_type or -pc_factor_mat_solver_type mumps"
+ "-prefix_push lsnes_"
+ "-snes_monitor -snes_linesearch_type basic -snes_rtol 1.e-8 -snes_atol 1.e-50 -snes_max_it 5"
+ "-prefix_pop"
+ "-prefix_push gsnes_"
+ "-snes_linesearch_type basic -ksp_monitor -ksp_rtol 1.e-7 -ksp_atol 1.e-50 -snes_max_it 20"
+ "-prefix_pop"
)
The first line expresses the fact that the Krylov method used is the GMRes flexible method (fgmres) that will be monitored and that the preconditioner will be MUMPS. Next, we want to monitor the local nonlinear solver, which is Newton’s method by default; we specify that the linear search is not used (basic means that we use a step of 1.) and we give the criteria of relative and absolute convergence as well as the maximum number of iterations. The same is then done for the global nonlinear solver.
For any clarification, the reader is referred to [bib2] _. Its use is reserved for advanced users.
5.5. Linear search#
Linear research can improve the convergence of Newton’s method (Cf. [R5.03.01] for more details).
- Note:
It is not recommended to use linear search with GROT_GDEP deformations, for models COQUE_3D and in the presence of contact.
This keyword allows you to choose the linear search method, that is to say the algorithm of search for the zero of the functional (see [R5.03.01]). The method is a one-dimensional secant method.
The parameters ITER_LINE_MAXI =itelin and RESI_LINE_RELA =reslin are the linear search parameters. We give the maximum number of iterations itelin to perform and the precision reslin to reach to achieve the convergence of linear research.
The keywords RHO_MIN, RHO_MAX, and RHO_EXCL set the interval \(I\) in which to calculate the coefficient \(\rho\): linear research, in the form