[petsc-users] Diagnosing Poisson Solver Behavior

Matthew Knepley knepley at gmail.com
Tue Oct 13 16:57:48 CDT 2015


On Tue, Oct 13, 2015 at 4:53 PM, K. N. Ramachandran <knram06 at gmail.com>
wrote:

> Hello Matt,
>
> Ah ok. I had tried specifying -pc_mg_levels earlier, but it asks for
> interpolation to be setup. I am currently working on using DMDA from
> examples 32 and 34, which sets up the interpolation, using
> DMDASetInterpolationType. So this is the recommended way to go forward
> right?
>
> Since I supply the sparse matrix format and the rhs values to PETSc, does
> it make sense to do a DMDACreate1d instead of 3d? I did a sample
> implementation using DMDA 1d and when I call KSPSolve and fetch the
> solution, it comes out all zeros, with the solver having converged. I am
> trying to understand what I am doing wrong there.
>

My understanding was that you are just solving 3D Poisson with a star
stencil on a regular grid. SNES ex5 solves 2D Poisson with
a star stencil on a regular grid (set lambda = 0.0). Just use that until
you understand the performance, and then change it for 3D
which is only about 10 lines of code.

For this problem, there is no need for the more complicated stuff.

  Thanks,

     Matt


> On Mon, Oct 12, 2015 at 10:17 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Mon, Oct 12, 2015 at 9:11 PM, K. N. Ramachandran <knram06 at gmail.com>
>> wrote:
>>
>>> Hello Matt,
>>>
>>> Actually I felt the boundary conditions were having a role to play and
>>> set all the boundary conditions to Dirichlet. In this case, convergence was
>>> almost immediate with the Hypre preconditioner, taking 17 seconds with 3
>>> iterations. The MG method took about the same time though.
>>>
>>> So I reverted to the Dirichlet, Neumann mix of BCs and Hypre starts to
>>> diverge. Please find attached the output for the Hypre run using Dirichlet
>>> and Neumann for a 21^3 grid (rows), with a max of 7 nonzeros per row.
>>> Details of the options used before running are in the file. The solver used
>>> in all cases is bcgs.
>>>
>>> Also attached is the MG output for 101^3 grid
>>> 1) Dirichlet and Neumann
>>> 2) Dirichlet only
>>>
>>> where it seems to take about the same time.
>>>
>>
>> Notice that you have no levels of MG here. You need to use -pc_mg_levels
>> <n>
>>
>>    Matt
>>
>>
>>>
>>>
>
> Thanking You,
> Ramachandran K.N.
> Ph: 814-441-4279
>



-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20151013/d8482f28/attachment.html>


More information about the petsc-users mailing list