<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 7, 2016 at 2:14 PM, Chris Eldred <span dir="ltr"><<a href="mailto:chris.eldred@gmail.com" target="_blank">chris.eldred@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I think what happens on the 1st version is that the input list has<br>
len(3), and since the DMDA only has 1 dimension petsc4py throws the<br>
first ValueError.<br></blockquote><div><br></div><div>Yes, you are right.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
As far as I can tell, the code is expecting a list of lists: ie for<br>
each dimension it gets ranges[i] (where i is the index for the<br>
dimension) and casts it into an array. So I tried the 2nd version,<br>
which fails regardless of whether I use lists or tuples, and I don't<br>
understand why.</blockquote><div><br></div><div>That function returns 'range' and the type is declared as tuple. Did you try</div><div><br></div><div>  <span style="color:rgb(80,0,80);font-size:12.8px">ownership_</span><span style="color:rgb(80,0,80);font-size:12.8px">ranges=((8,8,4),)</span></div><div><span style="color:rgb(80,0,80);font-size:12.8px"><br></span></div><div><span style="color:rgb(80,0,80);font-size:12.8px">    Matt</span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><font color="#888888"><br>
-Chris<br>
</font></span><div class=""><div class="h5"><br>
On Thu, Apr 7, 2016 at 9:00 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Thu, Apr 7, 2016 at 1:52 PM, Chris Eldred <<a href="mailto:chris.eldred@gmail.com">chris.eldred@gmail.com</a>> wrote:<br>
>><br>
>> Hey All,<br>
>><br>
>> (I sent this to petsc-users a few days ago and didn't get any replies,<br>
>> figured I would try here as well...)<br>
>><br>
>> Does anyone know the correct syntax for setting ownership ranges for<br>
>> DMDAs in petsc4py? For example, if I have a 1D DMDA with 20 vertices<br>
>> and 3 processes, and I want to distribute the vertices as [8,8,4],<br>
>> should the correct create call be:<br>
>><br>
>> da =<br>
>> PETSc.DMDA().create(dim=1,dof=1,sizes=[20,],proc_sizes=[3,],boundary_type=[PETSc.DM.BoundaryType.PERIODIC,],<br>
>> stencil_type= PETSc.DMDA.StencilType.BOX,<br>
>> stencil_width=1,ownership_ranges=[8,8,4])<br>
>><br>
>> or<br>
>><br>
>> da =<br>
>> PETSc.DMDA().create(dim=1,dof=1,sizes=[20,],proc_sizes=[3,],boundary_type=[PETSc.DM.BoundaryType.PERIODIC,],<br>
>> stencil_type= PETSc.DMDA.StencilType.BOX,<br>
>> stencil_width=1,ownership_ranges=[[8,8,4],])<br>
>><br>
>> For me, the 1st version fails with<br>
>> ValueError: number of dimensions 1 and number ownership ranges 3<br>
>> (which I expected)<br>
>> but the 2nd version also fails with<br>
>> TypeError: Expected tuple, got list<br>
>><br>
>> I have tried using tuples instead of lists and nothing changes.<br>
>> Creating without the ownership_ranges argument works fine as well. Is<br>
>> there something else I am missing?<br>
><br>
><br>
> Here is the code:<br>
><br>
><br>
> <a href="https://bitbucket.org/petsc/petsc4py/src/b234a50085607b793fce93d5dc46307c0d9b57c4/src/PETSc/petscdmda.pxi?at=master&fileviewer=file-view-default#petscdmda.pxi-150" rel="noreferrer" target="_blank">https://bitbucket.org/petsc/petsc4py/src/b234a50085607b793fce93d5dc46307c0d9b57c4/src/PETSc/petscdmda.pxi?at=master&fileviewer=file-view-default#petscdmda.pxi-150</a><br>
><br>
> I do not understand why the 1st version fails.<br>
><br>
>    Matt<br>
><br>
>><br>
>> Thanks in advance for any assistance!<br>
>><br>
>> Regards,<br>
>> -Chris<br>
>><br>
>><br>
>> --<br>
>> Chris Eldred<br>
>> Postdoctoral Fellow, LAGA, University of Paris 13<br>
>> PhD, Atmospheric Science, Colorado State University, 2015<br>
>> DOE Computational Science Graduate Fellow (Alumni)<br>
>> B.S. Applied Computational Physics, Carnegie Mellon University, 2009<br>
>> <a href="mailto:chris.eldred@gmail.com">chris.eldred@gmail.com</a><br>
><br>
><br>
><br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments<br>
> is infinitely more interesting than any results to which their experiments<br>
> lead.<br>
> -- Norbert Wiener<br>
<br>
<br>
<br>
--<br>
Chris Eldred<br>
Postdoctoral Fellow, LAGA, University of Paris 13<br>
PhD, Atmospheric Science, Colorado State University, 2015<br>
DOE Computational Science Graduate Fellow (Alumni)<br>
B.S. Applied Computational Physics, Carnegie Mellon University, 2009<br>
<a href="mailto:chris.eldred@gmail.com">chris.eldred@gmail.com</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>