[petsc-users] DMDA Question

Matthew Knepley knepley at gmail.com
Wed Dec 7 07:26:20 CST 2011


On Wed, Dec 7, 2011 at 5:49 AM, TAY wee-beng <zonexo at gmail.com> wrote:

>  Hi,
>
> Sorry to hijack the discussion but I'm currently thinking of implementing
> DMDA for staggered grids in 2D and later on in 3D.
>
> I am not sure if my problem is exactly the same as that of Tim but I don't
> really understand his problem.
>
> So for my case, I have a staggered grid for my finite volume CFD code. So
> the grid looks like this:
>
>
>
> Do I need to create 3 DMDA, for u,v,p? When computing the flux, I will
> also need to interpolate u and v velocities on the u or v cells. I hope you
> can suggest the best way to approach this problem.
>

Can you look at SNES ex30? I believe that discretization  is very similar
to what you want.

   Matt


> Btw, in the discussion, there's also some mention of DOF. However, I
> thought each variable (u,v,p) will have only 1 DOF, is that not so?
>
> Thanks!
>
> Yours sincerely,
>
> TAY wee-beng
>
>
> On 2/12/2011 8:12 PM, Barry Smith wrote:
>
>    Tim,
>
>     Unfortunately the DMDA was not designed with the idea of staggered grids (or mixed discretizations) in mind so they are not straightforward like we would like them to be.
>
>     Do I understand you want two DMDA
>
> 1) one that has locations for cell vertices (or face centers)?
>
> 2) and one that locations for cell centers?
>
>    Once we understand what you want we may be able to make a suggestion.
>
>    Barry
>
>
> On Dec 2, 2011, at 1:08 PM, Tim Gallagher wrote:
>
>
>  Hi,
>
> I'm trying to create some grids for a finite volume simulation and am a little stuck on the best way to tackle it. The approach now is to use DMDACreate3d with known number of I, J, K points and PETSC_DECIDE for the processors. Then I am trying to create another DMDA with the same distribution to store the cell centers and actual solution vector. The problem with is is the following:
>
> Consider 9 points and two processors. Processor one gets points [1,5] with point 6 as a ghost and processor two gets points [6,9] with point 5 as a ghost. But now to create/store cell centers, processor two needs point 4 to construct a cell center for it's ghost.
>
> I can certainly fetch that point and do the calculation, but I feel like there is a more elegant way to do this out there. Has anybody used a DMDA to create a dual DMDA?
>
> Any advice would be appreciated,
>
> Tim
>
>


-- 
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/20111207/01ef8642/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 47018 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111207/01ef8642/attachment-0001.png>


More information about the petsc-users mailing list