35 #include <boost/core/ignore_unused.hpp>
53 Ba.GetNumModes(), Bb.GetNumModes(), Bc.GetNumModes()),
56 Ba.GetNumModes(), Bb.GetNumModes(), Bc.GetNumModes()),
58 StdTetExp(Ba, Bb, Bc), m_nodalPointsKey(Ba.GetNumModes(), Ntype)
61 "order in 'a' direction is higher than order "
64 "order in 'a' direction is higher than order "
67 "order in 'b' direction is higher than order "
73 m_nodalPointsKey(T.m_nodalPointsKey)
100 modal = (*inv_vdm) * nodal;
128 nodal = (*vdm) * modal;
204 out = (*matsys) * in;
249 "calling argument mode is larger than total expansion order");
252 outarray[mode] = 1.0;
330 bool useCoeffPacking)
332 boost::ignore_unused(useCoeffPacking);
333 ASSERTL0(localVertexId >= 0 && localVertexId <= 3,
334 "Local Vertex ID must be between 0 and 3");
335 return localVertexId;
343 if (outarray.size() != nBndryCoeff)
348 for (i = 0; i < nBndryCoeff; i++)
359 if (outarray.size() !=
m_ncoeffs - nBndryCoeff)
364 for (i = nBndryCoeff; i <
m_ncoeffs; i++)
366 outarray[i - nBndryCoeff] = i;
#define ASSERTL0(condition, msg)
#define ASSERTL2(condition, msg)
Assert Level 2 – Debugging which is used FULLDEBUG compilation mode. This level assert is designed to...
Describes the specification for a Basis.
int GetNumModes() const
Returns the order of the basis.
PointsType GetPointsType() const
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals) override
This function evaluates the expansion at a single (arbitrary) point of the domain.
The base class for all shapes.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
int NumBndryCoeffs(void) const
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
DNekMatSharedPtr CreateGeneralMatrix(const StdMatrixKey &mkey)
this function generates the mass matrix
MatrixType GetMatrixType() const
void NodalToModalTranspose(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
~StdNodalTetExp() override
void v_GetBoundaryMap(Array< OneD, unsigned int > &outarray) override
int v_GetVertexMap(const int localVertexId, bool useCoeffPacking=false) override
DNekMatSharedPtr GenNBasisTransMatrix()
void NodalToModal(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void v_FwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
void ModalToNodal(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
Calculates the inner product of a given function f with the different modes of the expansion.
void GetNodalPoints(Array< OneD, const NekDouble > &x, Array< OneD, const NekDouble > &y, Array< OneD, const NekDouble > &z)
void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray) override
DNekMatSharedPtr v_GenMatrix(const StdMatrixKey &mkey) override
bool v_IsNodalNonTensorialExp() override
void v_GetInteriorMap(Array< OneD, unsigned int > &outarray) override
void v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
DNekMatSharedPtr v_CreateStdMatrix(const StdMatrixKey &mkey) override
void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool mult=true) override
LibUtilities::PointsKey m_nodalPointsKey
void v_BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
virtual void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray) override
virtual void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
virtual void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true) override
virtual void v_BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
LibUtilities::ShapeType DetShapeType() const
int getNumberOfCoefficients(int Na)
PointsManagerT & PointsManager(void)
static ConstFactorMap NullConstFactorMap
static VarCoeffMap NullVarCoeffMap
The above copyright notice and this permission notice shall be included.
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose(NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
std::shared_ptr< DNekMat > DNekMatSharedPtr
void Zero(int n, T *x, const int incx)
Zero vector.