[petsc-users] how to control snes_mf_operator

Zou (Non-US), Ling ling.zou at inl.gov
Tue Dec 11 16:59:10 CST 2012


ok. I tried. Seems there is no effect.

./my-moose-project -i input.i -snes_type test -mat_mffd_umin
1.e-10 -snes_test_display > out

Also, the webpage says:
*-mat_mffd_unim <umin>

*I am not quite sure if 'unim' is a typo. I tried both 'umin' and 'unim'
anyway.

Ling



On Tue, Dec 11, 2012 at 3:50 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Tue, Dec 11, 2012 at 2:40 PM, Zou (Non-US), Ling <ling.zou at inl.gov>
> wrote:
> > Hmm... I have an 'approximated' analytical Jacobian to compare. And I did
> > this:
> >
> > ./my-moose-project -i input.i -snes_type test -snes_test_display > out
> >
> > I actually found out that the PETSc provided FD Jacobian gives 'nan'
> > numbers, while my approximated Jacobian does not give 'nan' at the same
> > positions.
> >
> > As we discussed in the previous emails, the perturbation on U0 is too
> large,
> > which makes 'nan' appear in the FD Jacobians. So....I am trying to use a
> > smaller '-mat_mffd_err <number here>', to see if I could get an easy fix
> by
> > now, like this,
>
> I don't think 'err' has anything to do with it. If you read the page I
> mailed you, I
> believe umin can be made very small.
>
>    Matt
>
> > ./my-moose-project -i input.i -snes_type test -md_mffd_err 1.e-10
> > -snes_test_display > out
> >
> > seems not working :-(
> > no matter what number I give to -md_mffd_err, the print out results seem
> not
> > changed.
> >
> > But of course, non-dimensionalization might be the ultimate solution.
> >
> > Ling
> >
> > On Tue, Dec 11, 2012 at 3:29 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
> >>
> >> On Tue, Dec 11, 2012 at 2:19 PM, Zou (Non-US), Ling <ling.zou at inl.gov>
> >> wrote:
> >> > Matt, one more question.
> >> >
> >> > Can I combine the options
> >> > -snes_type test
> >> > and
> >> > -mat_mffd_err 1.e-10
> >> > to see the effect?
> >>
> >> I do not understand your question. test does compare the analytic and
> >> FD Jacobian
> >> actions, but I thought you did not have an analytic action.
> >>
> >>    Matt
> >>
> >> > Best,
> >> >
> >> > Ling
> >> >
> >> >
> >> >
> >> > On Tue, Dec 11, 2012 at 2:47 PM, Zou (Non-US), Ling <ling.zou at inl.gov
> >
> >> > wrote:
> >> >>
> >> >> thank you Matt. I will try to figure it out. Non-dimensionalization
> is
> >> >> certainly something worth to try.
> >> >>
> >> >> Best,
> >> >>
> >> >> Ling
> >> >>
> >> >>
> >> >> On Tue, Dec 11, 2012 at 2:41 PM, Matthew Knepley <knepley at gmail.com>
> >> >> wrote:
> >> >>>
> >> >>> On Tue, Dec 11, 2012 at 1:40 PM, Matthew Knepley <knepley at gmail.com
> >
> >> >>> wrote:
> >> >>> > On Tue, Dec 11, 2012 at 1:34 PM, Zou (Non-US), Ling
> >> >>> > <ling.zou at inl.gov>
> >> >>> > wrote:
> >> >>> >> Dear All,
> >> >>> >>
> >> >>> >> I have recently had an issue using snes_mf_operator. I've tried
> to
> >> >>> >> figure it
> >> >>> >> out from PETSc manual and PETSc website but didn't get any luck,
> so
> >> >>> >> I
> >> >>> >> submit
> >> >>> >> my question here and hope some one could help me out.
> >> >>> >>
> >> >>> >> (1)
> >> >>> >> =================================================================
> >> >>> >> A little bit background here: my problem has 7 variables, i.e.,
> >> >>> >>
> >> >>> >> U = [U0, U1, U2, U3, U4, U5, U6]
> >> >>> >>
> >> >>> >> U0 is in the order of 1.
> >> >>> >> U1, U2, U4 and U5 in the oder of 100.
> >> >>> >> U3 and U6 are in the order of 1.e8.
> >> >>> >>
> >> >>> >> I believe this should be quite common for most PETSc users.
> >> >>> >>
> >> >>> >> (2)
> >> >>> >> =================================================================
> >> >>> >> My problem here is, U0, by its physical meaning, has to be
> limited
> >> >>> >> between 0
> >> >>> >> and 1. When PETSc starts to perturb the initial solution of U
> >> >>> >> (which I
> >> >>> >> believe properly set) to approximate the operation of J (dU), the
> >> >>> >> U0
> >> >>> >> get a
> >> >>> >> perturbation size in the order of 100, which causes problem as U0
> >> >>> >> has
> >> >>> >> to be
> >> >>> >> smaller than 1.
> >> >>> >>
> >> >>> >> From my observation, this same perturbation size, say eps, is
> >> >>> >> applied
> >> >>> >> on all
> >> >>> >> U0, U1, U2, etc. <=== Is this the default setting?
> >> >>> >> I also guess that this eps, in the order of 100, is determined
> from
> >> >>> >> my
> >> >>> >> initial solution vector and other related PETSc parameters.  <===
> >> >>> >> Is
> >> >>> >> my
> >> >>> >> guessing right?
> >> >>> >>
> >> >>> >> (3)
> >> >>> >> =================================================================
> >> >>> >> My question: I'd like to avoid a perturbation size ~100 on U0,
> >> >>> >> i.e., I
> >> >>> >> have
> >> >>> >> to limit it to be ~0.01 (or some small number) to avoid the U0 >
> 1
> >> >>> >> situation. Is there any way to control that?
> >> >>> >> Or, is there any advanced option to control the perturbation size
> >> >>> >> on
> >> >>> >> different variables when using snes_mf_operator?
> >> >>> >
> >> >>> > Here is a description of the algorithm for calculating h. It seems
> >> >>> > to
> >> >>> > me a better way to do this
> >> >>> > is to non-dimensionalize first.
> >> >>>
> >> >>> I forgot the URL:
> >> >>>
> >> >>>
> >> >>>
> http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatCreateMFFD.html#MatCreateMFFD
> >> >>>
> >> >>>    Matt
> >> >>>
> >> >>> >    Matt
> >> >>> >
> >> >>> >>
> >> >>> >> Hope my explanation is clear. Please let me know if it is not.
> >> >>> >>
> >> >>> >>
> >> >>> >> Best Regards,
> >> >>> >>
> >> >>> >> Ling
> >> >>> >>
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > --
> >> >>> > What most experimenters take for granted before they begin their
> >> >>> > experiments is infinitely more interesting than any results to
> which
> >> >>> > their experiments lead.
> >> >>> > -- Norbert Wiener
> >> >>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> What most experimenters take for granted before they begin their
> >> >>> experiments is infinitely more interesting than any results to which
> >> >>> their experiments lead.
> >> >>> -- Norbert Wiener
> >> >>
> >> >>
> >> >
> >>
> >>
> >>
> >> --
> >> What most experimenters take for granted before they begin their
> >> experiments is infinitely more interesting than any results to which
> >> their experiments lead.
> >> -- Norbert Wiener
> >
> >
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20121211/26488826/attachment-0001.html>


More information about the petsc-users mailing list