File: vtkparallel_vtkdistributeddatafilter.html

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (171 lines) | stat: -rw-r--r-- 8,790 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkDistributedDataFilter</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FreeMat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkparallel_vtkdistributeddatafilter.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">vtkDistributedDataFilter </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkparallel.html">Visualization Toolkit Parallel Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>This filter redistributes data among processors in a parallel application into spatially contiguous vtkUnstructuredGrids. The execution model anticipated is that all processes read in part of a large vtkDataSet. Each process sets the input of filter to be that DataSet. When executed, this filter builds in parallel a k-d tree, decomposing the space occupied by the distributed DataSet into spatial regions. It assigns each spatial region to a processor. The data is then redistributed and the output is a single vtkUnstructuredGrid containing the cells in the process' assigned regions.</p>
<p>This filter is sometimes called "D3" for "distributed data decomposition".</p>
<p>Enhancement: You can set the k-d tree decomposition, rather than have D3 compute it. This allows you to divide a dataset using the decomposition computed for another dataset. Obtain a description of the k-d tree cuts this way:</p>
<p>vtkBSPCuts *cuts = D3Object1-&gt;GetCuts()</p>
<p>And set it this way:</p>
<p>D3Object2-&gt;SetCuts(cuts)</p>
<p>It is desirable to have a field array of global node IDs for two reasons:</p>
<ol type="1">
<li>When merging together sub grids that were distributed across processors, global node IDs can be used to remove duplicate points and significantly reduce the size of the resulting output grid. If no such array is available, D3 will use a tolerance to merge points, which is much slower.</li>
</ol>
<ol type="1">
<li>If ghost cells have been requested, D3 requires a global node ID array in order to request and transfer ghost cells in parallel among the processors. If there is no global node ID array, D3 will in parallel create a global node ID array, and the time to do this can be significant.</li>
</ol>
<p>If you know the name of a global node ID array in the input dataset, set that name with this method. If you leave it unset, D3 will search the input data set for certain common names of global node ID arrays. If none is found, and ghost cells have been requested, D3 will create a temporary global node ID array before aquiring ghost cells. It is also desirable to have global element IDs. However, if they don't exist D3 can create them relatively quickly. Set the name of the global element ID array if you have it. If it is not set, D3 will search for it using common names. If still not found, D3 will create a temporary array of global element IDs.</p>
<p>To create an instance of class vtkDistributedDataFilter, simply invoke its constructor as follows </p>
<pre class="fragment">  obj = vtkDistributedDataFilter
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkDistributedDataFilter has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, <code>obj</code> is an instance of the vtkDistributedDataFilter class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code>  </li>
<li>
<code>int = obj.IsA (string name)</code>  </li>
<li>
<code>vtkDistributedDataFilter = obj.NewInstance ()</code>  </li>
<li>
<code>vtkDistributedDataFilter = obj.SafeDownCast (vtkObject o)</code>  </li>
<li>
<code>obj.SetController (vtkMultiProcessController c)</code> - Set/Get the communicator object  </li>
<li>
<code>vtkMultiProcessController = obj.GetController ()</code> - Set/Get the communicator object  </li>
<li>
<code>vtkPKdTree = obj.GetKdtree ()</code>  </li>
<li>
<code>obj.RetainKdtreeOn ()</code>  </li>
<li>
<code>obj.RetainKdtreeOff ()</code>  </li>
<li>
<code>int = obj.GetRetainKdtree ()</code>  </li>
<li>
<code>obj.SetRetainKdtree (int )</code>  </li>
<li>
<code>obj.IncludeAllIntersectingCellsOn ()</code>  </li>
<li>
<code>obj.IncludeAllIntersectingCellsOff ()</code>  </li>
<li>
<code>int = obj.GetIncludeAllIntersectingCells ()</code>  </li>
<li>
<code>obj.SetIncludeAllIntersectingCells (int )</code>  </li>
<li>
<code>obj.ClipCellsOn ()</code>  </li>
<li>
<code>obj.ClipCellsOff ()</code>  </li>
<li>
<code>int = obj.GetClipCells ()</code>  </li>
<li>
<code>obj.SetClipCells (int )</code>  </li>
<li>
<code>obj.SetBoundaryMode (int mode)</code> - Handling of ClipCells and IncludeAllIntersectingCells.  </li>
<li>
<code>obj.SetBoundaryModeToAssignToOneRegion ()</code> - Handling of ClipCells and IncludeAllIntersectingCells.  </li>
<li>
<code>obj.SetBoundaryModeToAssignToAllIntersectingRegions ()</code> - Handling of ClipCells and IncludeAllIntersectingCells.  </li>
<li>
<code>obj.SetBoundaryModeToSplitBoundaryCells ()</code> - Handling of ClipCells and IncludeAllIntersectingCells.  </li>
<li>
<code>int = obj.GetBoundaryMode ()</code> - Handling of ClipCells and IncludeAllIntersectingCells.  </li>
<li>
<code>obj.UseMinimalMemoryOn ()</code>  </li>
<li>
<code>obj.UseMinimalMemoryOff ()</code>  </li>
<li>
<code>int = obj.GetUseMinimalMemory ()</code>  </li>
<li>
<code>obj.SetUseMinimalMemory (int )</code>  </li>
<li>
<code>obj.TimingOn ()</code>  </li>
<li>
<code>obj.TimingOff ()</code>  </li>
<li>
<code>obj.SetTiming (int )</code>  </li>
<li>
<code>int = obj.GetTiming ()</code>  </li>
<li>
<p class="startli"><code>vtkBSPCuts = obj.GetCuts ()</code> - You can set the k-d tree decomposition, rather than have D3 compute it. This allows you to divide a dataset using the decomposition computed for another dataset. Obtain a description of the k-d tree cuts this way:</p>
<p>vtkBSPCuts *cuts = D3Object1-&gt;GetCuts()</p>
<p>And set it this way:</p>
<p class="endli">D3Object2-&gt;SetCuts(cuts)  </p>
</li>
<li>
<p class="startli"><code>obj.SetCuts (vtkBSPCuts cuts)</code> - You can set the k-d tree decomposition, rather than have D3 compute it. This allows you to divide a dataset using the decomposition computed for another dataset. Obtain a description of the k-d tree cuts this way:</p>
<p>vtkBSPCuts *cuts = D3Object1-&gt;GetCuts()</p>
<p>And set it this way:</p>
<p class="endli">D3Object2-&gt;SetCuts(cuts)  </p>
</li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkparallel.html">Visualization Toolkit Parallel Classes</a></li>
    <li class="footer">Generated on Thu Jul 25 2013 17:18:34 for FreeMat by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>