35 #ifndef NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H 36 #define NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H 46 namespace LibUtilities
201 "Default Constructor BasisKey should never be called");
215 static std::shared_ptr<Basis> Create(
const BasisKey &bkey);
225 return m_basisKey.GetNumModes();
231 return m_basisKey.GetTotNumModes();
237 return m_basisKey.GetNumPoints();
243 return m_basisKey.GetTotNumPoints();
249 return m_basisKey.GetBasisType();
255 return m_basisKey.GetPointsKey();
261 return m_basisKey.GetPointsType();
266 return m_points->GetZ();
271 return m_points->GetW();
277 m_points->GetZW(z,w);
280 inline const std::shared_ptr<NekMatrix<NekDouble> > &
GetD(
283 return m_points->GetD(dir);
286 const std::shared_ptr<NekMatrix<NekDouble> >
GetI(
289 return m_points->GetI(x);
292 const std::shared_ptr<NekMatrix<NekDouble> >
GetI(
296 "Interpolation only to other 1d basis");
297 return m_InterpManager[bkey];
303 return m_basisKey.ExactIprodInt();
309 return m_basisKey.Collocation();
341 static bool initBasisManager[];
350 "Default Constructor for Basis should not be called");
353 std::shared_ptr< NekMatrix<NekDouble> > CalculateInterpMatrix(
371 #endif //NEKTAR_LIB_UTILIITIES_FOUNDATIONS_BASIS_H int GetNumPoints() const
Return points order at which basis is defined.
virtual ~Basis()
Destructor.
static const PointsKey NullPointsKey(0, eNoPointsType)
#define ASSERTL0(condition, msg)
int GetNumPoints() const
Return the number of points from the basis specification.
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.
PointsType GetPointsType() const
Represents a basis of a given type.
Principle Modified Functions .
friend bool operator==(const BasisKey &x, const BasisKey &y)
Overloaded Operators.
Principle Modified Functions .
int GetTotNumPoints() const
Return total number of points from the basis specification.
BasisKey & operator=(const BasisKey &)=default
Assignment operator.
Array< OneD, NekDouble > m_bdata
Basis definition.
BasisType GetBasisType() const
Return type of expansion basis.
bool Collocation() const
Determine if basis has collocation properties.
Principle Modified Functions .
static BasisSharedPtr NullBasisSharedPtr
Lagrange Polynomials using the Gauss points .
void GetZW(Array< OneD, const NekDouble > &z, Array< OneD, const NekDouble > &w) const
bool operator>(const BasisKey &lhs, const BasisKey &rhs)
bool SamePoints(const BasisKey &x) const
Determine if quadrature of expansion x matches this.
unsigned int GetPointsDim() const
std::shared_ptr< Basis > BasisSharedPtr
int GetNumModes() const
Return order of basis from the basis specification.
PointsType GetPointsType() const
Return the type of quadrature.
PointsKey GetPointsKey() const
Return distribution of points.
BasisType m_basistype
Expansion type.
PointsKey m_pointsKey
Points specification.
const Array< OneD, const NekDouble > & GetBdata() const
Return basis definition array m_bdata.
BasisType GetBasisType() const
Return the type of expansion basis.
const Array< OneD, const NekDouble > & GetW() const
int GetTotNumModes() const
Principle Orthogonal Functions .
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
Array< OneD, NekDouble > m_dbdata
Derivative Basis definition.
bool operator()(const BasisKey &lhs, const BasisKey &rhs) const
int GetNumModes() const
Returns the order of the basis.
Fourier Modified expansions with just the real part of the first mode .
std::shared_ptr< Points< NekDouble > > PointsSharedPtr
Principle Modified Functions .
#define LIB_UTILITIES_EXPORT
PointsType GetPointsType() const
Return type of quadrature.
PointsSharedPtr m_points
Set of points.
const BasisKey GetBasisKey() const
Returns the specification for the Basis.
int m_nummodes
Expansion order.
Principle Orthogonal Functions .
unsigned int GetTotNumPoints() const
Principle Orthogonal Functions .
Defines a specification for a set of points.
int GetTotNumPoints() const
const std::shared_ptr< NekMatrix< NekDouble > > & GetD(Direction dir=xDir) const
bool ExactIprodInt() const
Determine if basis has exact integration for inner product.
Fourier Modified expansions with just the imaginary part of the first mode .
Principle Orthogonal Functions .
const Array< OneD, const NekDouble > & GetDbdata() const
Return basis definition array m_dbdata.
BasisKey(const BasisKey &B)
Copy constructor.
bool Collocation() const
Determine if basis has collocation properties.
Basis()
Private default constructor.
static Array< OneD, BasisSharedPtr > NullBasisSharedPtr1DArray
Fourier ModifiedExpansion with just the first mode .
const std::shared_ptr< NekMatrix< NekDouble > > GetI(const Array< OneD, const NekDouble > &x)
Legendre Polynomials . Same as Ortho_A.
PointsKey GetPointsKey() const
Return the points specification for the basis.
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs
NekManager< BasisKey, NekMatrix< NekDouble >, BasisKey::opLess > m_InterpManager
unsigned int GetNumPoints() const
bool ExactIprodInt() const
Determine if basis has exact integration for inner product.
Describes the specification for a Basis.
friend bool operator<(const BasisKey &lhs, const BasisKey &rhs)
bool SameExp(const BasisKey &x) const
Determine if basis expansion x matches this.
int GetTotNumModes() const
Return total number of modes from the basis specification.
const Array< OneD, const NekDouble > & GetZ() const
const std::shared_ptr< NekMatrix< NekDouble > > GetI(const BasisKey &bkey)