<div dir="ltr"><div><div><br>Thank you.<br><br>Well, only the first part. I move around the elements and identify the Halo nodes etc. However, I do not renumber the vertices to be contiguous on the CPUs like what you said.<br>

</div><div> <br></div>BUT, I just noticed: I partition the domain based on the computational wight of the elements which is different to that of Mat-Vec calculation. This means my portioning may not be efficient for the solution process. <br>

<br></div>I think I will then go with the copy-in, solve, copy-out option.<br><br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 14, 2014 at 3:06 AM, 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="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
On May 13, 2014, at 11:42 AM, Hossein Talebi <<a href="mailto:talebi.hossein@gmail.com">talebi.hossein@gmail.com</a>> wrote:<br>
<br>
><br>
> I have already decomposed the Finite Element system using Metis. I just need to have the global rows exactly like how I define and I like to have the answer in the same layout so I don't have to move things around the processes again.<br>


<br>
</div>   Metis tells you a good partitioning IT DOES NOT MOVE the elements to form a good partitioning. Do you move the elements around based on what metis told you and similarly do you renumber the elements (and vertices) to be contiquously numbered on each process with the first process getting the first set of numbers, the second process the second set of numbers etc?<br>


<br>
   If you do all that then when you create Vec and Mat you should simply set the local size (based on the number of local vertices on each process). You never need to use PetscLayoutCreate and in fact if your code was in C you would never use PetscLayoutCreate()<br>


<br>
   If you do not do all that then you need to do that first before you start calling PETSc.<br>
<span class="HOEnZb"><font color="#888888"><br>
   Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> No, I don't need it for something else.<br>
><br>
> Cheers<br>
> Hossein<br>
><br>
><br>
><br>
><br>
> On Tue, May 13, 2014 at 6:36 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Tue, May 13, 2014 at 11:07 AM, Hossein Talebi <<a href="mailto:talebi.hossein@gmail.com">talebi.hossein@gmail.com</a>> wrote:<br>
> Hi All,<br>
><br>
><br>
> I am using PETSC from Fortran. I would like to define my own layout i.e. which row belongs to which CPU since I have already done the domain decomposition.  It appears that  "PetscLayoutCreate" and the other routine do this. But in the manual it says it is not provided in Fortran.<br>


><br>
> Is there any way that I can do this using Fortran? Anyone has an example?<br>
><br>
> You can do this for Vec and Mat directly. Do you want it for something else?<br>
><br>
>   Thanks,<br>
><br>
>      Matt<br>
><br>
> Cheers<br>
> Hossein<br>
><br>
><br>
><br>
><br>
> --<br>
> 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<br>
><br>
><br>
><br>
> --<br>
> <a href="http://www.permix.org" target="_blank">www.permix.org</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr"><a href="http://www.permix.org" target="_blank">www.permix.org</a><br></div>
</div>