SENSEI
A frame work for generic in situ analytics
SVTKUtils.h File Reference
#include "MeshMetadata.h"
#include "Error.h"
#include <svtkDataArray.h>
#include <svtkAOSDataArrayTemplate.h>
#include <svtkSOADataArrayTemplate.h>
#include <svtkSmartPointer.h>
#include <svtkCellArray.h>
#include <functional>
#include <vector>
#include <mpi.h>
Include dependency graph for SVTKUtils.h:

Go to the source code of this file.

Classes

class  sensei::SVTKUtils::VTKObjectFactory
 Constructs VTK objects from SVTK objects enabling the use of VTK filters and ParaView Catalyst on SVTK data. More...
 
class  sensei::SVTKUtils::SVTKObjectFactory
 Constructs SVTK objects from VTK objects enabling the consumption of the output of VTK filters and ParaView Catalyst. More...
 

Namespaces

 sensei
 SENSEI.
 
 sensei::SVTKUtils
 A collection of generally useful funcitons implementing common access patterns or operations on SVTK data structures.
 

Macros

#define svtkCellTemplateMacro(code)
 
#define svtkTemplateMacroFP(call)
 

Typedefs

using svtkCompositeDataSetPtr = svtkSmartPointer< svtkCompositeDataSet >
 
using sensei::SVTKUtils::BinaryDatasetFunction = std::function< int(svtkDataSet *, svtkDataSet *)>
 A callback that processes input and output datasets. More...
 
using sensei::SVTKUtils::DatasetFunction = std::function< int(svtkDataSet *)>
 A callback that processes input and output datasets return 0 for success, > zero to stop without error, < zero to stop with error. More...
 

Functions

template<typename SVTK_TT >
SVTK_TT * sensei::SVTKUtils::GetPointer (svtkDataArray *da)
 given a svtkDataArray get a pointer to underlying data this handles access from SVTK's AOS and SOA layouts. More...
 
SENSEI_EXPORT unsigned int sensei::SVTKUtils::Size (int svtkt)
 given a SVTK type enum returns the sizeof that type More...
 
SENSEI_EXPORT int sensei::SVTKUtils::IsLegacyDataObject (int code)
 given a SVTK data object enum returns true if it a legacy object More...
 
SENSEI_EXPORT svtkDataObject * sensei::SVTKUtils::NewDataObject (int code)
 givne a SVTK data object enum constructs an instance More...
 
SENSEI_EXPORT int sensei::SVTKUtils::GetAssociation (std::string assocStr, int &assoc)
 returns the enum value given an association name. More...
 
SENSEI_EXPORT const char * sensei::SVTKUtils::GetAttributesName (int association)
 returns the name of the association, point, cell or field More...
 
SENSEI_EXPORT svtkFieldData * sensei::SVTKUtils::GetAttributes (svtkDataSet *dobj, int association)
 returns the container for the associations: svtkPointData, svtkCellData, or svtkFieldData More...
 
SENSEI_EXPORT int sensei::SVTKUtils::Apply (svtkDataObject *input, svtkDataObject *output, BinaryDatasetFunction &func)
 Applies the function to leaves of the structurally equivalent input and output data objects. More...
 
SENSEI_EXPORT int sensei::SVTKUtils::Apply (svtkDataObject *dobj, DatasetFunction &func)
 Applies the function to the data object. More...
 
SENSEI_EXPORT int sensei::SVTKUtils::SetGhostLayerMetadata (svtkDataObject *mesh, int nGhostCellLayers, int nGhostNodeLayers)
 Store ghost layer metadata in the mesh. More...
 
SENSEI_EXPORT int sensei::SVTKUtils::GetGhostLayerMetadata (svtkDataObject *mesh, int &nGhostCellLayers, int &nGhostNodeLayers)
 Retreive ghost layer metadata from the mesh. More...
 
SENSEI_EXPORT int sensei::SVTKUtils::GetMetadata (MPI_Comm comm, svtkDataSet *ds, MeshMetadataPtr)
 
SENSEI_EXPORT int sensei::SVTKUtils::GetMetadata (MPI_Comm comm, svtkCompositeDataSet *cd, MeshMetadataPtr)
 
SENSEI_EXPORT svtkCompositeDataSetPtr sensei::SVTKUtils::AsCompositeData (MPI_Comm comm, svtkDataObject *dobj, bool take=true)
 Given a data object ensure that it is a composite data set If it already is, then the call is a no-op, if it is not then it is converted to a multiblock. More...
 
bool sensei::SVTKUtils::AMR (const MeshMetadataPtr &md)
 Return true if the mesh or block type is AMR. More...
 
bool sensei::SVTKUtils::Structured (const MeshMetadataPtr &md)
 Return true if the mesh or block type is logically Cartesian. More...
 
bool sensei::SVTKUtils::Polydata (const MeshMetadataPtr &md)
 Return true if the mesh or block type is polydata. More...
 
bool sensei::SVTKUtils::Unstructured (const MeshMetadataPtr &md)
 Return true if the mesh or block type is unstructured. More...
 
bool sensei::SVTKUtils::StretchedCartesian (const MeshMetadataPtr &md)
 Return true if the mesh or block type is stretched Cartesian. More...
 
bool sensei::SVTKUtils::UniformCartesian (const MeshMetadataPtr &md)
 Return true if the mesh or block type is uniform Cartesian. More...
 
bool sensei::SVTKUtils::LogicallyCartesian (const MeshMetadataPtr &md)
 Return true if the mesh or block type is logically Cartesian. More...
 
SENSEI_EXPORT int sensei::SVTKUtils::WriteDomainDecomp (MPI_Comm comm, const sensei::MeshMetadataPtr &md, const std::string fileName)
 
SENSEI_EXPORT int sensei::SVTKUtils::WriteVTK (const char *fn, long npx, long npy, long npz, double x0, double y0, double z0, double dx, double dy, double dz, const std::vector< svtkDataArray *> &cellData, const std::vector< svtkDataArray *> &pointData)
 Write an svtkImageData data set to disk in a VTK compatible binary format. More...
 
template<typename SVTK_TT , typename ARRAY_TT = svtkAOSDataArrayTemplate<SVTK_TT>>
void sensei::SVTKUtils::PackCells (ARRAY_TT *coIn, ARRAY_TT *ccIn, ARRAY_TT *coOut, ARRAY_TT *ccOut, size_t &coId, size_t &ccId)
 Packs data from a cell array into another cell array keeping track of where to insert into the output array. More...
 
template<typename SVTK_TT , typename ARRAY_TT = svtkAOSDataArrayTemplate<SVTK_TT>>
void sensei::SVTKUtils::UnpackCells (size_t nc, ARRAY_TT *coIn, ARRAY_TT *ccIn, svtkCellArray *caOut, size_t &coId, size_t &ccId)
 deserializes a buffer made by SVTKUtils::PackCells. More...
 

Macro Definition Documentation

◆ svtkCellTemplateMacro

#define svtkCellTemplateMacro (   code)
Value:
svtkTemplateMacroCase(SVTK_LONG_LONG, long long, code); \
svtkTemplateMacroCase(SVTK_UNSIGNED_LONG_LONG, unsigned long long, code); \
svtkTemplateMacroCase(SVTK_ID_TYPE, svtkIdType, code); \
svtkTemplateMacroCase(SVTK_LONG, long, code); \
svtkTemplateMacroCase(SVTK_UNSIGNED_LONG, unsigned long, code); \
svtkTemplateMacroCase(SVTK_INT, int, code); \
svtkTemplateMacroCase(SVTK_UNSIGNED_INT, unsigned int, code);

◆ svtkTemplateMacroFP

#define svtkTemplateMacroFP (   call)
Value:
svtkTemplateMacroCase(SVTK_DOUBLE, double, call); \
svtkTemplateMacroCase(SVTK_FLOAT, float, call);