22#ifndef vtkIntegrationGaussianStrategy_h
23#define vtkIntegrationGaussianStrategy_h
27#include "vtkFiltersParallelModule.h"
31VTK_ABI_NAMESPACE_BEGIN
149 int fieldlist_index)
override;
153 int fieldlist_index)
override;
185 int nQuadraturePoints, std::vector<double> partialArea,
192 double ComputeJacobianDet2D(
const double dN[8],
const std::vector<std::array<double, 3>>& pts);
193 double ComputeJacobianDet(
194 const double* dN,
const std::vector<std::array<double, 3>>& pts,
int nNodes);
201 void AddPointDataArray();
202 void InitializeQuadratureOffsets();
203 std::string GenerateUniqueArrayName(
const std::string& baseName);
205 void InitializeQuadratureOffsetsArray(
207 void ComputeQuadratureInterpolation();
represent and manipulate attribute data in a dataset
abstract class to specify dataset behavior
provides thread-safe access to cells
list of point or cell ids
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Helper class for vtkIntegrateAttributes.
Gaussian Quadrature Integration Strategy.
void IntegrateData3(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index) override
Integrates on data arrays depending on the number of node of the shape.
static vtkIntegrationGaussianStrategy * New()
void IntegratePolyLine(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateTriangle(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
~vtkIntegrationGaussianStrategy() override
void IntegratePixel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateTetrahedron(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateGeneral1DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateWedge(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void Initialize(vtkDataSet *input) override
Setup necessary precomputations.
void IntegrateData2(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index) override
Integrates on data arrays depending on the number of node of the shape.
void IntegrateVoxel(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateDefault(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, vtkIdList *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateGeneral2DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateGeneral3DCell(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateTriangleStrip(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegratePyramid(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateQuad(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegratePolygon(vtkDataSet *input, vtkUnstructuredGrid *output, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void IntegrateData1(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index) override
Integrates on data arrays depending on the number of node of the shape.
vtkIntegrationGaussianStrategy()=default
void IntegrateData4(vtkDataSetAttributes *inda, vtkDataSetAttributes *outda, vtkIdType pt1Id, vtkIdType pt2Id, vtkIdType pt3Id, vtkIdType pt4Id, double k, vtkIntegrateAttributesFieldList &fieldlist, int fieldlist_index) override
Integrates on data arrays depending on the number of node of the shape.
void IntegrateHexahedron(vtkDataSet *input, vtkUnstructuredGrid *output, vtkGenericCell *cell, vtkIdType cellId, vtkIdType numPts, const vtkIdType *cellPtIds, vtkIdList *cellPtIdsList, double &sum, double sumCenter[3], vtkIntegrateAttributesFieldList &cellFieldList, vtkIntegrateAttributesFieldList &pointFieldList, int index) override
Integration functions operating on some cell types.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Linear Integration Strategy.
abstract class to define an integration strategy for vtkIntegrateAttributes
Allocate and hold a VTK object.
An Elemental data type that holds a definition of a numerical quadrature scheme.
Hold a reference to a vtkObjectBase instance.
dataset represents arbitrary combinations of all possible cell types