58 for (
size_t i = 0; i < npts; ++i)
78 std::shared_ptr<PointsBaseType> ptr =
PointsManager()[gaussKey];
83 for (
size_t i = 0; i < npts; ++i)
86 for (
unsigned j = 0; j < npts; ++j)
98 PointsBaseType::v_CalculateDerivMatrix();
114 for (
size_t i = 0; i < npts; ++i)
127 std::shared_ptr<PointsBaseType> returnval(
130 returnval->Initialize();
139 "Gauss Points can only interp to other 1d point distributions");
146 return GetI(numpoints, xpoints);
152 size_t numpoints = 1;
155 return GetI(numpoints, x);
167 std::shared_ptr<NekMatrix<NekDouble>> returnval(
#define ASSERTL0(condition, msg)
bool RegisterCreator(const KeyType &key, const CreateFuncType &createFunc)
Register the given function and associate it with the key. The return value is just to facilitate cal...
Array< OneD, DataType > m_points[3]
Storage for the point locations, allowing for up to a 3D points storage.
MatrixSharedPtrType m_derivmatrix[3]
Derivative matrices.
virtual void v_CalculatePoints()
size_t GetNumPoints() const
PointsKey m_pointsKey
Points type for this points distributions.
size_t GetTotNumPoints() const
Array< OneD, DataType > m_weights
Quadrature weights for the weights.
const MatrixSharedPtrType GetI(const PointsKey &key)
virtual void v_CalculateWeights()
Defines a specification for a set of points.
size_t GetPointsDim() const
size_t GetNumPoints() const
void v_CalculateDerivMatrix() final
static bool initPointsManager[]
void CalculateInterpMatrix(size_t npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp)
const std::shared_ptr< NekMatrix< NekDouble > > v_GetI(const PointsKey &pkey) override
void v_CalculateWeights() final
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
void v_CalculatePoints() final
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
PointsManagerT & PointsManager(void)
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
@ ePolyEvenlySpaced
1D Evenly-spaced points using Lagrange polynomial
std::vector< double > w(NPUPPER)
std::vector< double > z(NPUPPER)
std::vector< double > d(NPUPPER *NPUPPER)
double laginterpderiv(double z, int k, const double *zj, int np)
double laginterp(double z, int j, const double *zj, int np)