30 #include "vtkPV4FoamReader.h"
39 #include "vtkDataArraySelection.h"
40 #include "vtkDataSet.h"
41 #include "vtkMultiBlockDataSet.h"
42 #include "vtkInformation.h"
50 inline word getFirstWord(
const char* str)
59 return word(str,
n,
true);
77 vtkMultiBlockDataSet* output,
80 const label datasetNo,
81 const std::string& datasetName
84 const int blockNo =
range.block();
86 vtkDataObject* blockDO = output->GetBlock(blockNo);
87 vtkMultiBlockDataSet*
block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
94 <<
"Block already has a vtkDataSet assigned to it"
100 output->SetBlock(blockNo,
block);
106 Info<<
"block[" << blockNo <<
"] has "
107 <<
block->GetNumberOfBlocks()
108 <<
" datasets prior to adding set " << datasetNo
109 <<
" with name: " << datasetName <<
endl;
112 block->SetBlock(datasetNo, dataset);
117 output->GetMetaData(blockNo)->Set
119 vtkCompositeDataSet::NAME(),
124 if (datasetName.size())
126 block->GetMetaData(datasetNo)->Set
128 vtkCompositeDataSet::NAME(),
137 vtkMultiBlockDataSet* output,
139 const label datasetNo
142 const int blockNo =
range.block();
144 vtkDataObject* blockDO = output->GetBlock(blockNo);
145 vtkMultiBlockDataSet*
block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
149 return vtkDataSet::SafeDownCast(
block->GetBlock(datasetNo));
159 vtkMultiBlockDataSet* output,
163 const int blockNo =
range.block();
165 vtkDataObject* blockDO = output->GetBlock(blockNo);
166 vtkMultiBlockDataSet*
block = vtkMultiBlockDataSet::SafeDownCast(blockDO);
169 return block->GetNumberOfBlocks();
178 return getFirstWord(reader_->GetPartArrayName(partId));
184 vtkDataArraySelection* select
187 int nElem = select->GetNumberOfArrays();
190 for (
int elemI=0; elemI < nElem; ++elemI)
192 if (select->GetArraySetting(elemI))
194 selections.
insert(getFirstWord(select->GetArrayName(elemI)));
204 vtkDataArraySelection* select,
208 int nElem = select->GetNumberOfArrays();
211 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
213 if (select->GetArraySetting(elemI))
215 selections.
insert(getFirstWord(select->GetArrayName(elemI)));
225 vtkDataArraySelection* select
228 stringList selections(select->GetNumberOfArrays());
233 if (select->GetArraySetting(elemI))
235 selections[nElem++] = select->GetArrayName(elemI);
243 label nElem = select->GetNumberOfArrays();
245 for (
int elemI = 0; elemI < nElem; ++elemI)
247 Info<<
" \"" << select->GetArrayName(elemI) <<
"\"";
249 Info<<
" )\nselected(";
253 Info<<
" " << selections[elemI];
264 vtkDataArraySelection* select,
271 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
273 if (select->GetArraySetting(elemI))
275 selections[nElem++] = select->GetArrayName(elemI);
284 for (
int elemI =
range.start(); elemI <
range.end(); ++elemI)
286 Info<<
" \"" << select->GetArrayName(elemI) <<
"\"";
288 Info<<
" )\nselected(";
292 Info<<
" " << selections[elemI];
303 vtkDataArraySelection* select,
307 const int nElem = select->GetNumberOfArrays();
308 select->DisableAllArrays();
311 for (
int elemI=0; elemI < nElem; ++elemI)
313 string arrayName(select->GetArrayName(elemI));
317 if (selections[elemI] == arrayName)
319 select->EnableArray(arrayName.c_str());
335 Info<<
"mem peak/size/rss: " << mem <<
"\n";