On Jun 17, 2014, at 8:26 PM, Sang pham van <[email protected]> wrote:
> Hi Barry, > > When using -snes_grid_sequence <n>, how does SNES refines the mesh? Does it > detect where should the mesh be refine locally like an adaptive refinement? No, with DMDA it merely cuts each dimension in half. You can control the refinement slightly with http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/DM/DMDASetRefinementFactor.html Barry > > Thank you. > > S. > > > On Tue, Jun 17, 2014 at 4:09 PM, Barry Smith <[email protected]> wrote: > > On Jun 17, 2014, at 3:03 PM, Sang pham van <[email protected]> wrote: > > > Hi Barry, > > > > I want to try the original version of Newton method, no line search nor > > trust region… > > This will often fail, original version Newton just doesn’t work without a > good initial solution. > > > Using grid sequencing confuses me at the point that I don't know explicitly > > the final mesh size, or even if I can estimate the mesh size from the input > > -snes_grid_sequence n it's not so convenient for me when some of my > > routines need such info from very first moment. > > To do grid sequencing your code needs to be able to compute the function > on several grids, and compute the Jacobian on several grids. If your code is > hardwired to work on only one grid (with global variables or whatever) you > cannot use grid sequencing and you out of luck. You should organize your code > so that it doesn’t depend on any hardwired grid sizes. > > Barry > > > > > I wish PETSc could allow us to pass in the finest mesh for grid sequencing. > > > > > > S, > > > > > > On Tue, Jun 17, 2014 at 3:46 PM, Barry Smith <[email protected]> wrote: > > > > On Jun 17, 2014, at 2:30 PM, Sang pham van <[email protected]> wrote: > > > > > Thanks Barry, > > > > > > To refine the grid, I just put more points in the direction. For both > > > fine and coarse meshes, I used simple initial guess (say constant values > > > in whole domain for all variables). > > > > > > By using grid sequencing, is the finest mesh is the one I first input the > > > solver? > > > > No, you pass in the coarse one. > > > > > > Can you let me know what options should I use to have pure Newton method? > > > > Not sure what you mean by pure Newton method, maybe without grid > > sequencing? It simply may not be possible to get convergence from a “poor” > > initial guess. One should always use grid sequencing if possible. > > > > Barry > > > > > > > > S. > > > > > > > > > On Tue, Jun 17, 2014 at 3:20 PM, Barry Smith <[email protected]> wrote: > > > > > > On Jun 17, 2014, at 2:12 PM, Sang pham van <[email protected]> wrote: > > > > > > > Hi, > > > > > > > > I am using DM structure and SNES to solve a 3D problem. In the problem > > > > I have 3 variables. > > > > > > > > I got SNES converged with a grid. Obtain result are physically right. > > > > However when I refine the grid, SNES does not always converge, > > > > > > With the refined grid how are you starting the solution? Do you use > > > the interpolated solution from the coarser grid (called grid sequencing) > > > or just some “not good” initial guess? > > > > > > > the reason of divergence is line search fail or linear solver failed. > > > > (I also tried other type of SNES, line search seems to be the one best > > > > fits my problem) > > > > > > > > Can you please give me a suggestion to figure out the problem with my > > > > solver? What options should I use to have pure Newton method in SNES? > > > > Is there any advance option I can use with line search to improve SNES > > > > convergence. > > > > > > > > > > You should use grid sequencing, not only does it get convergence when > > > you may not otherwise get it but it will also solve the problem faster. > > > With PETSc DM you can use -snes_grid_sequence n or SNESSetGridSequence() > > > in the code to do n levels of grid sequencing. > > > > > > Barry > > > > > > > Thank you very much. > > > > > > > > Minh. > > > > > > > > > > > > > > > >
