Hi,

I'm new to the list.  I've been using PETSc as a linear solver for a few years, 
and now I'm starting to get into MOOSE which is a finite-element framework 
which uses PETSc much more optimally. 

I've got a problem where I'm using viss or virs (petsc3.3) to enforce a lower 
bound on my solution.  The actual application is unsaturated Darcy-Richards 
single-phase flow - slow water flow through a porous medium.  As water is 
withdrawn from a region, the pressure drops, but physically the water pressure 
is bounded from below.  The DE ensures this via a nonlinear relative 
permeability function which goes to zero at the lower-bound of pressure: 
permeability=0 means no water can flow from the region.  However, in the 
linearization, the nonlinear solver won't know about this function going to 
zero (unless it just happens to end up right at the lower bound), so often the 
pressure goes into the unphysical region (pressure < lower) during the solution 
process.  Therefore I'm using the VI solvers.

First question - the -snes_vi_type appears to make no difference at all.  
What's it supposed to do?

Second question - So far, viss has converged always, but virs sometimes gives 
problems.  I've read in one email-thread that virs is preferred.  Why is that?  
I'm basing my comment on only about 10 tests, but I'm still interested in your 
replies.  I'm pretty sure my jacobian is correct, as I have tested it using 
-snes_type=test, and also I have run using finite-differences, and still got 
the behaviour below.  This is the type of behaviour I get:

DT: 2.885464e+03
 Solving time step 48, time=406142.00...
  Initial |residual|_2 = 1.536061e-01
  NL step  0, |residual|_2 = 1.536061e-01
  0 SNES VI Function norm 1.536061428302e-01 Active lower constraints 0/2 upper 
constraints 0/0 Percent of total 0 Percent of bounded 0
    0 KSP Residual norm 1.536061428302e-01
    1 KSP Residual norm 5.954022644970e-05
    2 KSP Residual norm 1.874684877465e-07
  NL step  1, |residual|_2 = 2.508324e-02
  1 SNES VI Function norm 2.508323951297e-02 Active lower constraints 0/2 upper 
constraints 0/0 Percent of total 0 Percent of bounded 0
    0 KSP Residual norm 2.508323951297e-02
    1 KSP Residual norm 1.744363683367e-05
    2 KSP Residual norm 9.541678264164e-09
Nonlinear solve did not converge due to DIVERGED_LOCAL_MIN iterations 1
Solve Did NOT Converge!
Solve failed... cutting timestep
DT: 1.442732e+03
 Solving time step 48, time=404699.00...
  Initial |residual|_2 = 1.536061e-01
  NL step  0, |residual|_2 = 1.536061e-01
  0 SNES VI Function norm 1.536061428302e-01 Active lower constraints 0/2 upper 
constraints 0/0 Percent of total 0 Percent of bounded 0
    0 KSP Residual norm 1.536061428302e-01
    1 KSP Residual norm 7.144446293019e-05
    2 KSP Residual norm 2.783195631751e-07
  NL step  1, |residual|_2 = 2.513316e-02
  1 SNES VI Function norm 2.513315575633e-02 Active lower constraints 0/2 upper 
constraints 0/0 Percent of total 0 Percent of bounded 0
    0 KSP Residual norm 2.513315575633e-02
    1 KSP Residual norm 2.187002762768e-05
    2 KSP Residual norm 1.996619992363e-08
Nonlinear solve did not converge due to DIVERGED_LINE_SEARCH iterations 1
Solve Did NOT Converge!
Solve failed... cutting timestep



Ph: +61 7 3327 4497.  Fax: +61 7 3327 4666
Queensland Centre for Advanced Technologies
PO Box 883, Kenmore, Qld, 4069  
 

Reply via email to