Hmm... I have an 'approximated' analytical Jacobian to compare. And I did this:<div><br></div><div><font size="4">./my-moose-project -i input.i -snes_type test -snes_test_display > out</font><br><div><br></div><div>
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.</div><div><br></div><div>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,</div>
<div><br></div><div><font size="4">./my-moose-project -i input.i -snes_type test -md_mffd_err 1.e-10 -snes_test_display > out</font></div><div><br></div><div>seems not working :-(</div><div>no matter what number I give to -md_mffd_err, the print out results seem not changed.</div>
<div><br></div><div>But of course, non-dimensionalization might be the ultimate solution.</div><div><br></div><div>Ling<br><br><div class="gmail_quote">On Tue, Dec 11, 2012 at 3:29 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Tue, Dec 11, 2012 at 2:19 PM, Zou (Non-US), Ling <<a href="mailto:ling.zou@inl.gov">ling.zou@inl.gov</a>> wrote:<br>

> Matt, one more question.<br>
><br>
> Can I combine the options<br>
> -snes_type test<br>
> and<br>
> -mat_mffd_err 1.e-10<br>
> to see the effect?<br>
<br>
</div>I do not understand your question. test does compare the analytic and<br>
FD Jacobian<br>
actions, but I thought you did not have an analytic action.<br>
<br>
   Matt<br>
<div class="HOEnZb"><div class="h5"><br>
> Best,<br>
><br>
> Ling<br>
><br>
><br>
><br>
> On Tue, Dec 11, 2012 at 2:47 PM, Zou (Non-US), Ling <<a href="mailto:ling.zou@inl.gov">ling.zou@inl.gov</a>><br>
> wrote:<br>
>><br>
>> thank you Matt. I will try to figure it out. Non-dimensionalization is<br>
>> certainly something worth to try.<br>
>><br>
>> Best,<br>
>><br>
>> Ling<br>
>><br>
>><br>
>> On Tue, Dec 11, 2012 at 2:41 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>><br>
>> wrote:<br>
>>><br>
>>> On Tue, Dec 11, 2012 at 1:40 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>><br>
>>> wrote:<br>
>>> > On Tue, Dec 11, 2012 at 1:34 PM, Zou (Non-US), Ling <<a href="mailto:ling.zou@inl.gov">ling.zou@inl.gov</a>><br>
>>> > wrote:<br>
>>> >> Dear All,<br>
>>> >><br>
>>> >> I have recently had an issue using snes_mf_operator. I've tried to<br>
>>> >> figure it<br>
>>> >> out from PETSc manual and PETSc website but didn't get any luck, so I<br>
>>> >> submit<br>
>>> >> my question here and hope some one could help me out.<br>
>>> >><br>
>>> >> (1)<br>
>>> >> =================================================================<br>
>>> >> A little bit background here: my problem has 7 variables, i.e.,<br>
>>> >><br>
>>> >> U = [U0, U1, U2, U3, U4, U5, U6]<br>
>>> >><br>
>>> >> U0 is in the order of 1.<br>
>>> >> U1, U2, U4 and U5 in the oder of 100.<br>
>>> >> U3 and U6 are in the order of 1.e8.<br>
>>> >><br>
>>> >> I believe this should be quite common for most PETSc users.<br>
>>> >><br>
>>> >> (2)<br>
>>> >> =================================================================<br>
>>> >> My problem here is, U0, by its physical meaning, has to be limited<br>
>>> >> between 0<br>
>>> >> and 1. When PETSc starts to perturb the initial solution of U (which I<br>
>>> >> believe properly set) to approximate the operation of J (dU), the U0<br>
>>> >> get a<br>
>>> >> perturbation size in the order of 100, which causes problem as U0 has<br>
>>> >> to be<br>
>>> >> smaller than 1.<br>
>>> >><br>
>>> >> From my observation, this same perturbation size, say eps, is applied<br>
>>> >> on all<br>
>>> >> U0, U1, U2, etc. <=== Is this the default setting?<br>
>>> >> I also guess that this eps, in the order of 100, is determined from my<br>
>>> >> initial solution vector and other related PETSc parameters.  <=== Is<br>
>>> >> my<br>
>>> >> guessing right?<br>
>>> >><br>
>>> >> (3)<br>
>>> >> =================================================================<br>
>>> >> My question: I'd like to avoid a perturbation size ~100 on U0, i.e., I<br>
>>> >> have<br>
>>> >> to limit it to be ~0.01 (or some small number) to avoid the U0 > 1<br>
>>> >> situation. Is there any way to control that?<br>
>>> >> Or, is there any advanced option to control the perturbation size on<br>
>>> >> different variables when using snes_mf_operator?<br>
>>> ><br>
>>> > Here is a description of the algorithm for calculating h. It seems to<br>
>>> > me a better way to do this<br>
>>> > is to non-dimensionalize first.<br>
>>><br>
>>> I forgot the URL:<br>
>>><br>
>>> <a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatCreateMFFD.html#MatCreateMFFD" target="_blank">http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatCreateMFFD.html#MatCreateMFFD</a><br>

>>><br>
>>>    Matt<br>
>>><br>
>>> >    Matt<br>
>>> ><br>
>>> >><br>
>>> >> Hope my explanation is clear. Please let me know if it is not.<br>
>>> >><br>
>>> >><br>
>>> >> Best Regards,<br>
>>> >><br>
>>> >> Ling<br>
>>> >><br>
>>> ><br>
>>> ><br>
>>> ><br>
>>> > --<br>
>>> > What most experimenters take for granted before they begin their<br>
>>> > experiments is infinitely more interesting than any results to which<br>
>>> > their experiments lead.<br>
>>> > -- Norbert Wiener<br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> What most experimenters take for granted before they begin their<br>
>>> experiments is infinitely more interesting than any results to which<br>
>>> their experiments lead.<br>
>>> -- Norbert Wiener<br>
>><br>
>><br>
><br>
<br>
<br>
<br>
--<br>
What most experimenters take for granted before they begin their<br>
experiments is infinitely more interesting than any results to which<br>
their experiments lead.<br>
-- Norbert Wiener<br>
</div></div></blockquote></div><br></div></div>