11#ifndef vtkDGInterpolateCalculator_h
12#define vtkDGInterpolateCalculator_h
24VTK_ABI_NAMESPACE_BEGIN
31class vtkTypeInt64Array;
45 bool useMultithreading =
false)
override;
49 double neighborhood)
override;
51 bool useMultithreading =
false)
override;
61 template <
bool UseShape>
A function defined over the physical domain of a vtkCellGrid.
Store values interpolated from DG cells into a vtkDoubleArray instance.
Base class for a discontinuous Galerkin cells of all shapes.
Shape
All possible shapes for DG cells.
@ None
A placeholder for an indeterminate or invalid shape.
void EvaluateDerivative(vtkIdType cellId, const vtkVector3d &rst, std::vector< double > &jacobian, double neighborhood) override
Return the derivative of the function at rst.
void EvaluateDerivative(vtkIdTypeArray *cellIds, vtkDataArray *rst, vtkDataArray *result, bool useMultithreading=false) override
Subclasses may override this method to perform multiple derivative-evaluations at a time.
bool AnalyticDerivative() const override
Return true if the function has an analytic derivative.
int Dimension
The parametric dimension of the current cell-type.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkDGInterpolateCalculator * New()
vtkDGInterpolateCalculator()=default
void InternalDerivative(vtkIdType cellId, const vtkVector3d &rst, std::vector< double > &jacobian, double neighborhood)
vtkDGCell::Shape CellShape
The shape of the current cell type.
vtkCellAttribute * Field
The cell-attribute for which interpolation will be performed.
vtkSMPThreadLocal< ThreadLocalData > LocalData
void Evaluate(vtkIdType cellId, const vtkVector3d &rst, std::vector< double > &value) override
vtkCellAttribute::CellTypeInfo FieldCellInfo
The function space, basis, etc.
~vtkDGInterpolateCalculator() override=default
void Evaluate(vtkIdTypeArray *cellIds, vtkDataArray *rst, vtkDataArray *result, bool useMultithreading=false) override
Subclasses may override this method to perform multiple evaluations at a time.
vtkSmartPointer< vtkCellAttributeCalculator > PrepareForGrid(vtkCellMetadata *cell, vtkCellAttribute *field) override
Subclasses should override this to create an instance of their class with member variables set to per...
friend class vtkDGRangeResponder
vtkDGCell * CellType
The cell-type for which interpolation will be performed.
Invoke an operator on DG cells/sides.
Compute the range of a cell-attribute over any vtkDGCell.
dynamic, self-adjusting array of double
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
vtkInterpolateCalculator()=default
Thread local storage for VTK objects.
Hold a reference to a vtkObjectBase instance.
vtkSmartPointer< vtkDoubleArray > VRst
void Swap(ThreadLocalData &other)
vtkDGArraysInputAccessor InAccessor
void EnsureInitialized(vtkDGCell *cellType, vtkCellAttribute *field)
vtkDGArraysInputAccessor DerInAccessor
vtkSmartPointer< vtkDoubleArray > Result
ThreadLocalData & operator=(ThreadLocalData other)
vtkSmartPointer< vtkDoubleArray > LocalField
Used when an array passed to Evaluate()/EvaluateDerivative() is not a double-array.
vtkDGOperation< vtkDGArraysInputAccessor, vtkDGArrayOutputAccessor > FieldEvaluator
Used to compute a field value for a cell.
vtkDGArrayOutputAccessor OutAccessor
vtkSmartPointer< vtkDoubleArray > DerVRst
vtkSmartPointer< vtkDoubleArray > DerResult
vtkSmartPointer< vtkIdTypeArray > Ids
vtkDGOperation< vtkDGArraysInputAccessor, vtkDGArrayOutputAccessor > FieldDerivative
Used to compute a field derivative for a cell.
vtkDGArrayOutputAccessor DerOutAccessor
vtkSmartPointer< vtkIdTypeArray > DerIds
ThreadLocalData(const ThreadLocalData &other)