<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Wed, Oct 23, 2013 at 7:14 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>Christophe Ortiz <<a href="mailto:christophe.ortiz@ciemat.es" target="_blank">christophe.ortiz@ciemat.es</a>> writes:<br>





<br>
>> That does not sound right.  Can you send a reproducible test case (best<br>
>> as a patch to PETSc)?<br>
>><br>
><br>
> What do you mean by patch to PETSc ? How do I do that ?<br>
<br>
</div>See "contributing a small patch" (or any of the other workflows).<br>
<br>
<a href="https://bitbucket.org/petsc/petsc/wiki/Home" target="_blank">https://bitbucket.org/petsc/petsc/wiki/Home</a></blockquote><div><br></div><div>Ok, I will read the instructions and try.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">




<br>
<div><br>
> Sorry about that. Here is the entire error message:<br>
><br>
> [0]PETSC ERROR: No support for this operation for this object type!<br>
> [0]PETSC ERROR: Mat type mffd!<br>
> [0]PETSC ERROR:<br>
> ------------------------------------------------------------------------<br>
> [0]PETSC ERROR: Petsc Release Version 3.4.1, Jun, 10, 2013<br>
> [0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
> [0]PETSC ERROR: See docs/index.html for manual pages.<br>
> [0]PETSC ERROR:<br>
> ------------------------------------------------------------------------<br>
> [0]PETSC ERROR: ./diffusion_c on a ifort-icc-nompi-double-debug named<br>
> <a href="http://mazinger.ciemat.es" target="_blank">mazinger.ciemat.es</a> by u5751 Wed Oct 23 12:46:04 2013<br>
> [0]PETSC ERROR: Libraries linked from<br>
> /home/u5751/petsc-3.4.1/ifort-icc-nompi-double-debug/lib<br>
> [0]PETSC ERROR: Configure run at Mon Oct 14 05:43:50 2013<br>
> [0]PETSC ERROR: Configure options --with-mpi=0 --with-fc=ifort<br>
> --with-cc=icc --with-debugging=1 --with-scalar-type=real<br>
> --with-precision=double --with-blas-lapack-dir=/opt/intel/mkl<br>
> [0]PETSC ERROR:<br>
> ------------------------------------------------------------------------<br>
> [0]PETSC ERROR: MatZeroEntries() line 5189 in src/mat/interface/matrix.c<br>
> [0]PETSC ERROR: FormIJacobian() line 689 in<br>
> src/ts/examples/tutorials/diffusion.c<br>
<br>
</div>This is your code calling MatZeroEntries on the Amat (first Mat<br>
argument).  The convention is to assemble into Pmat (the preconditioning<br>
matrix; second Mat argument).<br></blockquote><div><br></div><div>I assemble first Pmat but in my code MatZeroEntries was used with Amat, which PETSc did not appreciate...</div><div>I changed that and here is the output. While without these options it converges--though giving solution with oscillations--now with -ts_arkimex_fully_implicit -snes_mf_operator it does not converge at all. No step is accepted, not even the first one:</div>




<div><br></div><div><div>      TSAdapt 'basic': step   0 stage rejected t=0          + 1.000e-12 retrying with dt=2.500e-13 </div><div>      TSAdapt 'basic': step   0 stage rejected t=0          + 2.500e-13 retrying with dt=6.250e-14 </div>




<div>      TSAdapt 'basic': step   0 stage rejected t=0          + 6.250e-14 retrying with dt=1.562e-14 </div><div>      TSAdapt 'basic': step   0 stage rejected t=0          + 1.562e-14 retrying with dt=3.906e-15 </div>




<div>      </div></div><div>...  ....</div><div><div>      TSAdapt 'basic': step   0 stage rejected t=0          +2.888e-287 retrying with dt=7.221e-288</div><div>      TSAdapt 'basic': step   0 stage rejected t=0          +7.221e-288 retrying with dt=1.805e-288</div>




<div>      TSAdapt 'basic': step   0 stage rejected t=0          +1.805e-288 retrying with dt=4.513e-289</div><div>[0]PETSC ERROR: --------------------- Error Message ------------------------------------</div><div>




[0]PETSC ERROR: Floating point exception!</div><div>[0]PETSC ERROR: Vec entry at local location 1103 is not-a-number or infinite at end of function: Parameter number 3!</div><div>[0]PETSC ERROR: ------------------------------------------------------------------------</div>




<div>[0]PETSC ERROR: Petsc Release Version 3.4.1, Jun, 10, 2013 </div><div>[0]PETSC ERROR: See docs/changes/index.html for recent updates.</div><div>[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.</div>




<div>[0]PETSC ERROR: See docs/index.html for manual pages.</div><div>[0]PETSC ERROR: ------------------------------------------------------------------------</div><div>[0]PETSC ERROR: ./diffusion_c on a ifort-icc-nompi-double-debug named <a href="http://mazinger.ciemat.es" target="_blank">mazinger.ciemat.es</a> by u5751 Thu Oct 24 03:37:56 2013</div>




<div>[0]PETSC ERROR: Libraries linked from /home/u5751/petsc-3.4.1/ifort-icc-nompi-double-debug/lib</div><div>[0]PETSC ERROR: Configure run at Mon Oct 14 05:43:50 2013</div><div>[0]PETSC ERROR: Configure options --with-mpi=0 --with-fc=ifort --with-cc=icc --with-debugging=1 --with-scalar-type=real --with-precision=double --with-blas-lapack-dir=/opt/intel/mkl</div>




<div>[0]PETSC ERROR: ------------------------------------------------------------------------</div><div>[0]PETSC ERROR: VecValidValues() line 30 in src/vec/vec/interface/rvector.c</div><div>[0]PETSC ERROR: SNESComputeFunction() line 1998 in src/snes/interface/snes.c</div>




<div>[0]PETSC ERROR: SNESSolve_NEWTONLS() line 162 in src/snes/impls/ls/ls.c</div><div>[0]PETSC ERROR: SNESSolve() line 3636 in src/snes/interface/snes.c</div><div>[0]PETSC ERROR: TSStep_ARKIMEX() line 765 in src/ts/impls/arkimex/arkimex.c</div>




<div>[0]PETSC ERROR: TSStep() line 2458 in src/ts/interface/ts.c</div><div>[0]PETSC ERROR: TSSolve() line 2583 in src/ts/interface/ts.c</div><div>[0]PETSC ERROR: main() line 457 in src/ts/examples/tutorials/diffusion.c</div>




<div>./compile_diffusion: line 17: 23584 Aborted                 ./diffusion_c -ts_adapt_monitor -ts_adapt_basic_clip 0.1,1.1 -draw_pause -2 -ts_arkimex_type 1bee -ts_max_snes_failures -1 -snes_type newtonls -snes_linesearch_type bt -ts_arkimex_fully_implicit -snes_mf_operator</div>




</div><div><br></div><div>Using -snes_converged_reason and -ksp_converged_reason gives:</div><div><br></div><div><div>    Linear solve did not converge due to DIVERGED_DTOL iterations 30</div><div>  Nonlinear solve did not converge due to DIVERGED_LINEAR_SOLVE iterations 0</div>



<div>      TSAdapt 'basic': step   0 stage rejected t=0          + 1.000e-12 retrying with dt=2.500e-13</div></div><div><br></div><div>Thus, I increased the maximum number of iterations of the KSP with </div>

<div>  ierr = SNESSetMaxLinearSolveFailures(snes,100);<br></div><div>and</div><div>  ierr = KSPSetTolerances(ksp,PETSC_DEFAULT,PETSC_DEFAULT,PETSC_DEFAULT,1000);<br></div><div><br></div><div>Then it converges, steps are accepted. However, the solution obtained is weird, as if there was no diffusion. Moreover, values are incorrect. I start with a gaussian peak at 1e19 and end up with a gaussian with a peak at 1e25.</div>

<div><br></div><div>BTW, why using -ts_arkimex_fully_implicit if all the terms are in the F (LHS) ? You said that by definition there is no explicit stage in that case.</div><div><br></div><div>However, I could obtain a good solution by adding mesh points (without fully implicit and mf_operator). Maybe it was due to large gradients and not enough points.</div>
<div><br></div><div>Christophe</div><div><br></div><div>
<br>
</div><div> </div></div><br></div></div>