56 #ifndef VTK_EXCLUDE_STRSTREAM_HEADERS
57 #define VTK_EXCLUDE_STRSTREAM_HEADERS
78 class vtkDataArraySelection;
81 class vtkPVFoamReader;
84 class vtkMultiBlockDataSet;
86 class vtkUnstructuredGrid;
97 class processorRunTimes;
98 class domainDecomposition;
104 class fvFieldReconstructor;
105 class pointFieldReconstructor;
106 class lagrangianFieldReconstructor;
107 class LagrangianMesh;
108 class LagrangianFieldReconstructor;
128 arrayRange(
const char *
name,
const int blockNo=0)
143 int block(
int blockNo)
151 const char*
name()
const
165 return start_ + size_;
180 void reset(
const int startAt = 0)
221 return addPointCellLabels_;
225 const labelList& addPointCellLabels()
const
227 return addPointCellLabels_;
247 addPointCellLabels_.
clear();
256 vtkPVFoamReader* reader_;
291 arrayRange arrayRangeVolume_;
292 arrayRange arrayRangePatches_;
293 arrayRange arrayRangelagrangian_;
294 arrayRange arrayRangeLagrangian_;
295 arrayRange arrayRangeCellZones_;
296 arrayRange arrayRangeFaceZones_;
297 arrayRange arrayRangePointZones_;
298 arrayRange arrayRangeCellSets_;
299 arrayRange arrayRangeFaceSets_;
300 arrayRange arrayRangePointSets_;
334 static void AddToBlock
336 vtkMultiBlockDataSet* output,
339 const label datasetNo,
340 const std::string& datasetName
345 static vtkDataSet* GetDataSetFromBlock
347 vtkMultiBlockDataSet* output,
349 const label datasetNo
354 static label GetNumberOfDataSets
356 vtkMultiBlockDataSet* output,
364 void topoChangePartsStatus();
367 void updateInfoInternalMesh(vtkDataArraySelection*);
370 void updateInfolagrangian(vtkDataArraySelection*);
373 void updateInfoLagrangian(vtkDataArraySelection*);
376 void updateInfoPatches
378 vtkDataArraySelection*,
384 void updateInfoSets(vtkDataArraySelection*);
387 void updateInfoZones(vtkDataArraySelection*);
390 template<
class ZonesType>
394 template<
class ZonesType>
395 wordList getZoneNames(
const ZonesType&)
const;
401 vtkDataArraySelection*,
407 template<
class meshType>
408 void addFieldsToSelection
410 vtkDataArraySelection *select,
416 template<
class meshType>
417 void addInternalFieldsToSelection
419 vtkDataArraySelection *select,
425 void updateInfoFields();
428 void updateInfolagrangianFields();
431 void updateInfoLagrangianFields();
437 void clearReconstructors();
442 void clearFoamMesh();
445 void updateFoamMesh();
448 void resetCounters();
454 void updateVolFields(vtkMultiBlockDataSet*);
457 void updatePointFields(vtkMultiBlockDataSet*);
460 void updatelagrangianFields(vtkMultiBlockDataSet*);
463 void updateLagrangianFields(vtkMultiBlockDataSet*);
469 void convertMeshVolume(vtkMultiBlockDataSet*,
int& blockNo);
472 void convertMeshlagrangian(vtkMultiBlockDataSet*,
int& blockNo);
475 void convertMeshLagrangian(vtkMultiBlockDataSet*,
int& blockNo);
478 void convertMeshPatches(vtkMultiBlockDataSet*,
int& blockNo);
481 void convertMeshCellZones(vtkMultiBlockDataSet*,
int& blockNo);
484 void convertMeshFaceZones(vtkMultiBlockDataSet*,
int& blockNo);
487 void convertMeshPointZones(vtkMultiBlockDataSet*,
int& blockNo);
490 void convertMeshCellSets(vtkMultiBlockDataSet*,
int& blockNo);
493 void convertMeshFaceSets(vtkMultiBlockDataSet*,
int& blockNo);
496 void convertMeshPointSets(vtkMultiBlockDataSet*,
int& blockNo);
502 vtkUnstructuredGrid* volumeVTKMesh(
const fvMesh&, polyDecomp&);
505 vtkPolyData* lagrangianVTKMesh
512 vtkPolyData* LagrangianVTKMesh
520 template<
class PatchType>
521 vtkPolyData* patchVTKMesh(
const PatchType&);
536 void convertFields(vtkMultiBlockDataSet*);
539 void convertlagrangianFields(vtkMultiBlockDataSet*);
542 void convertLagrangianFields(vtkMultiBlockDataSet*);
547 template<
class GeoField>
548 label addObjectsToSelection
550 vtkDataArraySelection*,
560 void convertVolFields
564 const bool interpFields,
565 vtkMultiBlockDataSet* output
570 void convertVolInternalFields
573 vtkMultiBlockDataSet* output
578 void convertVolFieldBlock
582 vtkMultiBlockDataSet* output,
589 void convertVolInternalFieldBlock
592 vtkMultiBlockDataSet* output,
599 void convertVolInternalField
602 vtkMultiBlockDataSet* output,
604 const label datasetNo,
610 void convertPatchField
614 vtkMultiBlockDataSet* output,
616 const label datasetNo
621 void convertSurfaceField
624 vtkMultiBlockDataSet* output,
626 const label datasetNo,
633 void convertSurfaceField
636 vtkMultiBlockDataSet* output,
637 const arrayRange&
range,
638 const label datasetNo,
645 void convertSurfaceFields
648 vtkMultiBlockDataSet* output
653 void convertlagrangianFields
656 vtkMultiBlockDataSet* output,
657 const label datasetNo
661 template<
class Type,
template<
class>
class GeoField>
662 void convertLagrangianFields
665 vtkMultiBlockDataSet* output,
666 const label datasetNo
671 void convertlagrangianField
674 vtkMultiBlockDataSet* output,
676 const label datasetNo
680 template<
class Type,
template<
class>
class GeoField>
681 void convertLagrangianField
683 const GeoField<Type>&,
684 vtkMultiBlockDataSet* output,
686 const label datasetNo
691 void convertPointFields
694 vtkMultiBlockDataSet* output
699 void convertPointFieldBlock
702 vtkMultiBlockDataSet* output,
709 void convertPointField
713 vtkMultiBlockDataSet* output,
715 const label datasetNo,
721 void convertPatchPointField
725 vtkMultiBlockDataSet* output,
727 const label datasetNo
734 static void pruneObjectList
750 static wordHashSet getSelected(vtkDataArraySelection*);
755 vtkDataArraySelection*,
762 vtkDataArraySelection*,
763 const bool debug = vtkPVFoam::debug
769 vtkDataArraySelection*,
771 const bool debug = vtkPVFoam::debug
775 static void setSelectedArrayEntries
777 vtkDataArraySelection*,
782 word getPartName(
const int);
797 const char*
const FileName,
798 vtkPVFoamReader* reader
817 vtkMultiBlockDataSet* output,
818 vtkMultiBlockDataSet* lagrangianOutput,
819 vtkMultiBlockDataSet* LagrangianOutput
847 void PrintSelf(ostream&, vtkIndent)
const;
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Pre-declare SubField and related Field type.
Generic GeometricField class.
A HashTable with keys but without contents.
A primitive field of type <Type> with automated input and output.
List of IOobjects with searching and retrieving facilities.
void clear()
Clear the list, i.e. set size to zero.
Interpolation class within a primitive patch. Allows interpolation from points to faces and vice vers...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Creates a single block of cells from point coordinates, numbers of cells in each direction and an exp...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
A class for handling file names.
Mesh data needed to do the Finite Volume discretisation.
static const string null
An empty string.
Provides a reader interface for OpenFOAM to VTK interaction.
ClassName("vtkPVFoam")
Static data members.
double * findTimes(const bool first, int &nTimeSteps)
Allocate and return a list of selected times.
int setTime(int count, const double requestTimes[])
Set the runTime to the first plausible request time,.
void operator=(const vtkPVFoam &)=delete
Disallow default bitwise assignment.
void PrintSelf(ostream &, vtkIndent) const
Debug information.
int timeIndex() const
The current time index.
void Update(vtkMultiBlockDataSet *output, vtkMultiBlockDataSet *lagrangianOutput, vtkMultiBlockDataSet *LagrangianOutput)
Update.
void renderPatchNames(vtkRenderer *, const bool show)
Add/remove patch names to/from the view.
vtkPVFoam(const char *const FileName, vtkPVFoamReader *reader)
Construct from components.
void CleanUp()
Clean any storage.
void updateInfo()
Update information for selection dialogs.
A class for handling words, derived from string.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
labelList first(const UList< labelPair > &p)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
label count(const ListType &l, typename ListType::const_reference x)
Count the number of occurrences of a value in a list.
void operator+=(fvMatrix< Type > &fvEqn, const CarrierEqn< Type > &cEqn)
Add to a finite-volume equation.