<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=windows-1252"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Not sure if this is the appropriate thread:<br>
<br>
What happens in parallel if a connectivity array for a given cell has
point id's that are off-processor?   <br>
Suppose:<br>
<ul>
  <li>processor P0 owns points x1, x2, x3 -- numCells = 3;  cell c1(x1)
connectivity = {x2, x8}<br>
  </li>
  <li>processor P1 owns point x4, x5, x6,x7,x8 -- numCells = 4;  cell
c8 (x8) connectivity = {x7, x2}<br>
  </li>
</ul>
What I have found is that setting global Ids on P0 for connectivity
associated with c1 causes problems?  Does that make sense?  Is there a
work around?<br>
<br>
Thanks,<br>
John<br>
<br>
<br>
<br>
Moreland, Kenneth wrote:
<blockquote cite="mid:C7B14BBE.12927%25kmorel@sandia.gov" type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <title>Re: [Paraview] Cells and Points in a Structured Grid Volume</title>
  <font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;">Please read <i>The VTK User’s Guide</i>.  In
particular, Chapter 12 talks about the structure, implementation, and
interface of VTK data objects.  It should clear up lots of your
questions.<br>
  <br>
  </span></font>
  <blockquote><font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><a moz-do-not-send="true"
 href="http://www.kitware.com/products/books/vtkguide.html">http://www.kitware.com/products/books/vtkguide.html</a><br>
    </span></font></blockquote>
  <font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><br>
The Threshold filter converts the data from a structured grid to an
unstructured grid (because it changes the topology).  The connectivity
and coordinates are no longer implicit, so they have to be stored in
files.  Thus, running the Threshold filter can actually change your
data a lot.  There is a longer discussion of this in <i>The ParaView
Tutorial</i>, section 3.8.<br>
  <br>
  </span></font>
  <blockquote><font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><a moz-do-not-send="true"
 href="http://www.paraview.org/Wiki/The_ParaView_Tutorial">http://www.paraview.org/Wiki/The_ParaView_Tutorial</a><br>
    </span></font></blockquote>
  <font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><br>
-Ken<br>
  <br>
  <br>
On 2/28/10 3:42 AM, "Christian Werner" &lt;<a moz-do-not-send="true"
 href="christian.werner@rwth-aachen.de">christian.werner@rwth-aachen.de</a>&gt;
wrote:<br>
  <br>
  </span></font>
  <blockquote><font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;">Thank you very much. Now things have become a
little clearer. Anyway<br>
there are a few things which I do not yet understand.<br>
    <br>
I see now from the source of the Threshold plugin that the data to be<br>
processed is actually obtained in three different ways:<br>
    <br>
vtkPointData *pd=input-&gt;GetPointData(),
*outPD=output-&gt;GetPointData();<br>
vtkCellData *cd=input-&gt;GetCellData(),
*outCD=output-&gt;GetCellData();<br>
    <br>
vtkDataArray *inScalars =
this-&gt;GetInputArrayToProcess(0,inputVector);<br>
//inputVector is the input information vector<br>
    <br>
    <br>
where the latter seems to be the array containing the actual volume<br>
data. The decision if a cell or point goes through the thresholding<br>
criteria is made a little later:<br>
    <br>
keepCell = this-&gt;EvaluateComponents( inScalars, ptId );<br>
or<br>
keepCell = this-&gt;EvaluateComponents( inScalars, cellId );<br>
    <br>
    <br>
This raises two questions:<br>
    <br>
1) are the ptId and cellId disjunct?<br>
2) if yes, does that mean that the InputArray contains point AND cell<br>
data? This clearly would require additional memory which is bad if you<br>
are working with big volumes.<br>
    <br>
Also I see the use of a DataSet which seems to hold all the cells of the<br>
volume and each cell seems to contain points ( these must be 8, right? )<br>
I guess these points store coordinates? At least there is still another<br>
array containing only IDs. It seems as if there actually is a bunch of<br>
redundant information stored when I read structured grid, or at least<br>
when executing the Threshold filter.<br>
    <br>
This would explain why the memory usage skyrockets when manipulating our<br>
700MB (small version!) volume.<br>
    <br>
I don't want to complain here about anything, that memory issue is<br>
another story. More important to me is that I understand the structure<br>
of this.<br>
    <br>
    <br>
Best regards,<br>
Christian<br>
    <br>
    <br>
    <br>
    <br>
Moreland, Kenneth wrote:<br>
&gt; In a 3D structured grid, there is the concept of points and cells
and<br>
&gt; VTK does in fact differentiate the two. In particular, 8 points
make<br>
&gt; up a hexahedral-shaped voxel cell. As is dictated by the topology,<br>
&gt; there is one fewer cell than points in each dimension. For
example, if<br>
&gt; the grid has 512x512x128 points, it will have 511x511x127 cells.<br>
&gt;<br>
&gt; The raw image reader simply assumes you want to load the data as
point<br>
&gt; data and creates the grid accordingly. I don’t think there is any
way<br>
&gt; to make it load the data as cells. I can think of three ways to
handle<br>
&gt; this.<br>
&gt;<br>
&gt;    1. Close your eyes, take a deep breath, and find the inner
peace to<br>
&gt;       simply let ParaView/VTK treat the data as point data. I
cannot<br>
&gt;       think of any operation on cell data that can not be done on<br>
&gt;       point data. You just have to realize that ParaView will also
let<br>
&gt;       you do some operations that may not be appropriate for cell
data<br>
&gt;       (particularly those that interpolate the values in the
cells).<br>
&gt;    2. Make a filter that converts the structured grid that has
point<br>
&gt;       data to one that has cell data. It would simply create a new<br>
&gt;       topology on the output with one more point in every dimension<br>
&gt;       and then shallow copy the data as cell data. It should not be<br>
&gt;       too hard to implement. No, I am not volunteering.<br>
&gt;    3. Make a new reader that reads the data as cell data as it
should.<br>
&gt;<br>
&gt;<br>
&gt; I hope that helps.<br>
&gt;<br>
&gt; -Ken<br>
&gt;<br>
&gt;<br>
&gt; On 2/26/10 8:45 AM, "Christian Werner"<br>
&gt; &lt;<a moz-do-not-send="true"
 href="christian.werner@rwth-aachen.de">christian.werner@rwth-aachen.de</a>&gt;
wrote:<br>
&gt;<br>
&gt;     Hello!<br>
&gt;<br>
&gt;     I am studying the Threshold Filter to dive more into the
mechanics of<br>
&gt;     filtering and I just want to make sure I got the meaning of
points and<br>
&gt;     cells right, especially when I have a structured grid volume
as input.<br>
&gt;<br>
&gt;     Such input comes with some typical raw volume file which
consists of,<br>
&gt;     lets say, 512x512x128 voxels all of them having some value.<br>
&gt;<br>
&gt;     Is it that this value is actually stored in a vtkPoints list
that<br>
&gt;     contains uniformly distributed points in the volume? And a
vtkCell in<br>
&gt;     this case gets the same value as the point because it contains<br>
&gt;     only this<br>
&gt;     single point in its center? ( with value I mean what you get
from<br>
&gt;     GetComponent(id,c) )<br>
&gt;<br>
&gt;     So if I had some arbitrary (non-structured) input, a cell's
value<br>
&gt;     would<br>
&gt;     be the average of all points lying inside the cell and changing<br>
&gt;     the cell<br>
&gt;     layout, i.e. making all cells bigger would accordingly change
the<br>
&gt;     cell-point relationship and thus the cells value?<br>
&gt;<br>
&gt;<br>
&gt;     Best regards,<br>
&gt;     Christian<br>
&gt;     _______________________________________________<br>
&gt;     Powered by <a class="moz-txt-link-abbreviated" href="http://www.kitware.com">www.kitware.com</a><br>
&gt;<br>
&gt;     Visit other Kitware open-source projects at<br>
&gt;     <a moz-do-not-send="true"
 href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt;     Please keep messages on-topic and check the ParaView Wiki at:<br>
&gt;     <a moz-do-not-send="true"
 href="http://paraview.org/Wiki/ParaView">http://paraview.org/Wiki/ParaView</a><br>
&gt;<br>
&gt;     Follow this link to subscribe/unsubscribe:<br>
&gt;     <a moz-do-not-send="true"
 href="http://www.paraview.org/mailman/listinfo/paraview">http://www.paraview.org/mailman/listinfo/paraview</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; **** Kenneth Moreland<br>
&gt; *** Sandia National Laboratories<br>
&gt; ***********<br>
&gt; *** *** *** email: <a moz-do-not-send="true"
 href="kmorel@sandia.gov">kmorel@sandia.gov</a><br>
&gt; ** *** ** phone: (505) 844-8919<br>
&gt; *** web: <a moz-do-not-send="true"
 href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/~kmorel</a>
&lt;<a moz-do-not-send="true" href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt;<br>
&gt;<br>
    <br>
    <br>
    <br>
    </span></font></blockquote>
  <font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><br>
  </span></font><font size="2"><font
 face="Consolas, Courier New, Courier"><span style="font-size: 10pt;"><br>
   ****      Kenneth Moreland<br>
    ***      Sandia National Laboratories<br>
***********  <br>
*** *** ***  email: <a moz-do-not-send="true" href="kmorel@sandia.gov">kmorel@sandia.gov</a><br>
**  ***  **  phone: (505) 844-8919<br>
    ***      web:   <a moz-do-not-send="true"
 href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/~kmorel</a><br>
  </span></font></font><font face="Calibri, Verdana, Helvetica, Arial"><span
 style="font-size: 11pt;"><br>
  </span></font>
</blockquote>
<br>
</body>
</html>