Hi Wee-Beng,<br>Here are my understanding for ex22. Correct me please, if there is any mis-understanding, since I am also new to dmmg.<br><br>Yan<br><br><div class="gmail_quote">On Fri, Dec 11, 2009 at 1:44 AM, Wee-Beng Tay <span dir="ltr"><<a href="mailto:zonexo@gmail.com">zonexo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br><br>I'm also looking at the fortran version of ex22. I have some questions:<br><br>
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?<br>
<br></blockquote><div><br>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 . <br>
<br>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. <br><br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2. What is stencil width (s)? Seems to be 1 in both ex22 and ex29.<br><br></blockquote><div><br>you are correct, see here:<br><a href="http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/DA/DACreate3d.html">http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/DA/DACreate3d.html</a><br>
<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">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?<br><br></blockquote><div><br>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. <br>
<br>You can do a test on passing the PETSC_NULL_INTEGER to see whether PETSc complains.<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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?<br>
<br></blockquote><div><br><br>For both ex22 and ex29, it is solving a linear system, the Jacobian is just your coefficient matrix, (or 7 pt stencil matrix).<br><br><br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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.<br>
<br>thanks alot!<div><div></div><div class="h5"><br></div></div></blockquote><div><br>If you are solving 3D problem, you should also look at the ex22 to see how to correctly set up the 3D stencil. <br>Ex22 are only dealing with Dirichlet B.C.s, so care has to be taken for the Neumann boundary conditions. <br>
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()<br><br><br><br><br><br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div class="h5"><br><div class="gmail_quote">On Fri, Dec 11, 2009 at 4:14 AM, Ryan Yan <span dir="ltr"><<a href="mailto:vyan2000@gmail.com" target="_blank">vyan2000@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Barry, <br>Thank you very much for the confirm.<br><font color="#888888"><br>Yan</font><div><div></div><div><br><br><div class="gmail_quote">On Thu, Dec 10, 2009 at 3:12 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div><br>
On Dec 10, 2009, at 2:09 PM, Ryan Yan wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi all,<br>
I was looking at the ex22 of ksp.<br>
<br>
If I call:<br>
...<br>
ierr = DMMGCreate(PETSC_COMM_WORLD,3,PETSC_NULL,&dmmg);CHKERRQ(ierr);<br>
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);<br>
...<br>
<br>
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?<br>
<br>
When I run ex22 with -ksp_view, I saw that on the finest level there are 9 pts on each direction.<br>
<br>
Is that because I have 3 level?<br>
</blockquote>
<br></div></div>
Yes. The DA you create initially is for the coarsest grid, finer ones are automatically created by the DMMG.<br>
<br>
Barry<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Yan<br>
<br>
</blockquote>
<br>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>