ksp tutorial ex22

Ryan Yan vyan2000 at gmail.com
Fri Dec 11 09:57:54 CST 2009


Hi Wee-Beng,
Here are my understanding for ex22. Correct me please, if there is any
mis-understanding, since I am also new to dmmg.

Yan

On Fri, Dec 11, 2009 at 1:44 AM, Wee-Beng Tay <zonexo at gmail.com> wrote:

> Hi,
>
> I'm also looking at the fortran version of ex22. I have some questions:
>
> 1. M,N,P are global dimension in each direction of the array. I'm abit
> confused. Do you mean the no. of grid pts at the coarse level? Hence, if my
> problem has 27x27 grid pts, do I use M=N=9 with 3 multigrid levels or M=N=3
> with 9 lvls? What is the guideline in choosing the number of multigrid
> levels?
>
>
M,N, P are the #s of grid points in each direction (x,y,z) of your
*coarsest* mesh. The way that PETSc always starts from the coarsest level to
initialize the mesh is convenient for generating a series of mesh, I guess .


If you want to solve a 2D problem with 27x27 mesh points, you can do a test
to see how many levels can bring you the resolution close to what you want.




> 2. What is stencil width (s)? Seems to be 1 in both ex22 and ex29.
>
>
you are correct, see here:
http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/DA/DACreate3d.html




> 3. What are arrays containing the number of nodes in each cell along the
> x/y/z coordinates? Is it ok to just use the default PETSC_NULL_INTEGER?
>
>
I think,  if you want to specify a DA with you own partitioning(how many
points on each process on each direction), then you need to set up these
arrarys correctly.

You can do a test on passing the PETSC_NULL_INTEGER to see whether PETSc
complains.



> 4. There's a subroutine ComputeJacobian which computes the jacobian.
> However, what is it actually calculating? Is it simply calculating the
> coefficient arising from the discretization of the matrix?
>
>

For both ex22 and ex29,  it is solving a linear system, the Jacobian is just
your coefficient matrix, (or 7 pt stencil matrix).





> 5. My objective is to solve for the poisson equation arising from the
> Navier Stokes equations. ie div grad P = F, which F can be calculated
> separately. The boundary conditions are Neumann which is dp/dx, dp/dy=0. Is
> this a good example to follow? Or is ex29 a better example, although I need
> time to digest the C syntax.
>
> thanks alot!
>
>
If you are solving 3D problem, you should also look at the ex22 to see how
to correctly set up the 3D stencil.
Ex22  are only dealing with Dirichlet B.C.s, so care has to be taken for the
Neumann boundary conditions.
Also, for Neumann B.C.s, one should be aware of there is a null space of
your coefficient matrix A. ex29 has a piece of code for that.
DMMGSetNullSpace()








>
> On Fri, Dec 11, 2009 at 4:14 AM, Ryan Yan <vyan2000 at gmail.com> wrote:
>
>> Hi Barry,
>> Thank you very much for the confirm.
>>
>> Yan
>>
>>
>> On Thu, Dec 10, 2009 at 3:12 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>
>>>
>>> On Dec 10, 2009, at 2:09 PM, Ryan Yan wrote:
>>>
>>>  Hi all,
>>>> I was looking at the ex22 of ksp.
>>>>
>>>> If I call:
>>>> ...
>>>> ierr = DMMGCreate(PETSC_COMM_WORLD,3,PETSC_NULL,&dmmg);CHKERRQ(ierr);
>>>> ierr =
>>>> DACreate3d(PETSC_COMM_WORLD,DA_NONPERIODIC,DA_STENCIL_STAR,-3,-3,-3,PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,1,1,0,0,0,&da);CHKERRQ(ierr);
>>>>  ...
>>>>
>>>> How many grid pts should I have on the finest level? Is it 27,
>>>> considering I am set 3 as the global dimension in each direction of the
>>>> array?
>>>>
>>>> When I run ex22 with -ksp_view, I saw that  on the finest level there
>>>> are 9 pts on each direction.
>>>>
>>>> Is that because I have 3 level?
>>>>
>>>
>>>   Yes. The DA you create initially is for the coarsest grid, finer ones
>>> are automatically created by the DMMG.
>>>
>>>   Barry
>>>
>>>
>>>> Yan
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20091211/c4409507/attachment-0001.htm>


More information about the petsc-users mailing list