Yes, it&#39;s quite easy to implement (I just need to figure out how I do that in Xdmf format... but it must be easy...)<br><br>Just to emphasize the subject -- or piss you off ;oP<br><br>The term &quot;ghost&quot; (some people use &quot;halo&quot;. In portuguese it&#39;s &quot;fantasma&quot;) is suitable to
define something that does not really exist -- or exists somehow in
another life ;o) -- in this sense, only cells (or nodes) that are not really owned
by a subdomain should be considered as ghosts. Consequently, only cells
(or nodes) that come from other parallel subdomains (in other words, are somehow
overlapped) should be considered as &quot;ghost cells&quot; or &quot;ghost nodes&quot;.<br><br>As I said, just trying to piss you off...<br><br>of course, I&#39;m kidding....<br><br>Renato.<br>
<br>It explains why I never tried to define an array of ghost cells in my code. They simply does not exist in my case...<br><br><div class="gmail_quote">On Mon, Apr 6, 2009 at 8:58 PM, Berk Geveci <span dir="ltr">&lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I did not mean ghost cells. I meant ghost points. If you were to mark<br>
the points at a shared interface as ghost (more appropriately<br>
duplicated), we can easily throw away all polygons that contain all<br>
duplicate points when extracting external surfaces. Even better, if we<br>
had an array that had values like:<br>
<br>
-1        : point not shared<br>
n &gt;= 0 : point shared, owned by process n<br>
<br>
we could make bunch of filters work correctly - mainly statistics ones<br>
and the glyph filter. Is this something that is easy for your<br>
simulation to write?<br>
<font color="#888888"><br>
-berk<br>
</font><div><div></div><div class="h5"><br>
On Mon, Apr 6, 2009 at 7:41 PM, Renato Elias &lt;<a href="mailto:rnelias@gmail.com">rnelias@gmail.com</a>&gt; wrote:<br>
&gt; Berk, forgive for delaying my response (I was out of my lab...)<br>
&gt;<br>
&gt; Just a silly question:<br>
&gt;<br>
&gt; What do you exactly mean by &quot;Ghost cell&quot;? This silly question is justified<br>
&gt; by the fact that I thought that ghost cells only make sense when we have<br>
&gt; subdomains _overlapped_. In these cases, the number of overlapped cell<br>
&gt; layers should (or could) be considered as &quot;ghost level&quot;.<br>
&gt;<br>
&gt; In my case, the subdomains are not overlapped at all. They are just<br>
&gt; partitioned by Metis and the solver can deal with the computations without<br>
&gt; the need to use overlapped elements. Thus, if &quot;ghost cells&quot; can be simply<br>
&gt; defined by &quot;cells somehow touching the parallel interface (even those not<br>
&gt; overlapped)&quot; I think I could try tagging my parallel interface cells as<br>
&gt; &quot;ghost level 0&quot; to see what happens...<br>
&gt;<br>
&gt; Renato.<br>
&gt;<br>
&gt; On Sun, Apr 5, 2009 at 11:53 PM, Chris Kees<br>
&gt; &lt;<a href="mailto:christopher.e.kees@usace.army.mil">christopher.e.kees@usace.army.mil</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Berk,<br>
&gt;&gt;<br>
&gt;&gt; Thanks for correcting me. I&#39;ll try adding the vtkGhostLevels to the XDMF<br>
&gt;&gt; and see how that goes.<br>
&gt;&gt;<br>
&gt;&gt; Chris<br>
&gt;&gt; On Apr 4, 2009, at 2:50 PM, Berk Geveci wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; The right way to deal with this situation is to mark the ghost cells<br>
&gt;&gt;&gt; as ghost. If you create a cell array called vtkGhostLevels and assign<br>
&gt;&gt;&gt; 0 to inside cells and 1 to ghost cells, you should not need<br>
&gt;&gt;&gt; MergeBlocks or CleanToGrid. Note that this array has to be of type<br>
&gt;&gt;&gt; unsigned char. There are actual benefits to keeping ghost levels since<br>
&gt;&gt;&gt; some algorithms will produce better results.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; -berk<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Apr 2, 2009 at 6:37 PM, Chris Kees<br>
&gt;&gt;&gt; &lt;<a href="mailto:christopher.e.kees@usace.army.mil">christopher.e.kees@usace.army.mil</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I turned off the overlapping domain decomposition (ghost cells) for a<br>
&gt;&gt;&gt;&gt; simple<br>
&gt;&gt;&gt;&gt; problem and the sequence<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; MergeBlocks-&gt;CleantoGrid-&gt;ExtractSurface-&gt;Clip<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; shows just the physical boundary of the problem (clipped open so you can<br>
&gt;&gt;&gt;&gt; see<br>
&gt;&gt;&gt;&gt; inside). Also volume visualization and streamline calculation works with<br>
&gt;&gt;&gt;&gt; no<br>
&gt;&gt;&gt;&gt; processor boundary artifacts.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; From what I understand, there are no filters in paraview or abstractions<br>
&gt;&gt;&gt;&gt; in<br>
&gt;&gt;&gt;&gt; the XDMF data model  at this time that will allow paraview to read in<br>
&gt;&gt;&gt;&gt; overlapping blocks and really make use of the ghost cells correctly. For<br>
&gt;&gt;&gt;&gt; now<br>
&gt;&gt;&gt;&gt; truncating our output to only &quot;owned&quot; elements will solve our problems.<br>
&gt;&gt;&gt;&gt; Thanks again for the help.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Chris<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mar 30, 2009, at 2:06 PM, Chris Kees wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Thanks for  the help. I also tried suggestions from Paul, Ken, and<br>
&gt;&gt;&gt;&gt;&gt; Berk,<br>
&gt;&gt;&gt;&gt;&gt; but it does seem that I&#39;m stuck right now unless I provide ParaView<br>
&gt;&gt;&gt;&gt;&gt; with<br>
&gt;&gt;&gt;&gt;&gt; more information. Since streamlines are computed correctly on the<br>
&gt;&gt;&gt;&gt;&gt; current<br>
&gt;&gt;&gt;&gt;&gt; multiblock mesh I just generated the mesh on a single processor and<br>
&gt;&gt;&gt;&gt;&gt; used<br>
&gt;&gt;&gt;&gt;&gt; ExtractSurface-&gt;Clip on that mesh to visualize the geometry around the<br>
&gt;&gt;&gt;&gt;&gt; streamlines from the multiblock grid.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On the first method: Each of my UnstructuredGrids in the Multiblock<br>
&gt;&gt;&gt;&gt;&gt; Grid<br>
&gt;&gt;&gt;&gt;&gt; is a subdomain in an overlapping decomposition of the domain. Each of<br>
&gt;&gt;&gt;&gt;&gt; the<br>
&gt;&gt;&gt;&gt;&gt; subdomains has several elements of overlap (the layer of ghost cells is<br>
&gt;&gt;&gt;&gt;&gt; more<br>
&gt;&gt;&gt;&gt;&gt; than one element thick).  Presumably the streamline generation works<br>
&gt;&gt;&gt;&gt;&gt; now on<br>
&gt;&gt;&gt;&gt;&gt; the multiblock grid because the overlap is loaded into ParaView. Is<br>
&gt;&gt;&gt;&gt;&gt; there a<br>
&gt;&gt;&gt;&gt;&gt; way I can just set a cell-centered attributed to identify the ghost<br>
&gt;&gt;&gt;&gt;&gt; cells so<br>
&gt;&gt;&gt;&gt;&gt; that surface extraction and volume visualization will work too?<br>
&gt;&gt;&gt;&gt;&gt;  Currently<br>
&gt;&gt;&gt;&gt;&gt; volume visualization of the multiblock grid shows only a single<br>
&gt;&gt;&gt;&gt;&gt; subdomain<br>
&gt;&gt;&gt;&gt;&gt; and volume visualization after MergeBlocks shows the whole domain but<br>
&gt;&gt;&gt;&gt;&gt; with<br>
&gt;&gt;&gt;&gt;&gt; overlap regions being more opaque.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On your other method, we have both the external boundary mesh and a<br>
&gt;&gt;&gt;&gt;&gt; pre-mesh polygonal representation of the boundaries available in the<br>
&gt;&gt;&gt;&gt;&gt; simulator. You are suggesting that I just dump one of those to a valid<br>
&gt;&gt;&gt;&gt;&gt; ParaView format as well, is that correct?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Chris<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Mar 30, 2009, at 9:14 AM, Jean Favre wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Chris Kees wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; So far I&#39;ve tried MergeBlocks-&gt;ExtractSurface-&gt;FeatureEdges-&gt;Clip and<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; various permutations that I&#39;ve seen in previous posts and the wiki,<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; but I always end up with the  surfaces on the interior of the tank as<br>
&gt;&gt;&gt;&gt;&gt;&gt;&gt; if it still sees each subdomain as a closed surface.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; In fact, it seems to me that ParaView does the best it can. Your<br>
&gt;&gt;&gt;&gt;&gt;&gt; unstructured mesh is partitioned in 512 pieces and [presumably], you<br>
&gt;&gt;&gt;&gt;&gt;&gt; did<br>
&gt;&gt;&gt;&gt;&gt;&gt; not specify ghost-cells at the partition boundaries. Without<br>
&gt;&gt;&gt;&gt;&gt;&gt; ghost-cells, ParaView has no information to help decide whether an<br>
&gt;&gt;&gt;&gt;&gt;&gt; outside face looks towards the outside world, or to another partition.<br>
&gt;&gt;&gt;&gt;&gt;&gt; I<br>
&gt;&gt;&gt;&gt;&gt;&gt; don&#39;t think any combination of filters would help you. Removing<br>
&gt;&gt;&gt;&gt;&gt;&gt; duplicate points may only remove duplicate fake boundaries, but these<br>
&gt;&gt;&gt;&gt;&gt;&gt; fake boundaries must be removed all together.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I use two methods to achieve what you want. Ghost-cells, or another<br>
&gt;&gt;&gt;&gt;&gt;&gt; multi-piece object containing the different boundary types (solid,<br>
&gt;&gt;&gt;&gt;&gt;&gt; symmetries, inflow, outflow, etc) stored as vtkPolyData. These are<br>
&gt;&gt;&gt;&gt;&gt;&gt; read<br>
&gt;&gt;&gt;&gt;&gt;&gt; in from the models on disk.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Jean --<br>
&gt;&gt;&gt;&gt;&gt;&gt; Swiss National Supercomputing Center<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Please keep messages on-topic and check the ParaView Wiki at:<br>
&gt;&gt;&gt;&gt;&gt; <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt;&gt;&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Please keep messages on-topic and check the ParaView Wiki at:<br>
&gt;&gt;&gt;&gt; <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt;&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;<br>
&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;<br>
&gt;&gt; Please keep messages on-topic and check the ParaView Wiki at:<br>
&gt;&gt; <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
&gt;&gt;<br>
&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; <a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>