[petsc-users] SNES residual and unknown scaling

anton popov at uni-mainz.de
Wed Jul 22 08:03:34 CDT 2015

On 07/22/2015 12:43 AM, Barry Smith wrote:
>> On Jul 21, 2015, at 5:13 PM, Jed Brown <jed at jedbrown.org> wrote:
>> anton <popov at uni-mainz.de> writes:
>>> Hi,
>>> Applying -snes_mf_operator to a Stokes problem is quite sensitive to
>>> scaling of the velocity and pressure unknown (residual) blocks.
>>> Apart from high-level scaling of the entire problem (which we already
>>> have), it would be also nice to have a sort of low-level scaling
>>> directly in SNES.
>>> Can someone suggest how it can be best implemented (or probably already
>>> implemented) in PETSc.
>> How would you foresee this working?  How would you like to decide on
>> scaling parameters?  Preconditioned or unpreconditioned norm?  Automatic
>> scaling is a tricky business.
>    Anton,
>    Cvode nonlinear solvers, for example, allow the user to provide vectors of weights that are applied to the solution vector and the function vector (I think) inside the "solver". Is that what you are asking for?


> How is that different then the user scaling their solution and function evaluation to match what these vectors of weights do?

It's the same, indeed. I wanted to do exactly this.

> What is the advantage of doing this in the library over the "application"? I am asking because I do not understand myself.

I just thought I'm not the first one to meet this problem and maybe it's 
possible to just attach these scaling vectors to SNES  to be applied 
internally, when Jacobian-vector product is estimated by finite 
difference (it's not really need anywhere else). I agree it's not a 
great deal of implementation. I'll do it myself.

>    Thanks
>     Barry



More information about the petsc-users mailing list