VTK  9.4.20250130
vtkLagrangeInterpolation.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3// .NAME vtkLagrangeInterpolation
4// .SECTION Description
5// .SECTION See Also
6#ifndef vtkLagrangeInterpolation_h
7#define vtkLagrangeInterpolation_h
8
9#include "vtkCommonDataModelModule.h" // For export macro.
11#include "vtkSmartPointer.h" // For API.
12
13#include <vector> // For scratch storage.
14
15// Define this to include support for a "complete" (21- vs 18-point) wedge.
16#define VTK_21_POINT_WEDGE true
17
18VTK_ABI_NAMESPACE_BEGIN
19class vtkPoints;
20class vtkVector2i;
21class vtkVector3d;
22
23class VTKCOMMONDATAMODEL_EXPORT vtkLagrangeInterpolation : public vtkHigherOrderInterpolation
24{
25public:
27 void PrintSelf(ostream& os, vtkIndent indent) override;
29
30 static void EvaluateShapeFunctions(int order, double pcoord, double* shape);
31 static void EvaluateShapeAndGradient(int order, double pcoord, double* shape, double* grad);
32
33 static int Tensor1ShapeFunctions(const int order[1], const double* pcoords, double* shape);
34 static int Tensor1ShapeDerivatives(const int order[1], const double* pcoords, double* derivs);
35
36 static int Tensor2ShapeFunctions(const int order[2], const double* pcoords, double* shape);
37 static int Tensor2ShapeDerivatives(const int order[2], const double* pcoords, double* derivs);
38
39 static int Tensor3ShapeFunctions(const int order[3], const double* pcoords, double* shape);
40 static int Tensor3ShapeDerivatives(const int order[3], const double* pcoords, double* derivs);
41
42 void Tensor3EvaluateDerivative(const int order[3], const double* pcoords, vtkPoints* points,
43 const double* fieldVals, int fieldDim, double* fieldDerivs) override;
44
46 const int order[3], vtkIdType numberOfPoints, const double* pcoords, double* shape);
48 const int order[3], vtkIdType numberOfPoints, const double* pcoords, double* derivs);
49
50 void WedgeEvaluate(const int order[3], vtkIdType numberOfPoints, const double* pcoords,
51 double* fieldVals, int fieldDim, double* fieldAtPCoords) override;
52
53 void WedgeEvaluateDerivative(const int order[3], const double* pcoords, vtkPoints* points,
54 const double* fieldVals, int fieldDim, double* fieldDerivs) override;
55
56protected:
59
60private:
62 void operator=(const vtkLagrangeInterpolation&) = delete;
63};
64
65VTK_ABI_NAMESPACE_END
66#endif // vtkLagrangeInterpolation_h
a simple class to control print indentation
Definition vtkIndent.h:108
static void EvaluateShapeFunctions(int order, double pcoord, double *shape)
~vtkLagrangeInterpolation() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int Tensor1ShapeDerivatives(const int order[1], const double *pcoords, double *derivs)
static int Tensor3ShapeFunctions(const int order[3], const double *pcoords, double *shape)
static vtkLagrangeInterpolation * New()
static int Tensor3ShapeDerivatives(const int order[3], const double *pcoords, double *derivs)
void WedgeEvaluateDerivative(const int order[3], const double *pcoords, vtkPoints *points, const double *fieldVals, int fieldDim, double *fieldDerivs) override
void Tensor3EvaluateDerivative(const int order[3], const double *pcoords, vtkPoints *points, const double *fieldVals, int fieldDim, double *fieldDerivs) override
static int Tensor2ShapeFunctions(const int order[2], const double *pcoords, double *shape)
void WedgeEvaluate(const int order[3], vtkIdType numberOfPoints, const double *pcoords, double *fieldVals, int fieldDim, double *fieldAtPCoords) override
static void WedgeShapeDerivatives(const int order[3], vtkIdType numberOfPoints, const double *pcoords, double *derivs)
static void WedgeShapeFunctions(const int order[3], vtkIdType numberOfPoints, const double *pcoords, double *shape)
static void EvaluateShapeAndGradient(int order, double pcoord, double *shape, double *grad)
static int Tensor1ShapeFunctions(const int order[1], const double *pcoords, double *shape)
static int Tensor2ShapeDerivatives(const int order[2], const double *pcoords, double *derivs)
represent and manipulate 3D points
Definition vtkPoints.h:139
Some derived classes for the different vectors commonly used.
Definition vtkVector.h:440
int vtkIdType
Definition vtkType.h:315