On Aug 19, 2011, at 4:52 PM, Alan Wei wrote:

> Dear all,
>     I have a question of the access of the DM in PETSc.
> 1) I used 
>   DMDACreate2d(..., &da), where 'da' is a DM parameter;
> 
> 2) and a DMDASetUniformCoordinates(da, ...) was used to set up a coordinate 
> system on 'da'. 
> 
> 3) Then I used 
>   DMDAGetCoordinateDA(da, &cda);
>   DMDAGetGhostedCoordinates(da, &gc);
>   DMDAVecGetArray(cda, gc, &coors); 
>   So that I can access the coordinate values of each points in 'da'. 
> 
> 4) My question is,
>   4.1) in spite of 'coors', is there any other values stored in 'da' for 
> every points of it;

   Nope. 

>   4.2) I want to store other parameters associating with 'da', what should I 
> do for that?

   Those are never stored directly in the DA, each of those would be stored in 
a separate Vec obtained with DMGetGlobalVector().   If you want to carry around 
a bunch of things like that then you can make a struct where you keep them 
together for easy moving around.

   Barry


> for example, since 'da' has a coordinate, I treat it as a uniform mesh. In 
> addition to coordinate values, I hope I can store u and v (x/y-direction 
> velocity magnitude) in each node of this coordinate. I thought about use 
> DMDACreate2d to create other two distributed matrices. However, I'm not sure 
> that these three DM (including 'da') has the same allocation in parallel 
> computational nodes. Like, 'da' is assigned x = 0~4 to rank-0 and x = 5~10 to 
> rank-1; while DM for 'u' is arranged x = 0~5 to rank-0 and x = 6~10 to rank-1.
> 
> Thanks,
> Alan

Reply via email to