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" <daviddanan9...@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? 

It seems the implementation is here 
[ 
http://download-mirror.savannah.gnu.org/releases/getfem/doc/getfem_reference/getfem__model__solvers_8h_source.html
 | 
http://download-mirror.savannah.gnu.org/releases/getfem/doc/getfem_reference/getfem__model__solvers_8h_source.html
 ] 
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