47 "Number of modes must be the same for "
48 "interpolating coefficients");
72 InterpCoeff2D(fbasis0, fbasis1, from.data(), tbasis0, tbasis1, to.data());
95 Blas::Dgemm(
'N',
'T', fnm0, tnm1, fnm1, 1.0, from, fnm0,
96 ft1->GetPtr().get(), tnm1, 0.0, wsp.get(), fnm0);
108 Blas::Dgemm(
'N',
'N', tnm0, tnm1, fnm0, 1.0, ft0->GetPtr().get(), tnm0,
109 wsp.get(), fnm0, 0.0, to, tnm0);
119 InterpCoeff3D(fbasis0, fbasis1, fbasis2, from.data(), tbasis0, tbasis1,
142 Blas::Dgemm(
'N',
'N', tnm0, fnm1 * fnm2, fnm0, 1.0, ft0->GetPtr().get(),
143 tnm0, from, fnm0, 0.0, wsp2.get(), tnm0);
145 for (
size_t i = 0; i < fnm2; i++)
148 wsp2.get() + i * tnm0 * fnm1, tnm0, ft1->GetPtr().get(),
149 tnm1, 0.0, wsp1.get() + i * tnm0 * tnm1, tnm0);
152 Blas::Dgemm(
'N',
'T', tnm0 * tnm1, tnm2, fnm2, 1.0, wsp1.get(), tnm0 * tnm1,
153 ft2->GetPtr().get(), tnm2, 0.0, to, tnm0 * tnm1);
#define ASSERTL0(condition, msg)
Describes the specification for a Basis.
BasisType GetBasisType() const
Return type of expansion basis.
int GetNumModes() const
Returns the order of the basis.
static void Dgemm(const char &transa, const char &transb, const int &m, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM perfo...
BasisManagerT & BasisManager(void)
void InterpCoeff2D(const BasisKey &fbasis0, const BasisKey &fbasis1, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, Array< OneD, NekDouble > &to)
void InterpCoeff3D(const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, Array< OneD, NekDouble > &to)
void InterpCoeff1D(const BasisKey &fbasis0, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, Array< OneD, NekDouble > &to)
std::shared_ptr< DNekMat > DNekMatSharedPtr
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)