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