<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 28, 2014 at 9:22 AM, Sharp Stone <span dir="ltr"><<a href="mailto:thronesf@gmail.com" target="_blank">thronesf@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 dir="ltr"><div><div>Hi Matt and Jed,<br><br></div>Thank you for your replies. Now I see Petsc will calculate functions' residue in SNES before form the Jacobian. In order to get a initial non-zero residues of the functions, we cannot initialize some of the discretized spatial nodes of the functions to zero, am I right? In my problem, initially only a small region will be initialized with some values, while other spatial nodes remain zero. I don't know how the SNES calculate the initial residue? If it is a sum residue on all discretized nodes, then I should not get a zero residue, or at least, I should get a small residue which is not zero. But I still get the exact zero residue. So I wonder how the SNES calculate the residue? <br></div></div></blockquote><div><br></div><div>You are calculating the residual in your callback function. Print out the vector F which you pass back.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div>Thanks in advance!<br></div><div class="gmail_extra"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">TS Object: 1 MPI processes<br>  type: theta<br>  maximum steps=10<br>  maximum time=2e-11<br>  total number of nonlinear solver iterations=0<br>  total number of nonlinear solve failures=0<br>  total number of linear solver iterations=0<br>  total number of rejected steps=5<br>    Theta=1<br>    Extrapolation=no<br>  SNES Object:   1 MPI processes<br>    type: newtonls<br>    maximum iterations=50, maximum function evaluations=10000<br>    tolerances: relative=1e-08, absolute=1e-50, solution=1e-08<br>    total number of linear solver iterations=0<br>    total number of function evaluations=1<br>    SNESLineSearch Object:     1 MPI processes<br>      type: bt<br>        interpolation: cubic<br>        alpha=1.000000e-04<br>      maxstep=1.000000e+08, minlambda=1.000000e-12<br>      tolerances: relative=1.000000e-08, absolute=1.000000e-15, lambda=1.000000e-08<br>      maximum iterations=40<br>    KSP Object:     1 MPI processes<br>      type: gmres<br>        GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br>        GMRES: happy breakdown tolerance 1e-30<br>      maximum iterations=10000, initial guess is zero<br>      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using DEFAULT norm type for convergence test<br>    PC Object:     1 MPI processes<br>      type: ilu<br>      PC has not been set up so information may be incomplete<br>        ILU: out-of-place factorization<br>        0 levels of fill<br>        tolerance for zero pivot 2.22045e-14<br>        using diagonal shift on blocks to prevent zero pivot [INBLOCKS]<br>        matrix ordering: natural<br>      linear system matrix = precond matrix:<br>      Mat Object:       1 MPI processes<br>        type: seqaij<br>        rows=20904, cols=20904, bs=4<br>        total: nonzeros=410816, allocated nonzeros=410816<br>        total number of mallocs used during MatSetValues calls =0<br>          using I-node routines: found 5226 nodes, limit used is 5<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 27, 2014 at 3:09 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 dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Oct 27, 2014 at 2:05 PM, Sharp Stone <span dir="ltr"><<a href="mailto:thronesf@gmail.com" target="_blank">thronesf@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 dir="ltr"><div><div>Hi Jed and Matt,<br><br></div>Thank you very much for your replies.<br><br></div>This time I copied the whole output from my screen, from compile to execution. This time I put the TSView() routine just after the TSSolve() routine to make the tsview output. And I intentionally to do only 5 time steps to make the test. Thank you in advance!</div></blockquote><div><br></div></span><div>You have to make the command line arguments work. Quit calling TSView() in the code. We need many more options</div><div>for debugging. First track down why you are not processing options. Do the examples take options for you?</div><div><br></div><div>Once that works, run with -ts_view -ts_monitor -snes_monitor -ksp_monitor_true_residual</div><div><br></div><div>   Matt</div><div><div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>host206-47:streamer_Implicit_SG GPL$ make pStreamer<br>/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/bin/mpicxx -o pStreamer.o -c -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g -O0  -fPIC    -I/Users/GPL/local/PETSc/petsc-3.5.2/include -I/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/include -I/opt/X11/include   -Wno-unused  `pwd`/pStreamer.cc<br>/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/bin/mpicc -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first  -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -O0 -Wno-unused  -o pStreamer flux.o field.o glob_streamer.o input.o lookuptable.o nrutil.o pStreamer.o someutil.o photoionization.o heating.o -L/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/lib -L/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/lib  -lpetsc -lsuperlu_4.3 -llapack -lblas -lparmetis -lmetis -L/opt/X11/lib -lX11 -lpthread -lssl -lcrypto -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/lib/darwin -lmpichf90 -lgfortran -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin13/4.8.2 -L/usr/local/gfortran/lib -lgfortran -lgcc_ext.10.5 -lquadmath -lm -lclang_rt.osx -lmpichcxx -lc++ -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1/lib/darwin -lclang_rt.osx -L/Users/GPL/local/PETSc/petsc-3.5.2/arch-darwin-cxx-debug/lib -ldl -lpmpich -lmpich -lopa -lmpl -lpthread -lSystem -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1/lib/darwin -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/5.1/lib/darwin -lclang_rt.osx -ldl  <br>host206-47:streamer_Implicit_SG GPL$ mpiexec -n 1 ./pStreamer<br><br>time=0.000000         step=0 <br>dt = 0.001000 <br><br>time=0.002000         step=1 <br>dt = 0.002000 <br><br>time=0.005000         step=2 <br>dt = 0.003000<br><br>time=0.009000         step=3 <br>dt = 0.004000<br><br>time=0.014000         step=4 <br>dt = 0.005000 <br><br>time=0.020000         step=5 <br>dt = 0.006000<br><br>Step time elapse = 0.854144 s     Total time elapse = 5.276643 s<br>TS Object: 1 MPI processes<br>  type: theta<br>  maximum steps=10<br>  maximum time=2e-11<br>  total number of nonlinear solver iterations=0<br>  total number of nonlinear solve failures=0<br>  total number of linear solver iterations=0<br>  total number of rejected steps=5<br>    Theta=1<br>    Extrapolation=no<br>  SNES Object:   1 MPI processes<br>    type: newtonls<br>    maximum iterations=50, maximum function evaluations=10000<br>    tolerances: relative=1e-08, absolute=1e-50, solution=1e-08<br>    total number of linear solver iterations=0<br>    total number of function evaluations=1<br>    SNESLineSearch Object:     1 MPI processes<br>      type: bt<br>        interpolation: cubic<br>        alpha=1.000000e-04<br>      maxstep=1.000000e+08, minlambda=1.000000e-12<br>      tolerances: relative=1.000000e-08, absolute=1.000000e-15, lambda=1.000000e-08<br>      maximum iterations=40<br>    KSP Object:     1 MPI processes<br>      type: gmres<br>        GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement<br>        GMRES: happy breakdown tolerance 1e-30<br>      maximum iterations=10000, initial guess is zero<br>      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using DEFAULT norm type for convergence test<br>    PC Object:     1 MPI processes<br>      type: ilu<br>      PC has not been set up so information may be incomplete<br>        ILU: out-of-place factorization<br>        0 levels of fill<br>        tolerance for zero pivot 2.22045e-14<br>        using diagonal shift on blocks to prevent zero pivot [INBLOCKS]<br>        matrix ordering: natural<br>      linear system matrix = precond matrix:<br>      Mat Object:       1 MPI processes<br>        type: seqaij<br>        rows=20904, cols=20904, bs=4<br>        total: nonzeros=410816, allocated nonzeros=410816<br>        total number of mallocs used during MatSetValues calls =0<br>          using I-node routines: found 5226 nodes, limit used is 5<br><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 27, 2014 at 2:46 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>Sharp Stone <<a href="mailto:thronesf@gmail.com" target="_blank">thronesf@gmail.com</a>> writes:<br>
<br>
> Hi Matt,<br>
><br>
> Thank you very much for your reply.<br>
><br>
> The ts_view output is attached below. I found my code results say "SNES has<br>
> not been set up", and PC "has not been set up". Does this cause the<br>
> problem? If so I do not see example ex17 explicitly set up the snes object?<br>
<br>
</span>Those objects are set up on the first time step (inside TSSolve).<br>
<span><br>
> PS: I don't know why the -ts_view option does not work in my command line,<br>
<br>
</span>Are you sure it doesn't output after the TSSolve?  The example does.<br>
<span><br>
> so I use TSView() routine just before the TSSolve() routine.<br>
<br>
</span>You should call it *after* the solve so we can see what happened during<br>
the solve.<span><font color="#888888"><br>
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><br>-- <br><div dir="ltr"><div>Best regards,</div><div><br></div>Feng</div>
</font></span></div>
</blockquote></div></div></div><br><br clear="all"><span><font color="#888888"><span><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener
</span></font></span></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><span><font color="#888888"><br>-- <br><div dir="ltr"><div>Best regards,</div><div><br></div>Feng</div>
</font></span></font></span></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><span><font color="#888888"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener
</font></span></font></span></div></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><span><font color="#888888"><br>-- <br><div dir="ltr"><div>Best regards,</div><div><br></div>Feng</div>
</font></span></font></span></div><span><font color="#888888">
</font></span></blockquote></div><span><font color="#888888"><br><br clear="all"><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener
</font></span></font></span></div></div><span class="HOEnZb"><font color="#888888">
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div dir="ltr"><div>Best regards,</div><div><br></div>Feng</div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener
</div></div>