Dear Matt,

I wanted to try out NGMRES. I am using options [1] from your tutorial slides. 
This works fine with SNES ex19, but fails with error [2] when I use my code. 
When I use my code with SNES options “-snes_type newtonls -snes_linesearch_type 
l2” it runs fine.

Is this me doing something wrong in FormJacobian or what could this be? Is 
there a SNES example with MatSetValuesStencil I could try with NGMRES?

Thank you!
Henrik



[1]

-snes_type ngmres -npc_snes_max_it 1 -snes_converged_reason -npc_snes_type fas 
-npc_fas_coarse_snes_converged_reason -npc_fas_levels_snes_type newtonls 
-npc_fas_levels_snes_max_it 6 -npc_fas_levels_snes_linesearch_type basic 
-npc_fas_levels_snes_max_linear_solve_fail 30 -npc_fas_levels_ksp_max_it 20 
-npc_fas_levels_snes_converged_reason -npc_fas_coarse_snes_linesearch_type basic

[2]

[0]PETSC ERROR: --------------------- Error Message 
--------------------------------------------------------------
[0]PETSC ERROR: Null argument, when expecting valid pointer
[0]PETSC ERROR: Null Object: Parameter # 1
[0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for 
trouble shooting.
[0]PETSC ERROR: Petsc Release Version 3.8.2, unknown
[0]PETSC ERROR: 
/rwthfs/rz/cluster/work/hb111949/Descramble/1D_Model/steam/JUBE/ngmres/debug/shem_fw64gnu_steam.x
 on a arch-linux2-c-debug named linuxbmc0004.rz.RWTH-Aachen.DE by hb111949 Thu 
Nov 30 14:35:56 2017
[0]PETSC ERROR: Configure options --download-fblaslapack --with-cc=mpicc 
--with-fc=mpif90 --with-cxx=mpicxx --download-hypre --download-superlu_dist 
--download-suitesparse --download-scalapack --download-blacs --download-hdf5 
--download-parmetis --download-metis --with-debugging=1 --download-mumps
[0]PETSC ERROR: #1 ISLocalToGlobalMappingApply() line 639 in 
/rwthfs/rz/cluster/home/hb111949/Code/petsc/src/vec/is/utils/isltog.c
[0]PETSC ERROR: #2 MatSetValuesLocal() line 2139 in 
/rwthfs/rz/cluster/home/hb111949/Code/petsc/src/mat/interface/matrix.c
[0]PETSC ERROR: #3 MatSetValuesStencil() line 1550 in 
/rwthfs/rz/cluster/home/hb111949/Code/petsc/src/mat/interface/matrix.c


--
Dipl.-Math. Henrik Büsing
Institute for Applied Geophysics and Geothermal Energy
E.ON Energy Research Center
RWTH Aachen University
------------------------------------------------------
Mathieustr. 10            |    Tel +49 (0)241 80 49907
52074 Aachen, Germany     |    Fax +49 (0)241 80 49889
------------------------------------------------------
http://www.eonerc.rwth-aachen.de/GGE
[email protected]
------------------------------------------------------

Von: Matthew Knepley [mailto:[email protected]]
Gesendet: 07 November 2017 12:54
An: Buesing, Henrik <[email protected]>
Cc: petsc-users <[email protected]>
Betreff: Re: [petsc-users] Newton methods that converge all the time

On Tue, Nov 7, 2017 at 4:19 AM, Buesing, Henrik 
<[email protected]<mailto:[email protected]>> wrote:
Dear all,

I am solving a system of nonlinear, transient PDEs. I am using Newton’s method 
in every time step to solve the nonlinear algebraic equations. Of course, 
Newton’s method only converges if the initial guess is sufficiently close to 
the solution.

This is often not the case and Newton’s method diverges. Then, I reduce the 
time step and try again. This can become prohibitively costly, if the time 
steps get very small. I am thus looking for variants of Newton’s method, which 
have a bigger convergence radius or ideally converge all the time.

I tried out the pseudo-timestepping described in 
http://www.mcs.anl.gov/petsc/petsc-current/src/ts/examples/tutorials/ex1f.F.html.

However, this does converge even worse. I am seeing breakdown when I have phase 
changes (e.g. liquid to two-phase).

I was under the impression that pseudo-timestepping should converge better. 
Thus, my question:

Am I doing something wrong or is it possible that Newton’s method converges and 
pseudo-timestepping does not?

Thank you for any insight on this.

Hi Hendrik,

I would try using NGMRES as a nonlinear preconditioner. I have an example in my 
tutorial slides for using it with SNES ex19.
I hope this will work because I suspect that around the phase boundary Newton 
directions are noisy, since sometimes you
step into the other phase. NGMRES takes a few directions (you set the m) and 
then picks the best one.

  Hopefully this helps,

     Matt

Henrik



--
Dipl.-Math. Henrik Büsing
Institute for Applied Geophysics and Geothermal Energy
E.ON Energy Research Center
RWTH Aachen University
------------------------------------------------------
Mathieustr. 10<https://maps.google.com/?q=Mathieustr.+10&entry=gmail&source=g>  
          |    Tel +49 (0)241 80 49907<tel:+49%20241%208049907>
52074 Aachen, Germany     |    Fax +49 (0)241 80 49889<tel:+49%20241%208049889>
------------------------------------------------------
http://www.eonerc.rwth-aachen.de/GGE
[email protected]<mailto:[email protected]>
------------------------------------------------------




--
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

https://www.cse.buffalo.edu/~knepley/<http://www.caam.rice.edu/~mk51/>

Reply via email to