On 07/22/2015 12:43 AM, Barry Smith wrote:
On Jul 21, 2015, at 5:13 PM, Jed Brown <[email protected]> wrote:
anton <[email protected]> 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?
Yes.
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
Thanks,
Anton