18 #ifndef vtkLagrangeInterpolation_h 19 #define vtkLagrangeInterpolation_h 23 #include "vtkCommonDataModelModule.h" 28 #define VTK_21_POINT_WEDGE true 45 static void EvaluateShapeFunctions(
int order,
double pcoord,
double* shape);
46 static void EvaluateShapeAndGradient(
int order,
double pcoord,
double* shape,
double* grad);
48 static int Tensor1ShapeFunctions(
const int order[1],
const double* pcoords,
double* shape);
49 static int Tensor1ShapeDerivatives(
const int order[1],
const double* pcoords,
double* derivs);
51 static int Tensor2ShapeFunctions(
const int order[2],
const double* pcoords,
double* shape);
52 static int Tensor2ShapeDerivatives(
const int order[2],
const double* pcoords,
double* derivs);
54 static int Tensor3ShapeFunctions(
const int order[3],
const double* pcoords,
double* shape);
55 static int Tensor3ShapeDerivatives(
const int order[3],
const double* pcoords,
double* derivs);
57 void Tensor3EvaluateDerivative(
59 const double* pcoords,
61 const double* fieldVals,
65 static void WedgeShapeFunctions(
const int order[3],
const vtkIdType numberOfPoints,
const double* pcoords,
double* shape);
66 static void WedgeShapeDerivatives(
const int order[3],
const vtkIdType numberOfPoints,
const double* pcoords,
double* derivs);
72 int JacobianInverse(
vtkPoints*
points,
const double* derivs,
double** inverse);
73 int JacobianInverseWedge(
vtkPoints*
points,
const double* derivs,
double** inverse);
78 const double* pcoords,
81 double* fieldAtPCoords);
83 void WedgeEvaluateDerivative(
85 const double* pcoords,
87 const double* fieldVals,
91 static vtkVector3d GetParametricHexCoordinates(
int vertexId);
92 static vtkVector2i GetPointIndicesBoundingHexEdge(
int edgeId);
93 static int GetVaryingParameterOfHexEdge(
int edgeId);
94 static vtkVector2i GetFixedParametersOfHexEdge(
int edgeId);
96 static const int* GetPointIndicesBoundingHexFace(
int faceId)
VTK_SIZEHINT(4);
97 static const int* GetEdgeIndicesBoundingHexFace(
int faceId)
VTK_SIZEHINT(4);
98 static vtkVector2i GetVaryingParametersOfHexFace(
int faceId);
99 static int GetFixedParameterOfHexFace(
int faceId);
101 static vtkVector3d GetParametricWedgeCoordinates(
int vertexId);
102 static vtkVector2i GetPointIndicesBoundingWedgeEdge(
int edgeId);
103 static int GetVaryingParameterOfWedgeEdge(
int edgeId);
104 static vtkVector2i GetFixedParametersOfWedgeEdge(
int edgeId);
106 static const int* GetPointIndicesBoundingWedgeFace(
int faceId)
VTK_SIZEHINT(4);
107 static const int* GetEdgeIndicesBoundingWedgeFace(
int faceId)
VTK_SIZEHINT(4);
108 static vtkVector2i GetVaryingParametersOfWedgeFace(
int faceId);
109 static int GetFixedParameterOfWedgeFace(
int faceId);
117 static int NumberOfIntervals(
const int order[N]);
122 void PrepareForOrder(
const int order[3],
const vtkIdType numberOfPoints);
136 for (
int n = 0; n < N; ++n)
143 #endif // vtkLagrangeInterpolation_h
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int NumberOfIntervals(const int order[N])
a simple class to control print indentation
Some derived classes for the different vectors commonly used.
std::vector< double > DerivSpace
#define VTK_SIZEHINT(...)
std::vector< double > ShapeSpace
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
represent and manipulate 3D points