43 namespace LibUtilities
62 for(
unsigned int i=0;i<npts;++i)
82 std::shared_ptr<PointsBaseType> ptr =
PointsManager()[gaussKey];
87 for(
unsigned int i=0; i<npts;++i)
90 for(
unsigned j=0;j<npts;++j)
114 for(
unsigned int i=0;i<npts;++i)
127 returnval->Initialize();
134 ASSERTL0(pkey.
GetPointsDim()==1,
"Gauss Points can only interp to other 1d point distributions");
141 return GetI(numpoints, xpoints);
149 return GetI(numpoints, x);
171 for(
int i=0;i<npts;++i)
183 for(
int i=0;i<pt; ++i)
185 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
188 for(
int i=pt+1;i<npts;++i)
190 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
201 for(
int j=0;j<npts;++j)
206 for(
int i=0;i<npts;++i)
214 h = h/(xpts[pt]-xpts[i]);
#define ASSERTL0(condition, msg)
Array< OneD, DataType > m_weights
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
static bool initPointsManager[]
unsigned int GetPointsDim() const
virtual void CalculatePoints()
void CalculateDerivMatrix()
1D Evenly-spaced points using Lagrange polynomial
static std::shared_ptr< PointsBaseType > Create(const PointsKey &key)
PointsManagerT & PointsManager(void)
Defines a specification for a set of points.
virtual void CalculateDerivMatrix()
unsigned int GetTotNumPoints() const
void CalculateInterpMatrix(unsigned int npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp)
Array< OneD, DataType > m_points[3]
NekDouble LagrangeInterpolant(NekDouble x, int npts, const Array< OneD, const NekDouble > &xpts, const Array< OneD, const NekDouble > &funcvals)
NekDouble LagrangePoly(NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts)
NekDouble LagrangePolyDeriv(NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts)
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...
virtual void CalculateWeights()
MatrixSharedPtrType m_derivmatrix[3]
const std::shared_ptr< NekMatrix< NekDouble > > GetI(const PointsKey &pkey)
unsigned int GetNumPoints() const
unsigned int GetNumPoints() const
1D Gauss-Lobatto-Legendre quadrature points