48 namespace LibUtilities
145 "Unknown Gauss quadrature point distribution requested");
162 NekDouble *dmtemp = dmtempSharedArray.data();
232 "Unknown Gauss quadrature point distribution requested");
295 for(
unsigned int i=0;i<npts;++i)
307 "Unknown Gauss quadrature point distribution requested");
315 returnval->Initialize();
328 return GetI(numpoints, xpoints);
334 ASSERTL0(pkey.
GetPointsDim()==1,
"Gauss Points can only interp to other 1d point distributions");
344 return GetI(numpoints, x);
365 for(
int i=0;i<npts;++i)
377 for(
int i=0;i<pt; ++i)
379 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
382 for(
int i=pt+1;i<npts;++i)
384 h = h * (x - xpts[i])/(xpts[pt]-xpts[i]);
395 for(
int j=0;j<npts;++j)
400 for(
int i=0;i<npts;++i)
408 h = h/(xpts[pt]-xpts[i]);
439 std::shared_ptr< NekMatrix<NekDouble> > Interp =
GetI(pkey);
445 for(
int i = 0; i < numpointsto; ++i)
447 Vmath::Vmul(numpointsfrom,Interp->GetPtr().get() +i*numpointsfrom,1,
448 &weightsfrom[0],1,&GalProj[0] +i,numpointsto);
450 &GalProj[0]+i,numpointsto);
void Dgj(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Jacobi zeros.
1D Gauss-Radau-Kronrod-Legendre quadrature points, pinned at x=-1
#define ASSERTL0(condition, msg)
NekDouble LagrangePolyDeriv(NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Array< OneD, DataType > m_weights
static bool initPointsManager[]
PointsType GetPointsType() const
1D Gauss-Radau-Chebyshev quadrature points, pinned at x=-1
NekDouble LagrangePoly(NekDouble x, int pt, int npts, const Array< OneD, const NekDouble > &xpts)
const std::shared_ptr< NekMatrix< NekDouble > > GetI(const PointsKey &pkey)
void zwgrjp(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=1.
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
1D Gauss-Radau-Legendre quadrature points, pinned at x=1
void Imgrjp(double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=1) to an arbitrary distrubtion at ...
void zwglj(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Lobatto-Jacobi zeros and weights with end point at z=-1,1.
unsigned int GetPointsDim() const
virtual void CalculatePoints()
1D Gauss-Kronrod-Legendre quadrature points
void zwlk(double *z, double *w, const int npt, const double alpha, const double beta)
Gauss-Lobatto-Kronrod-Jacobi zeros and weights.
1D Gauss-Gauss-Legendre quadrature points
Gauss Radau pinned at x=-1, .
1D Gauss-Radau-Kronrod-Legendre pinned at x=-1,
const std::shared_ptr< NekMatrix< NekDouble > > GetGalerkinProjection(const PointsKey &pkey)
1D Lobatto Kronrod quadrature points
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*y.
void CalculateDerivMatrix()
void Imglj(double *im, const double *zglj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Lobatto-Jacobi points to an arbitrary distrubtion at points zm...
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_InterpManager
void Dgrjm(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix and its transpose associated with the Gauss-Radau-Jacobi zeros with a z...
std::shared_ptr< NekMatrix< NekDouble > > CreateMatrix(const PointsKey &pkey)
void zwgk(double *z, double *w, const int npt, const double alpha, const double beta)
Gauss-Kronrod-Jacobi zeros and weights.
void Imgrjm(double *im, const double *zgrj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Radau-Jacobi points (including z=-1) to an arbitrary distrubtion at...
1D Gauss-Radau-Chebyshev quadrature points, pinned at x=1
PointsManagerT & PointsManager(void)
unsigned int GetTotNumPoints() const
1D Gauss-Gauss-Chebyshev quadrature points
Defines a specification for a set of points.
void Dgrjp(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix associated with the Gauss-Radau-Jacobi zeros with a zero at z=1...
void zwgrjm(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Radau-Jacobi zeros and weights with end point at z=-1.
NekManager< PointsKey, NekMatrix< DataType >, PointsKey::opLess > m_GalerkinProjectionManager
void CalculateInterpMatrix(unsigned int npts, const Array< OneD, const NekDouble > &xpoints, Array< OneD, NekDouble > &interp)
virtual void CalculateDerivMatrix()
std::shared_ptr< NekMatrix< NekDouble > > CalculateGalerkinProjectionMatrix(const PointsKey &pkey)
std::shared_ptr< NekMatrix< NekDouble > > CreateGPMatrix(const PointsKey &pkey)
void zwrk(double *z, double *w, const int npt, const double alpha, const double beta)
Gauss-Radau-Kronrod-Jacobi zeros and weights.
Gauss Radau pinned at x=-1, .
NekDouble LagrangeInterpolant(NekDouble x, int npts, const Array< OneD, const NekDouble > &xpts, const Array< OneD, const NekDouble > &funcvals)
functions used by the Kronrod points
Array< OneD, DataType > m_points[3]
static std::shared_ptr< Points< NekDouble > > Create(const PointsKey &pkey)
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]
Gauss Radau pinned at x=-1, .
unsigned int GetNumPoints() const
Gauss Radau pinned at x=-1, .
unsigned int GetNumPoints() const
void Dglj(double *D, const double *z, const int np, const double alpha, const double beta)
Compute the Derivative Matrix associated with the Gauss-Lobatto-Jacobi zeros.
void Imgj(double *im, const double *zgj, const double *zm, const int nz, const int mz, const double alpha, const double beta)
Interpolation Operator from Gauss-Jacobi points to an arbitrary distribution at points zm...
1D Gauss-Lobatto-Legendre quadrature points
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
1D Gauss-Radau-Legendre quadrature points, pinned at x=-1
1D Gauss-Lobatto-Legendre quadrature points
void zwgj(double *z, double *w, const int np, const double alpha, const double beta)
Gauss-Jacobi zeros and weights.