44 namespace LibUtilities
59 for(
unsigned int i=0;i<
npts;++i)
79 boost::shared_ptr<PointsBaseType> ptr =
PointsManager()[gaussKey];
84 for(
unsigned int i=0; i<
npts;++i)
87 for(
unsigned j=0;j<
npts;++j)
111 for(
unsigned int i=0;i<
npts;++i)
124 returnval->Initialize();
131 ASSERTL0(pkey.
GetPointsDim()==1,
"Gauss Points can only interp to other 1d point distributions");
138 return GetI(numpoints, xpoints);
146 return GetI(numpoints, x);
168 for(
int i=0;i<
npts;++i)
180 for(
int i=0;i<pt; ++i)
182 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
185 for(
int i=pt+1;i<
npts;++i)
187 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
198 for(
int j=0;j<
npts;++j)
203 for(
int i=0;i<
npts;++i)
211 h = h/(xpts[pt]-xpts[i]);
#define ASSERTL0(condition, msg)
virtual void CalculatePoints()
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
MatrixSharedPtrType m_derivmatrix[3]
Array< OneD, DataType > m_points[3]
void CalculateDerivMatrix()
const boost::shared_ptr< NekMatrix< NekDouble > > GetI(const PointsKey &pkey)
unsigned int GetNumPoints() const
unsigned int GetPointsDim() const
PointsManagerT & PointsManager(void)
Array< OneD, DataType > m_weights
Defines a specification for a set of points.
virtual void CalculateDerivMatrix()
static boost::shared_ptr< PointsBaseType > Create(const PointsKey &key)
unsigned int GetNumPoints() const
void CalculateInterpMatrix(unsigned int npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp)
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)
unsigned int GetTotNumPoints() const
1D Gauss-Lobatto-Legendre quadrature points
virtual void CalculateWeights()