[petsc-users] Is there a way to do row/column scaling of jacobian matrix

Barry Smith bsmith at mcs.anl.gov
Mon Apr 4 22:52:47 CDT 2011


   If you are looking for something like this:

When solving F(x) = 0, I would like to be able to scale both the solution
vector x and the residual function vector F, simply by specifying scaling
vectors, sx and sf, say. (These vectors would be the diagonal entries of
scaling matrices Dx and Df.)
I realize this can be achieved, at least in part, within the user residual
function.
This is what I had been doing, until I looked at Denis and Schnabel (sp?),
Brown and Saad, and the KINSOL user guide. It seems one has to take the
scaling matrices into account when computing various norms, when applying the
preconditioner, and when computing the step size, \sigma. No doubt there
are other things I have missed that also need to be done.

http://www.mcs.anl.gov/petsc/petsc-as/developers/projects.html

we don't have support for this (nor do I understand it). Anyways it has been on the "projects to do list" for a very long time; suspect it would require a good amount of futzing around in the source code to add.

   Barry


On Apr 4, 2011, at 10:16 PM, Gong Ding wrote:

> Hi,
> I'd like to scaling the jacobian matrix as if the condition number can be improved.
> That is scaling J by Dl*J*Dr. The scaling diagonal matrix will be changed in each nonlinear iteration.
> 
> Does SNES already exist some interface to do this?
> 
> 
> 
> 
> 



More information about the petsc-users mailing list