67 if (inarray.data() == outarray.data())
71 Blas::Dgemv(
'N', nquad, nquad, 1.0, &(D->GetPtr())[0], nquad, &wsp[0],
72 1, 0.0, &outarray[0], 1);
76 Blas::Dgemv(
'N', nquad, nquad, 1.0, &(D->GetPtr())[0], nquad,
77 &inarray[0], 1, 0.0, &outarray[0], 1);
84 int nquad =
m_base[0]->GetNumPoints();
86 if (
m_base[0]->Collocation())
93 (
m_base[0]->GetBdata()).data(), nquad, &inarray[0], 1, 0.0,
103 outarray[0] = inarray[0] * w[0];
110 ASSERTL1(dir >= 0 && dir < 1,
"input dir is out of range");
112 outarray[0] = inarray[0] * w[0];
131 (*Mat) = Imass * Iprod;
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Describes the specification for a Basis.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
The base class for all shapes.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
DNekMatSharedPtr CreateGeneralMatrix(const StdMatrixKey &mkey)
this function generates the mass matrix
int GetNumPoints(const int dir) const
This function returns the number of quadrature points in the dir direction.
Array< OneD, LibUtilities::BasisSharedPtr > m_base
MatrixType GetMatrixType() const
void PhysTensorDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
DNekMatSharedPtr v_CreateStdMatrix(const StdMatrixKey &mkey) override
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 v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
DNekMatSharedPtr v_GenMatrix(const StdMatrixKey &mkey) override
LibUtilities::ShapeType v_DetShapeType() const override
void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override
void v_GetCoords(Array< OneD, NekDouble > &coords_0, Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2) override
static void Dgemv(const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
BLAS level 2: Matrix vector multiply y = alpha A x plus beta y where A[m x n].
std::shared_ptr< DNekMat > DNekMatSharedPtr
void CopyArray(const Array< OneD, ConstDataType > &source, Array< OneD, DataType > &dest)
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)