VTK-m  2.0
Namespaces | Classes | Functions
vtkm::exec Namespace Reference

VTK-m Execution Environment. More...

Namespaces

 arg
 
 cuda
 CUDA implementation for Execution Environment.
 
 kokkos
 
 openmp
 CUDA implementation for Execution Environment.
 
 serial
 CUDA implementation for Execution Environment.
 
 tbb
 TBB implementation for Execution Environment.
 
 twolevelgrid
 

Classes

class  AtomicArrayExecutionObject
 
struct  BoundaryState
 Provides a neighborhood's placement with respect to the mesh's boundary. More...
 
class  CellInterpolationHelper
 
class  CellLocatorBoundingIntervalHierarchy
 
struct  CellLocatorBoundingIntervalHierarchyNode
 
class  CellLocatorMultiplexer
 
class  CellLocatorPartitioned
 
class  CellLocatorRectilinearGrid
 
class  CellLocatorTwoLevel
 
class  CellLocatorUniformBins
 
class  CellLocatorUniformGrid
 
class  ColorTable
 
class  ConnectivityExplicit
 
class  ConnectivityExtrude
 
class  ConnectivityPermutedVisitCellsWithPoints
 
class  ConnectivityPermutedVisitPointsWithCells
 
class  ConnectivityStructured
 
struct  FieldNeighborhood
 Retrieves field values from a neighborhood. More...
 
struct  FieldNeighborhood< vtkm::internal::ArrayPortalUniformPointCoordinates >
 Specialization of Neighborhood for ArrayPortalUniformPointCoordinates We can use fast paths inside ArrayPortalUniformPointCoordinates to allow for very fast computation of the coordinates reachable by the neighborhood.
 
class  FunctorBase
 Base class for all user worklets invoked in the execution environment from a call to vtkm::cont::DeviceAdapterAlgorithm::Schedule. More...
 
struct  GradientOutput
 
struct  GradientOutput< vtkm::Vec3f_32 >
 
struct  GradientOutput< vtkm::Vec3f_64 >
 
struct  GradientScalarOutput
 
struct  GradientScalarOutputExecutionObject
 
struct  GradientVecOutput
 
struct  GradientVecOutputExecutionObject
 
struct  IndicesExtrude
 
class  PointLocatorSparseGrid
 
class  ReverseConnectivityExtrude
 
struct  ReverseIndicesExtrude
 
class  TaskBase
 Base class for all classes that are used to marshal data from the invocation parameters to the user worklets when invoked in the execution environment. More...
 

Functions

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType , typename CellShapeTag >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &field, const WorldCoordType &wCoords, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, CellShapeTag shape, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &, const WorldCoordType &, const vtkm::Vec< ParametricCoordType, 3 > &, vtkm::CellShapeTagEmpty, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &field, const WorldCoordType &wCoords, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolyLine, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &field, const WorldCoordType &wCoords, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolygon, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &field, const vtkm::VecAxisAlignedPointCoordinates< 2 > &wCoords, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagQuad, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &field, const vtkm::VecAxisAlignedPointCoordinates< 3 > &wCoords, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagHexahedron, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 
template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellDerivative (const FieldVecType &pointFieldValues, const WorldCoordType &worldCoordinateValues, const vtkm::Vec< ParametricCoordType, 3 > &parametricCoords, vtkm::CellShapeTagGeneric shape, vtkm::Vec< typename FieldVecType::ComponentType, 3 > &result)
 Take the derivative (get the gradient) of a point field in a cell. More...
 
template<typename FieldVecType , typename ParametricCoordType , typename CellShapeTag >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const FieldVecType &pointFieldValues, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, CellShapeTag tag, typename FieldVecType::ComponentType &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const FieldVecType &, const vtkm::Vec< ParametricCoordType, 3 > &, vtkm::CellShapeTagEmpty, typename FieldVecType::ComponentType &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const FieldVecType &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolyLine, typename FieldVecType::ComponentType &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const FieldVecType &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolygon, typename FieldVecType::ComponentType &result)
 
template<typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const vtkm::VecAxisAlignedPointCoordinates< 2 > &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagQuad, vtkm::Vec3f &result)
 
template<typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const vtkm::VecAxisAlignedPointCoordinates< 3 > &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagHexahedron, vtkm::Vec3f &result)
 
template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode CellInterpolate (const FieldVecType &pointFieldValues, const vtkm::Vec< ParametricCoordType, 3 > &parametricCoords, vtkm::CellShapeTagGeneric shape, typename FieldVecType::ComponentType &result)
 Interpolate a point field in a cell. More...
 
template<typename OutType , typename PointCoordVecType , typename CellShapeType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, CellShapeType shape, vtkm::ErrorCode &)
 By default, cells have zero measure unless this template is specialized below. More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagLine, vtkm::ErrorCode &ec)
 Compute the arc length of a poly-line cell. More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagTriangle, vtkm::ErrorCode &ec)
 Compute the area of a triangular cell. More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagQuad, vtkm::ErrorCode &ec)
 Compute the area of a quadrilateral cell. More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType ComputeMeasure (const vtkm::IdComponent &, const PointCoordVecType &, vtkm::CellShapeTagPolygon, vtkm::ErrorCode &ec)
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagTetra, vtkm::ErrorCode &ec)
 Compute the volume of a tetrahedron. More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagHexahedron, vtkm::ErrorCode &ec)
 Compute the volume of a hexahedral cell (approximated via triple product of average edge along each parametric axis). More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagWedge, vtkm::ErrorCode &ec)
 Compute the volume of a wedge cell (approximated as 3 tetrahedra). More...
 
template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType CellMeasure (const vtkm::IdComponent &numPts, const PointCoordVecType &pts, vtkm::CellShapeTagPyramid, vtkm::ErrorCode &ec)
 Compute the volume of a pyramid (approximated as 2 tetrahedra) More...
 

Detailed Description

VTK-m Execution Environment.

vtkm::exec defines the publicly accessible API for the VTK-m Execution Environment. Worklets typically use classes/apis defined within this namespace alone.

Function Documentation

◆ CellDerivative() [1/7]

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  ,
const WorldCoordType &  ,
const vtkm::Vec< ParametricCoordType, 3 > &  ,
vtkm::CellShapeTagEmpty  ,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [2/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  field,
const vtkm::VecAxisAlignedPointCoordinates< 2 > &  wCoords,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagQuad  ,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [3/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  field,
const vtkm::VecAxisAlignedPointCoordinates< 3 > &  wCoords,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagHexahedron  ,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [4/7]

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType , typename CellShapeTag >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  field,
const WorldCoordType &  wCoords,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
CellShapeTag  shape,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [5/7]

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  field,
const WorldCoordType &  wCoords,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagPolygon  ,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [6/7]

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  field,
const WorldCoordType &  wCoords,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagPolyLine  ,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

◆ CellDerivative() [7/7]

template<typename FieldVecType , typename WorldCoordType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellDerivative ( const FieldVecType &  pointFieldValues,
const WorldCoordType &  worldCoordinateValues,
const vtkm::Vec< ParametricCoordType, 3 > &  parametricCoords,
vtkm::CellShapeTagGeneric  shape,
vtkm::Vec< typename FieldVecType::ComponentType, 3 > &  result 
)

Take the derivative (get the gradient) of a point field in a cell.

Given the point field values for each node and the parametric coordinates of a point within the cell, finds the derivative with respect to each coordinate (i.e. the gradient) at that point. The derivative is not always constant in some "linear" cells.

◆ CellInterpolate() [1/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const FieldVecType &  ,
const vtkm::Vec< ParametricCoordType, 3 > &  ,
vtkm::CellShapeTagEmpty  ,
typename FieldVecType::ComponentType &  result 
)

◆ CellInterpolate() [2/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const FieldVecType &  field,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagPolygon  ,
typename FieldVecType::ComponentType &  result 
)

◆ CellInterpolate() [3/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const FieldVecType &  field,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagPolyLine  ,
typename FieldVecType::ComponentType &  result 
)

◆ CellInterpolate() [4/7]

template<typename FieldVecType , typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const FieldVecType &  pointFieldValues,
const vtkm::Vec< ParametricCoordType, 3 > &  parametricCoords,
vtkm::CellShapeTagGeneric  shape,
typename FieldVecType::ComponentType &  result 
)

Interpolate a point field in a cell.

Given the point field values for each node and the parametric coordinates of a point within the cell, interpolates the field to that point.

◆ CellInterpolate() [5/7]

template<typename FieldVecType , typename ParametricCoordType , typename CellShapeTag >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const FieldVecType &  pointFieldValues,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
CellShapeTag  tag,
typename FieldVecType::ComponentType &  result 
)

◆ CellInterpolate() [6/7]

template<typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const vtkm::VecAxisAlignedPointCoordinates< 2 > &  field,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagQuad  ,
vtkm::Vec3f result 
)

◆ CellInterpolate() [7/7]

template<typename ParametricCoordType >
VTKM_EXEC vtkm::ErrorCode vtkm::exec::CellInterpolate ( const vtkm::VecAxisAlignedPointCoordinates< 3 > &  field,
const vtkm::Vec< ParametricCoordType, 3 > &  pcoords,
vtkm::CellShapeTagHexahedron  ,
vtkm::Vec3f result 
)

◆ CellMeasure() [1/8]

template<typename OutType , typename PointCoordVecType , typename CellShapeType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
CellShapeType  shape,
vtkm::ErrorCode  
)

By default, cells have zero measure unless this template is specialized below.

◆ CellMeasure() [2/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagHexahedron  ,
vtkm::ErrorCode ec 
)

Compute the volume of a hexahedral cell (approximated via triple product of average edge along each parametric axis).

◆ CellMeasure() [3/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagLine  ,
vtkm::ErrorCode ec 
)

Compute the arc length of a poly-line cell.

◆ CellMeasure() [4/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagPyramid  ,
vtkm::ErrorCode ec 
)

Compute the volume of a pyramid (approximated as 2 tetrahedra)

◆ CellMeasure() [5/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagQuad  ,
vtkm::ErrorCode ec 
)

Compute the area of a quadrilateral cell.

◆ CellMeasure() [6/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagTetra  ,
vtkm::ErrorCode ec 
)

Compute the volume of a tetrahedron.

◆ CellMeasure() [7/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagTriangle  ,
vtkm::ErrorCode ec 
)

Compute the area of a triangular cell.

◆ CellMeasure() [8/8]

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::CellMeasure ( const vtkm::IdComponent numPts,
const PointCoordVecType &  pts,
vtkm::CellShapeTagWedge  ,
vtkm::ErrorCode ec 
)

Compute the volume of a wedge cell (approximated as 3 tetrahedra).

◆ ComputeMeasure()

template<typename OutType , typename PointCoordVecType >
VTKM_EXEC OutType vtkm::exec::ComputeMeasure ( const vtkm::IdComponent ,
const PointCoordVecType &  ,
vtkm::CellShapeTagPolygon  ,
vtkm::ErrorCode ec 
)