[petsc-users] SNESVI convergence spped

Ataollah Mesgarnejad amesga1 at tigers.lsu.edu
Sun Jan 22 12:46:56 CST 2012


Thanks Barry,

Yes I'm using 3.2. I will change to dev and get back to you.

Ata
On Jan 22, 2012, at 11:50 AM, Barry Smith wrote:

> 
> 
>   Ata,
> 
>     Sorry for the delay in responding.
> 
>     It looks like you are using petsc-3.2, is that correct? You should switch to petsc-dev and rerun. The vi solvers are actively being developed and have some improvements since the release.   Please send the same convergence information (just the text file of output) when running with -ksp_monitor_true_residual -snes_vi_monitor (not the binary files).
> 
> 
>   Barry
> 
> On Jan 18, 2012, at 9:40 AM, Ataollah Mesgarnejad wrote:
> 
>> Dear all,
>> 
>> Just realized that my email didn't go through because of my attachments, so here it is:
>> 
>> Sorry if it took a bit long to do the runs, I wasn't feeling well yesterday. 
>> 
>> I attached the output I get from a small problem (90elements, 621 DOFs )  with different SNESVI types (exodusII and command line outputs). As you can see rsaug exits with an error but ss and rs run (and their results are similar). However, after V goes to zero at a cross section line searches for both of them (rs,ss) fail?! Also as you can see KSP converges for every step.
>> 
>> These are the tolerances I pass to SNES:
>>       user->KSP_default_rtol	= 1e-12;
>> 	user->KSP_default_atol	= 1e-12;
>> 	user->KSP_default_dtol	= 1e3;
>> 	user->KSP_default_maxit   = 50000;
>> 	user->psi_default_frtol        = 1e-8;   // snes_frtol
>> 	user->psi_default_fatol        = 1e-8;  //snes_fatol
>> 	user->psi_maxit 		= 500;   //snes_maxit
>> 	user->psi_max_funcs 	= 1000; //snes_max_func_its
>> 
>> Ps: files are here: http://cl.ly/0Z001Z3y1k0Q0g0s2F2R
>> 
>> thanks,
>> Ata
>> 
>> 
>> On Jan 17, 2012, at 8:16 AM, Barry Smith wrote:
>> 
>>> 
>>> Blaise,
>>> 
>>>  Let's not solve the problem until we know what the problem is.  -snes_vi_monitor first then think about the cure
>>> 
>>>  Barry
>>> 
>>> On Jan 16, 2012, at 8:49 PM, Blaise Bourdin wrote:
>>> 
>>>> Hi,
>>>> 
>>>> Ata and I are working together on this. The problem he describes is 1/2 of the iteration of our variational fracture code. 
>>>> In our application, E is position dependant, and typically becomes very large along very thin bands with width of the order of epsilon in the domain. Essentially, we expect that V will remain exactly equal to 1 almost everywhere, and will transition to 0 on these bands. Of course, we are interested in the limit as epsilon goes to 0. 
>>>> 
>>>> If the problem indeed is that it takes many steps to add the degrees of freedom. Is there any way to initialize manually the list of active constraints? To give you an idea, here is a link to a picture of the type of solution we expect. blue=1
>>>> https://www.math.lsu.edu/~bourdin/377451-0000.png
>>>> 
>>>> Blaise
>>>> 
>>>> 
>>>> 
>>>>> It seems to me that the problem is that ultimately ALL of the degrees of freedom are in the active set,
>>>>> but they get added to it a few at a time -- and there may even be some "chatter" there -- necessitating many SNESVI steps. 
>>>>> Could it be that the regularization makes things worse? When \epsilon \ll 1, the unconstrained solution is highly oscillatory, possibly further exacerbating the problem. It's possible that it would be better if V just diverged uniformly.  Then nearly all of the degrees of freedom would bump up against the upper obstacle all at once.  
>>>>> 
>>>>> Dmitry.
>>>>> 
>>>>> On Mon, Jan 16, 2012 at 8:05 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>>> 
>>>>> What do you get with -snes_vi_monitor   it could be it is taking a while to get the right active set.
>>>>> 
>>>>> Barry
>>>>> 
>>>>> On Jan 16, 2012, at 6:20 PM, Ataollah Mesgarnejad wrote:
>>>>> 
>>>>>> Dear all,
>>>>>> 
>>>>>> I'm trying to use SNESVI to solve a quadratic problem with box constraints. My problem in FE context reads:
>>>>>> 
>>>>>> (\int_{Omega} E phi_i phi_j + \alpha \epsilon dphi_i dphi_j dx) V_i - (\int_{Omega} \alpha \frac{phi_j}{\epsilon} dx) = 0 , 0<= V <= 1
>>>>>> 
>>>>>> or:
>>>>>> 
>>>>>> [A]{V}-{b}={0}
>>>>>> 
>>>>>> here phi is the basis function, E and \alpha are positive constants, and \epsilon is a positive regularization parameter  in order of mesh resolution. In this problem we expect V  =1 a.e. and go to zero very fast at some places.
>>>>>> I'm running this on a rather small problem (<500000 DOFS) on small number of processors (<72). I expected SNESVI to converge in couple of iterations (<10) since my A matrix doesn't change, however I'm experiencing a slow convergence (~50-70 iterations). I checked KSP solver for SNES and it converges with a few iterations.
>>>>>> 
>>>>>> I would appreciate  any suggestions or observations to increase the convergence speed?
>>>>>> 
>>>>>> Best,
>>>>>> Ata
>>>>> 
>>>>> 
>>>> 
>>>> -- 
>>>> Department of Mathematics and Center for Computation & Technology
>>>> Louisiana State University, Baton Rouge, LA 70803, USA
>>>> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>> 
> 



More information about the petsc-users mailing list