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 > > > > > > >