<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 08/23/2013 04:42 PM, Matthew Knepley
wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4G=Ey+YDUGBO5ZcCK3+=pUrdwY72YEP34aOAUw3ZQkvspA@mail.gmail.com"
type="cite">
<div dir="ltr">On Fri, Aug 23, 2013 at 9:35 AM, Olivier Bonnefon <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:olivier.bonnefon@avignon.inra.fr"
target="_blank">olivier.bonnefon@avignon.inra.fr</a>></span>
wrote:<br>
<div class="gmail_extra">
<div class="gmail_quote">
<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">Hello,<br>
<br>
Thanks for your answers, I'm now able to import and
distribute a mesh:<br>
</blockquote>
<div><br>
</div>
<div>You might simplify this to</div>
<div><br>
</div>
<div>if (rank) {obNbCells = 0; obNbVertex = 0;}</div>
<div>ierr = DMPlexCreateFromCellList(comm,dim,obNbCells,obNbVertex,3,0,obCells,2,obVertex,dm);CHKERRQ(ierr);<br>
</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">if
(!rank){<br>
ierr = DMPlexCreateFromCellList(comm,dim,obNbCells,obNbVertex,3,0,obCells,2,obVertex,dm);CHKERRQ(ierr);<br>
for (i=0;i<obNbBound;i++){<br>
ierr =DMPlexSetLabelValue(*dm, "marker",
obBoundary[i]+obNbCells, 1);CHKERRQ(ierr);<br>
}<br>
}else {<br>
ierr = DMPlexCreateFromCellList(comm,dim,0,0,3,0,obCells,2,obVertex,dm);CHKERRQ(ierr);<br>
}<br>
<br>
ierr = DMPlexDistribute(*dm, partitioner, 0,
&distributedMesh);CHKERRQ(ierr);<br>
if (distributedMesh) {<br>
ierr = DMDestroy(dm);CHKERRQ(ierr);<br>
*dm = distributedMesh;<br>
}<br>
<br>
Is it possible to known the resulting partition ? ie, What
is the mapping between the initial cell number and the
local cell (used in DMPlexComputeResidualFEM)?<br>
I need this to write an efficient implementation of the
FEM struct functions f0 and g0, space depending.<br>
</blockquote>
<div><br>
</div>
<div>Yes, but I really do not think you want to do things
that way. I am assuming you want different material models
or something</div>
<div>in different places. The way I envision that is using a
DMLabel to mark up parts of the domain. All labels are
automatically</div>
<div>distributed with the mesh. Is that what you want?</div>
</div>
</div>
</div>
</blockquote>
Hello,<br>
<br>
It is exactly what I need: I'm mobilized a landscape, and the
parameters of the model depend of the type of crop. Therefore, I
have created a label for each type of crop and I have labeled each
triangle with the corresponding label:<br>
<br>
for (i=0;i<obNbCells;i++){<br>
if (labelCells[i]==1){<br>
ierr =DMPlexSetLabelValue(*dm, "marker1", i,
1);CHKERRQ(ierr);<br>
}else{<br>
ierr =DMPlexSetLabelValue(*dm, "marker2", i,
1);CHKERRQ(ierr);<br>
}<br>
}<br>
<br>
So, I'm able to mark the triangles, but I'm not able to get this
label in the plugin "fem.f0Funcs" and "fem.g0Funcs": These plugins
are called by looping on the triangles in the function
"FEMIntegrateResidualBatch", but the dm is not available, so I can't
use the functions DMPlexGetLabel, DMLabelGetStratumSize and
DMLabelGetStratumIS. What is the good way to get the labels in the
user plugins of the fem struct ?<br>
<br>
<br>
Thanks a lot for your help.<br>
<br>
Olivier B<br>
<blockquote
cite="mid:CAMYG4G=Ey+YDUGBO5ZcCK3+=pUrdwY72YEP34aOAUw3ZQkvspA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</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">Regards,<br>
<br>
Olivier B<span class=""><font color="#888888"><br>
<br>
-- <br>
Olivier Bonnefon<br>
INRA PACA-Avignon, Unité BioSP<br>
Tel: <a moz-do-not-send="true"
href="tel:%2B33%20%280%294%2032%2072%2021%2058"
value="+33432722158" target="_blank">+33 (0)4 32 72
21 58</a><br>
<br>
</font></span></blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <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
</div>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Olivier Bonnefon
INRA PACA-Avignon, Unité BioSP
Tel: +33 (0)4 32 72 21 58</pre>
</body>
</html>