VTK-m
2.2
|
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 |
An object passed to a worklet when accessing an atomic array. More... | |
struct | BoundaryState |
Provides a neighborhood's placement with respect to the mesh's boundary. More... | |
class | CellLocatorBoundingIntervalHierarchy |
struct | CellLocatorBoundingIntervalHierarchyNode |
class | CellLocatorMultiplexer |
class | CellLocatorPartitioned |
class | CellLocatorRectilinearGrid |
class | CellLocatorTwoLevel |
class | CellLocatorUniformBins |
class | CellLocatorUniformGrid |
class | ColorTable |
class | ConnectivityExplicit |
A class holding information about topology connections. More... | |
class | ConnectivityExtrude |
class | ConnectivityPermutedVisitCellsWithPoints |
class | ConnectivityPermutedVisitPointsWithCells |
class | ConnectivityStructured |
A class holding information about topology connections. More... | |
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 | 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::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::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::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::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::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::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::ErrorCode | CellDerivative (const FieldVecType &pointFieldValues, const WorldCoordType &worldCoordinateValues, const vtkm::Vec< ParametricCoordType, 3 > ¶metricCoords, 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::ErrorCode | CellInterpolate (const FieldVecType &pointFieldValues, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, CellShapeTag tag, typename FieldVecType::ComponentType &result) |
template<typename FieldVecType , typename ParametricCoordType > | |
vtkm::ErrorCode | CellInterpolate (const FieldVecType &, const vtkm::Vec< ParametricCoordType, 3 > &, vtkm::CellShapeTagEmpty, typename FieldVecType::ComponentType &result) |
template<typename FieldVecType , typename ParametricCoordType > | |
vtkm::ErrorCode | CellInterpolate (const FieldVecType &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolyLine, typename FieldVecType::ComponentType &result) |
template<typename FieldVecType , typename ParametricCoordType > | |
vtkm::ErrorCode | CellInterpolate (const FieldVecType &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagPolygon, typename FieldVecType::ComponentType &result) |
template<typename ParametricCoordType > | |
vtkm::ErrorCode | CellInterpolate (const vtkm::VecAxisAlignedPointCoordinates< 2 > &field, const vtkm::Vec< ParametricCoordType, 3 > &pcoords, vtkm::CellShapeTagQuad, vtkm::Vec3f &result) |
template<typename ParametricCoordType > | |
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::ErrorCode | CellInterpolate (const FieldVecType &pointFieldValues, const vtkm::Vec< ParametricCoordType, 3 > ¶metricCoords, vtkm::CellShapeTagGeneric shape, typename FieldVecType::ComponentType &result) |
Interpolate a point field in a cell. More... | |
template<typename IndicesVecType , typename FieldPortalType , typename ParametricCoordType , typename CellShapeTag > | |
vtkm::ErrorCode | CellInterpolate (const IndicesVecType &pointIndices, const FieldPortalType &pointFieldPortal, const vtkm::Vec< ParametricCoordType, 3 > ¶metricCoords, CellShapeTag shape, typename FieldPortalType::ValueType &result) |
Interpolate a point field in a cell. More... | |
template<typename OutType , typename PointCoordVecType , typename CellShapeType > | |
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 > | |
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 > | |
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 > | |
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 > | |
OutType | ComputeMeasure (const vtkm::IdComponent &, const PointCoordVecType &, vtkm::CellShapeTagPolygon, vtkm::ErrorCode &ec) |
template<typename OutType , typename PointCoordVecType > | |
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 > | |
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 > | |
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 > | |
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... | |
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.
vtkm::ErrorCode vtkm::exec::CellDerivative | ( | const FieldVecType & | , |
const WorldCoordType & | , | ||
const vtkm::Vec< ParametricCoordType, 3 > & | , | ||
vtkm::CellShapeTagEmpty | , | ||
vtkm::Vec< typename FieldVecType::ComponentType, 3 > & | result | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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 | ||
) |
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.
[in] | pointFieldValues | A list of field values for each point in the cell. This usually comes from a FieldInPoint argument in a vtkm::worklet::WorkletVisitCellsWithPoints . |
[in] | worldCoordinateValues | A list of world coordinates for each point in the cell. This usually comes from a FieldInPoint argument in a vtkm::worklet::WorkletVisitCellsWithPoints where the coordinate system is passed into that argument. |
[in] | parametricCoords | The parametric coordinates where you want to find the derivative. |
[in] | shape | A tag of type CellShapeTag* to identify the shape of the cell. This method is overloaded for different shape types. |
[out] | result | Value to store the derivative/gradient. Because the derivative is taken partially in the x, y, and z directions, the result is a vtkm::Vec of size 3 with the component type the same as the field. If the field is itself a vector, you get a Vec of Vec s. |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const FieldVecType & | , |
const vtkm::Vec< ParametricCoordType, 3 > & | , | ||
vtkm::CellShapeTagEmpty | , | ||
typename FieldVecType::ComponentType & | result | ||
) |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const FieldVecType & | field, |
const vtkm::Vec< ParametricCoordType, 3 > & | pcoords, | ||
vtkm::CellShapeTagPolygon | , | ||
typename FieldVecType::ComponentType & | result | ||
) |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const FieldVecType & | field, |
const vtkm::Vec< ParametricCoordType, 3 > & | pcoords, | ||
vtkm::CellShapeTagPolyLine | , | ||
typename FieldVecType::ComponentType & | result | ||
) |
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 location within the cell, interpolates the field to that location.
[in] | pointFieldValues | A list of field values for each point in the cell. This usually comes from a FieldInPoint argument in a vtkm::worklet::WorkletVisitCellsWithPoints . |
[in] | parametricCoords | The parametric coordinates where you want to get the interpolated field value for. |
[in] | shape | A tag of type CellShapeTag* to identify the shape of the cell. This method is overloaded for different shape types. |
[out] | result | Value to store the interpolated field. |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const FieldVecType & | pointFieldValues, |
const vtkm::Vec< ParametricCoordType, 3 > & | pcoords, | ||
CellShapeTag | tag, | ||
typename FieldVecType::ComponentType & | result | ||
) |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const IndicesVecType & | pointIndices, |
const FieldPortalType & | pointFieldPortal, | ||
const vtkm::Vec< ParametricCoordType, 3 > & | parametricCoords, | ||
CellShapeTag | shape, | ||
typename FieldPortalType::ValueType & | result | ||
) |
Interpolate a point field in a cell.
Given the indices of the points for each node in a Vec
, a portal to the point field values, and the parametric coordinates of a location within the cell, interpolates to that location.
[in] | pointIndices | A list of point indices for each point in the cell. This usually comes from a GetIndices() call on the structure object provided by a WholeCellSetIn argument to a worklet. |
[in] | pointFieldPortal | An array portal containing all the values in a point field array. This usually comes from a WholeArrayIn worklet argument. |
[in] | parametricCoords | The parametric coordinates where you want to get the interpolaged field value for. |
[in] | shape | A tag of type CellShapeTag* to identify the shape of the cell. |
[out] | result | Value to store the interpolated field. |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const vtkm::VecAxisAlignedPointCoordinates< 2 > & | field, |
const vtkm::Vec< ParametricCoordType, 3 > & | pcoords, | ||
vtkm::CellShapeTagQuad | , | ||
vtkm::Vec3f & | result | ||
) |
vtkm::ErrorCode vtkm::exec::CellInterpolate | ( | const vtkm::VecAxisAlignedPointCoordinates< 3 > & | field, |
const vtkm::Vec< ParametricCoordType, 3 > & | pcoords, | ||
vtkm::CellShapeTagHexahedron | , | ||
vtkm::Vec3f & | result | ||
) |
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.
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).
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.
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)
OutType vtkm::exec::CellMeasure | ( | const vtkm::IdComponent & | numPts, |
const PointCoordVecType & | pts, | ||
vtkm::CellShapeTagQuad | , | ||
vtkm::ErrorCode & | ec | ||
) |
Compute the area of a quadrilateral cell.
OutType vtkm::exec::CellMeasure | ( | const vtkm::IdComponent & | numPts, |
const PointCoordVecType & | pts, | ||
vtkm::CellShapeTagTetra | , | ||
vtkm::ErrorCode & | ec | ||
) |
Compute the volume of a tetrahedron.
OutType vtkm::exec::CellMeasure | ( | const vtkm::IdComponent & | numPts, |
const PointCoordVecType & | pts, | ||
vtkm::CellShapeTagTriangle | , | ||
vtkm::ErrorCode & | ec | ||
) |
Compute the area of a triangular cell.
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).
OutType vtkm::exec::ComputeMeasure | ( | const vtkm::IdComponent & | , |
const PointCoordVecType & | , | ||
vtkm::CellShapeTagPolygon | , | ||
vtkm::ErrorCode & | ec | ||
) |