36 #ifndef NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H
37 #define NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H
47 namespace LibUtilities
196 "Default Constructor BasisKey should never be called");
275 inline const boost::shared_ptr<NekMatrix<NekDouble> > &
GetD(
281 const boost::shared_ptr<NekMatrix<NekDouble> >
GetI(
287 const boost::shared_ptr<NekMatrix<NekDouble> >
GetI(
291 "Interpolation only to other 1d basis");
343 "Default Constructor for Basis should not be called");
364 #endif //NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H
int GetTotNumModes() const
Return total number of modes from the basis specification.
virtual ~Basis()
Destructor.
static const PointsKey NullPointsKey(0, eNoPointsType)
#define ASSERTL0(condition, msg)
BasisKey(const BasisType btype, const int nummodes, const PointsKey pkey)
Constructor.
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
friend bool operator!=(const BasisKey &x, const BasisKey &y)
BasisKey m_basisKey
Basis specification.
Represents a basis of a given type.
Principle Modified Functions .
friend bool operator==(const BasisKey &x, const BasisKey &y)
Overloaded Operators.
PointsType GetPointsType() const
Return the type of quadrature.
const BasisKey GetBasisKey() const
Returns the specification for the Basis.
BasisType GetBasisType() const
Return type of expansion basis.
bool ExactIprodInt() const
Determine if basis has exact integration for inner product.
Array< OneD, NekDouble > m_bdata
Basis definition.
Principle Modified Functions .
static BasisSharedPtr NullBasisSharedPtr
Lagrange Polynomials using the Gauss points .
PointsType GetPointsType() const
Return type of quadrature.
const boost::shared_ptr< NekMatrix< NekDouble > > GetI(const Array< OneD, const NekDouble > &x)
boost::shared_ptr< Points< NekDouble > > PointsSharedPtr
bool operator>(const BasisKey &lhs, const BasisKey &rhs)
bool Collocation() const
Determine if basis has collocation properties.
BasisType m_basistype
Expansion type.
PointsKey m_pointsKey
Points specification.
const boost::shared_ptr< NekMatrix< NekDouble > > & GetD(Direction dir=xDir) const
Principle Orthogonal Functions .
const Array< OneD, const NekDouble > & GetZ() const
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
Array< OneD, NekDouble > m_dbdata
Derivative Basis definition.
PointsKey GetPointsKey() const
Return the points specification for the basis.
int GetNumModes() const
Return order of basis from the basis specification.
virtual void Initialize()
Fourier Modified expansions with just the real part of the first mode .
int GetTotNumPoints() const
Return total number of points from the basis specification.
Principle Modified Functions .
#define LIB_UTILITIES_EXPORT
void GenBasis()
Generate appropriate basis and their derivatives.
PointsSharedPtr m_points
Set of points.
void GetZW(Array< OneD, const NekDouble > &z, Array< OneD, const NekDouble > &w) const
int GetNumPoints() const
Return points order at which basis is defined.
unsigned int GetTotNumPoints() const
int m_nummodes
Expansion order.
Principle Orthogonal Functions .
unsigned int GetPointsDim() const
int GetTotNumModes() const
Principle Orthogonal Functions .
Defines a specification for a set of points.
boost::shared_ptr< NekMatrix< NekDouble > > CalculateInterpMatrix(const BasisKey &tbasis0)
Calculate the interpolation Matrix for coefficient from one base (m_basisKey) to another (tbasis0) ...
const Array< OneD, const NekDouble > & GetW() const
bool operator<(const BasisKey &lhs, const BasisKey &rhs)
Fourier Modified expansions with just the imaginary part of the first mode .
BasisKey(const BasisKey &B)
Copy constructor.
PointsKey GetPointsKey() const
Return distribution of points.
Basis()
Private default constructor.
static Array< OneD, BasisSharedPtr > NullBasisSharedPtr1DArray
Fourier ModifiedExpansion with just the first mode .
unsigned int GetNumPoints() const
const Array< OneD, const NekDouble > & GetDbdata() const
Return basis definition array m_dbdata.
int GetNumPoints() const
Return the number of points from the basis specification.
Legendre Polynomials . Same as Ortho_A.
bool SamePoints(const BasisKey &x) const
Determine if quadrature of expansion x matches this.
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
int GetNumModes() const
Returns the order of the basis.
NekManager< BasisKey, NekMatrix< NekDouble >, BasisKey::opLess > m_InterpManager
boost::shared_ptr< Basis > BasisSharedPtr
bool operator()(const BasisKey &lhs, const BasisKey &rhs) const
bool SameExp(const BasisKey &x) const
Determine if basis expansion x matches this.
static boost::shared_ptr< Basis > Create(const BasisKey &bkey)
Returns a new instance of a Basis with given BasisKey.
const Array< OneD, const NekDouble > & GetBdata() const
Return basis definition array m_bdata.
int GetTotNumPoints() const
const boost::shared_ptr< NekMatrix< NekDouble > > GetI(const BasisKey &bkey)
Describes the specification for a Basis.
bool ExactIprodInt() const
Determine if basis has exact integration for inner product.
friend bool operator<(const BasisKey &lhs, const BasisKey &rhs)
BasisType GetBasisType() const
Return the type of expansion basis.
bool Collocation() const
Determine if basis has collocation properties.
PointsType GetPointsType() const