getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Getfem-users] Questions about line search heuristics available with


From: Konstantinos Poulios
Subject: Re: [Getfem-users] Questions about line search heuristics available within Getfem
Date: Tue, 25 Oct 2022 08:04:13 +0200

Dear David,

Line search is useful for problems that exhibit sharp discontinuities in slope (semismooth), where an adaptive scheme like line search is better at detecting the discontinuity. For other problems which only have strong nonlinearities (but are smooth), it is normally preferable to perform smaller (adaptive) time/load steps and classical Newton iterations without linesearch. The reason that we use line search for contact problems is that they are semismooth.

Nevertheless, all available linesearch algorithms are ad hoc and not rigorous mathematically for problems involving more than 1 variable. The main problem with line search is that it is based on a residual that is composed of some arbitrary combination of the residuals of all coupled subproblems. Which means that its behavior will be affected by a simple scaling of the variables (e.g. changing units). The relative weight of the residuals of one specific variable in the total residual that is used by the line search, depends on the scaling of the variable which makes the method non-rigorous. For mixed problems, there is a need for a line search method that uses information of all partial residuals for every individual equation in a coupled system. To my knowledge such a method still waits to be developed, but if anyone knows about some algorithm of this kind, available in the literature, we would be glad to implement it.

For your specific 3D contact problem, just use some simple linesearch option as Yves has explained, and try different combinations for the order of the displacements and the multiplier fields. You can also try different integration methods for the contact term. In any case, it is a good idea to start with reproducing this benchmark case
image.png
with the settings that we report in our paper from 2015.

Please feel welcome to come back with follow up questions if you do not manage to reproduce the results.

Best regards
Kostas

On Mon, Oct 24, 2022 at 5:57 AM <yves.renard@insa-lyon.fr> wrote:
Dear David,

My experience in this field is that unfortunately, it is preferable not to need line search too much, in the sense that it allows a convergence starting farther than if one does not use line search (in other words it enlarges the domain of convergence of Newton's algorithm) but when there are big difficulties of convergence, it is better to turn to the problem to be solved: are there problems of conditioning? Is it necessary to make loading steps in the resolution ?, ...

The line search themselves are described in file src/getfem/getfem_model_solvers.h. In fact, basic and simplest are very close and have a similar behavior : The initial step is 1. Since the residual is greater than the initial one multiplied by alpha_max_ratio, the step is multiplied by alpha_mult (typically 0.5). If the step is less than alpha_min, it stops.
This is a quite rough strategy but it is difficult to have a real better one (If you think, you can have a better one, do not hesitate to implement it, the implementation of a line search is very easy). The default line search is also built on the same principle, but when it does not converge, it automatically tries to split the loading into some sub steps.
(concerning quadratic and systematic line search, I do not remember clearly .... !)

Best regards,

Yves




De: "David Danan" <daviddanan9021@gmail.com>
À: "getfem-users" <getfem-users@nongnu.org>
Envoyé: Vendredi 21 Octobre 2022 09:35:16
Objet: [Getfem-users] Questions about line search heuristics available within Getfem

Dear Getfem users,

i have quite a broad question about the calibration of parameters related to the line search in the solve method
I am trying to solve a collection of 3D problems that involve hyperelasticity, unilateral contact and friction. In a 2D case, i could manage without it but in 3D, it seems slightly more complicated and i hope some insight regarding the line search could help the convergence (i am using multipliers for the contact and playing with the augmentation parameter did not help).

For instance, according to the documentation, there are 4 methods available:
select explicitely the line search method used for the linear systems (the default value is ‘default’). Possible values are ‘simplest’, ‘systematic’, ‘quadratic’ or ‘basic’.
Could you describe the differences between these methods? In which context should I rather use one instead of another?

In previous discussions, there were some examples, here is one
model.solve('max_res', 1E-5, 'noisy','max_iter',60, 'lsolver', 'MUMPS',
    'lsearch', 'simplest', 'alpha max ratio', 1.5, 'alpha min', 0.2,
'alpha mult', 0.6)


Are alpha max ratio, alpha min and alpha mult the only parameters we have control over, for a given line search method? Are the other relevant? Do you have some advices regarding the choice of these parameters?

and that is quite useful to some extent but some help would be more than welcome, in particular related to "user experience".

Thanks in advance,
David


reply via email to

[Prev in Thread] Current Thread [Next in Thread]