<div dir="ltr"><div>Dear PETSc --</div><div><br></div><div>I sought advice at the FAQ page on non-convergence.  It is a nice page, and I like the range of advice!</div><div><br></div><div>But both</div><div>  -pc_type svd</div><div>  -pc_type none</div><div>seem to break the RSLS SNESVI in the next branch.</div><div><br></div><div>I tested with ex9.c (below) and ex58.c in next branch src/snes/examples/tutorials/, and get the same broken results.  The other SNESVI-using examples (ex60.c, ex61.c, ex63.c, ex64.c, ex65.c) give compiler errors for me.</div><div><br></div><div>Note that both of the above PC types work fine with non-VI examples (e.g. ex1.c, ex3.c, ex5.c), of course.  Furthermore, in the maint branch, these pc_types DO work (very bottom) with ex9, and with ex58 (not shown).</div><div><br></div><div>I am suspicious of around lines 503-505 in virs.c.  That has been the failure location for a lot of my tries on various RSLS VI experiments.  I have looked at the source (i.e. virs.c) itself, and recognize roughly what is going on.  Objects are being reset because of a change in the active set; it's nontrivial.  I don't see how to fix it.</div><div><br></div><div>Thanks for help!</div><div><br></div><div>Ed</div><div><br></div><div>**** next branch</div><div><br></div><div>~/petsc-next[next]$ export PETSC_ARCH=linux-c-dbg</div><div>~/petsc-next[next]$ cd src/snes/examples/tutorials/</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ make ex9</div><div>make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.</div><div>/home/ed/petsc-next/linux-c-dbg/bin/mpicc -o ex9.o -c -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -O0   -I/home/ed/petsc-next/include -I/home/ed/petsc-next/linux-c-dbg/include    `pwd`/ex9.c</div><div>/home/ed/petsc-next/linux-c-dbg/bin/mpicc -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -O0  -o ex9 ex9.o -Wl,-rpath,/home/ed/petsc-next/linux-c-dbg/lib -L/home/ed/petsc-next/linux-c-dbg/lib  -lpetsc -Wl,-rpath,/home/ed/petsc-next/linux-c-dbg/lib -lflapack -lfblas -lX11 -lpthread -lm -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -lmpifort -lgfortran -lm -lgfortran -lm -lquadmath -lm -lmpicxx -lstdc++ -Wl,-rpath,/home/ed/petsc-next/linux-c-dbg/lib -L/home/ed/petsc-next/linux-c-dbg/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -ldl -Wl,-rpath,/home/ed/petsc-next/linux-c-dbg/lib -lmpi -lgcc_s -ldl </div><div>/bin/rm -f ex9.o</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ ./ex9 -pc_type lu</div><div>setup done: grid  Mx,My = 11,11  with spacing  dx,dy = 0.4000,0.4000</div><div>errors:     av |u-uexact|  = 7.156e-03    |u-uexact|_inf = 2.550e-02</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ ./ex9</div><div>setup done: grid  Mx,My = 11,11  with spacing  dx,dy = 0.4000,0.4000</div><div>errors:     av |u-uexact|  = 7.156e-03    |u-uexact|_inf = 2.550e-02</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ ./ex9 -pc_type svd</div><div>setup done: grid  Mx,My = 11,11  with spacing  dx,dy = 0.4000,0.4000</div><div>[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------</div><div>[0]PETSC ERROR: Corrupt argument: <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a></div><div>[0]PETSC ERROR: Invalid Pointer to Object: Parameter # 1</div><div>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html">http://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.</div><div>[0]PETSC ERROR: Petsc Development GIT revision: v3.5.3-2947-gc0ac3dd  GIT Date: 2015-03-10 22:35:11 -0500</div><div>[0]PETSC ERROR: ./ex9 on a linux-c-dbg named bueler-leopard by ed Wed Mar 11 12:47:08 2015</div><div>[0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich --with-debugging=1</div><div>[0]PETSC ERROR: #1 VecDestroy() line 424 in /home/ed/petsc-next/src/vec/vec/interface/vector.c</div><div>[0]PETSC ERROR: #2 PCReset_SVD() line 295 in /home/ed/petsc-next/src/ksp/pc/impls/svd/svd.c</div><div>[0]PETSC ERROR: #3 PCReset() line 81 in /home/ed/petsc-next/src/ksp/pc/interface/precon.c</div><div>[0]PETSC ERROR: #4 KSPReset() line 861 in /home/ed/petsc-next/src/ksp/ksp/interface/itfunc.c</div><div>[0]PETSC ERROR: #5 SNESVIResetPCandKSP() line 305 in /home/ed/petsc-next/src/snes/impls/vi/rs/virs.c</div><div>[0]PETSC ERROR: #6 SNESSolve_VINEWTONRSLS() line 503 in /home/ed/petsc-next/src/snes/impls/vi/rs/virs.c</div><div>[0]PETSC ERROR: #7 SNESSolve() line 3846 in /home/ed/petsc-next/src/snes/interface/snes.c</div><div>[0]PETSC ERROR: #8 main() line 100 in /home/ed/petsc-next/src/snes/examples/tutorials/ex9.c</div><div>[0]PETSC ERROR: PETSc Option Table entries:</div><div>[0]PETSC ERROR: -pc_type svd</div><div>[0]PETSC ERROR: ----------------End of Error Message -------send entire error message to petsc-maint@mcs.anl.gov----------</div><div>application called MPI_Abort(MPI_COMM_WORLD, 64) - process 0</div><div>[unset]: aborting job:</div><div>application called MPI_Abort(MPI_COMM_WORLD, 64) - process 0</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ ./ex9 -pc_type none</div><div>setup done: grid  Mx,My = 11,11  with spacing  dx,dy = 0.4000,0.4000</div><div>[0]PETSC ERROR: ------------------------------------------------------------------------</div><div>[0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range</div><div>[0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger</div><div>[0]PETSC ERROR: or see <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a></div><div>[0]PETSC ERROR: or try <a href="http://valgrind.org">http://valgrind.org</a> on GNU/linux and Apple Mac OS X to find memory corruption errors</div><div>[0]PETSC ERROR: likely location of problem given in stack below</div><div>[0]PETSC ERROR: ---------------------  Stack Frames ------------------------------------</div><div>[0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available,</div><div>[0]PETSC ERROR:       INSTEAD the line number of the start of the function</div><div>[0]PETSC ERROR:       is given.</div><div>[0]PETSC ERROR: [0] PCMGSetGalerkin line 1028 /home/ed/petsc-next/src/ksp/pc/impls/mg/mg.c</div><div>[0]PETSC ERROR: [0] SNESSolve_VINEWTONRSLS line 348 /home/ed/petsc-next/src/snes/impls/vi/rs/virs.c</div><div>[0]PETSC ERROR: [0] SNESSolve line 3799 /home/ed/petsc-next/src/snes/interface/snes.c</div><div>[0]PETSC ERROR: --------------------- Error Message --------------------------------------------------------------</div><div>[0]PETSC ERROR: Signal received</div><div>[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html">http://www.mcs.anl.gov/petsc/documentation/faq.html</a> for trouble shooting.</div><div>[0]PETSC ERROR: Petsc Development GIT revision: v3.5.3-2947-gc0ac3dd  GIT Date: 2015-03-10 22:35:11 -0500</div><div>[0]PETSC ERROR: ./ex9 on a linux-c-dbg named bueler-leopard by ed Wed Mar 11 12:47:11 2015</div><div>[0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich --with-debugging=1</div><div>[0]PETSC ERROR: #1 User provided function() line 0 in  unknown file</div><div>application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0</div><div>[unset]: aborting job:</div><div>application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0</div><div>~/petsc-next/src/snes/examples/tutorials[next]$ </div><div><br></div><div>******* maint branch</div><div><br></div><div><div>~/petsc-maint/src/snes/examples/tutorials[maint]$ make ex9</div><div>make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.</div><div>/home/ed/petsc-maint/linux-c-dbg/bin/mpicc -o ex9.o -c -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -O0   -I/home/ed/petsc-maint/include -I/home/ed/petsc-maint/linux-c-dbg/include    `pwd`/ex9.c</div><div>/home/ed/petsc-maint/linux-c-dbg/bin/mpicc -fPIC -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -g3 -O0  -o ex9 ex9.o -Wl,-rpath,/home/ed/petsc-maint/linux-c-dbg/lib -L/home/ed/petsc-maint/linux-c-dbg/lib  -lpetsc -Wl,-rpath,/home/ed/petsc-maint/linux-c-dbg/lib -lflapack -lfblas -lX11 -lpthread -lm -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -lmpichf90 -lgfortran -lm -lgfortran -lm -lquadmath -lm -lmpichcxx -lstdc++ -Wl,-rpath,/home/ed/petsc-maint/linux-c-dbg/lib -L/home/ed/petsc-maint/linux-c-dbg/lib -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -Wl,-rpath,/usr/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -ldl -Wl,-rpath,/home/ed/petsc-maint/linux-c-dbg/lib -lmpich -lopa -lmpl -lrt -lpthread -lgcc_s -ldl  </div><div>/bin/rm -f ex9.o</div><div>~/petsc-maint/src/snes/examples/tutorials[maint]$ ./ex9</div><div>setup done: square       side length = 4.000</div><div>            grid               Mx,My = 11,11</div><div>            spacing            dx,dy = 0.400,0.400</div><div>number of Newton iterations = 3; result = CONVERGED_FNORM_RELATIVE</div><div>errors:    av |u-uexact|  = 7.156e-03</div><div>           |u-uexact|_inf = 2.550e-02</div><div>~/petsc-maint/src/snes/examples/tutorials[maint]$ ./ex9 -pc_type svd</div><div>setup done: square       side length = 4.000</div><div>            grid               Mx,My = 11,11</div><div>            spacing            dx,dy = 0.400,0.400</div><div>number of Newton iterations = 2; result = CONVERGED_FNORM_RELATIVE</div><div>errors:    av |u-uexact|  = 7.156e-03</div><div>           |u-uexact|_inf = 2.550e-02</div><div>~/petsc-maint/src/snes/examples/tutorials[maint]$ ./ex9 -pc_type none</div><div>setup done: square       side length = 4.000</div><div>            grid               Mx,My = 11,11</div><div>            spacing            dx,dy = 0.400,0.400</div><div>number of Newton iterations = 2; result = CONVERGED_FNORM_RELATIVE</div><div>errors:    av |u-uexact|  = 7.156e-03</div><div>           |u-uexact|_inf = 2.550e-02</div><div><br></div></div><div><br></div>-- <br><div class="gmail_signature">Ed Bueler<br>Dept of Math and Stat and Geophysical Institute<br>University of Alaska Fairbanks<br>Fairbanks, AK 99775-6660<br>301C Chapman and 410D Elvey<br>907 474-7693 and 907 474-7199  (fax 907 474-5394)</div>
</div>