Hello,

thank you very much. This is what I was looking for.

Best regards,

Carlos

On 04/03/13 23:53, Barry Smith wrote:
>
>     Carlos,
>
>       It is not clear what you want. As Matt noted you can use the lx,ly,lz 
> arguments to control the sizes of the subdomains if that is what you want.
>
>       PETSc always uses the "natural ordering of processes" for the MPI 
> communicator passed into the DMDA creation routine. In 2d  MPI rank 0 gets  i 
> coordinates 0 to m_0 - 1, j coordinates 0 to n_0 -1; rank 1 gets i 
> coordinates m_0 to m_1 -1, j coordinates 0 to n_0 - 1 etc. I believe the 
> users manual has a graphic describing this.   Say we have 6 MPI processes and 
> have partitioned them for the DMDA as 3 in the i coordinates and 2 in the j 
> coordinates this looks like
>
>      3    4    5
>      0    1    2
>
>     If you wish to have different MPI ranks for each domain you need to write 
> some MPI code. You construct a new MPI communicator with the same processes 
> as the MPI communicator passed to the DMDA create routine but with the other 
> ordering you want to use. Now you just use MPI_Comm_rank() of the new MPI 
> communicator to "label" each subdomain.  So you could (if you wanted to) 
> label them as
>
>      1   3    5
>      0   2    4
>
> relative to the other communicator.
>
>     Barry
>
> On Apr 3, 2013, at 4:24 PM, Carlos Pachajoa <cpachaj at gmail.com> wrote:
>
>> Hello,
>>                            I'm working on a CFD simulator that will be used 
>> for educational purposes.
>>
>> I'm using PETSc to solve a Poisson equation for the pressure, using DM and a 
>> 5-point stencil. I would like to extend it to work on parallel.
>>
>> Since the code will also be used to teach some fundamental concepts of 
>> parallel programming, it would be ideal if the user can set which rank deals 
>> with each subdomain. Out of the DM, one can obtain the corners of the region 
>> corresponding to a rank, however, I have not found a function to assign a 
>> processor to a region. I know that you can assign a set of rows to any 
>> processor when explicitly setting the columns of a matrix, but I wonder if 
>> this is also possible using DM.
>>
>> Thank you for your time and your hints.
>>
>> Best regards,
>>
>> Carlos
>

Reply via email to