46 namespace LibUtilities
66 if(fpoints0 == tpoints0)
96 if(fpoints0 == tpoints0)
110 from, 1, 0.0, to, 1);
133 Interp2D(fpoints0,fpoints1,from.data(),tpoints0,tpoints1,to.data());
144 if((fpoints0 == tpoints0)&&(fpoints1 == tpoints1))
159 if(fpoints1 == tpoints1)
166 Blas::Dgemm(
'N',
'T', fnp0, tnp1, fnp1, 1.0, from, fnp0,
167 I1->GetPtr().get(), tnp1, 0.0, wsp.get(), fnp0);
170 if(fpoints0 == tpoints0)
177 Blas::Dgemm(
'N',
'N', tnp0, tnp1, fnp0, 1.0, I0->GetPtr().get(),
178 tnp0, wsp.get(), fnp0, 0.0, to, tnp0);
210 Interp3D(fpoints0,fpoints1,fpoints2,from.data(),
211 tpoints0,tpoints1,tpoints2,to.data());
240 Blas::Dgemm(
'N',
'N', tnp0, fnp1*fnp2, fnp0, 1.0, I0->GetPtr().get(),
241 tnp0, from, fnp0, 0.0, wsp2.get(), tnp0);
243 for(i = 0; i < fnp2; i++)
245 Blas::Dgemm(
'N',
'T', tnp0, tnp1, fnp1, 1.0, wsp2.get()+i*tnp0*fnp1,
246 tnp0, I1->GetPtr().get(), tnp1, 0.0, wsp1.get()+i*tnp0*tnp1, tnp0);
249 Blas::Dgemm(
'N',
'T', tnp0*tnp1, tnp2, fnp2, 1.0, wsp1.get(),
250 tnp0*tnp1, I2->GetPtr().get(), tnp2, 0.0, to, tnp0*tnp1);
Describes the specification for a Basis.
PointsKey GetPointsKey() const
Return distribution of points.
Defines a specification for a set of points.
unsigned int GetNumPoints() const
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 = A x where A[m x n].
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...
void Interp1D(const BasisKey &fbasis0, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, Array< OneD, NekDouble > &to)
this function interpolates a 1D function evaluated at the quadrature points of the basis fbasis0 to ...
PointsManagerT & PointsManager(void)
void Interp3D(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)
this function interpolates a 3D function evaluated at the quadrature points of the 3D basis,...
void Interp2D(const BasisKey &fbasis0, const BasisKey &fbasis1, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, Array< OneD, NekDouble > &to)
this function interpolates a 2D function evaluated at the quadrature points of the 2D basis,...
The above copyright notice and this permission notice shall be included.
std::shared_ptr< DNekMat > DNekMatSharedPtr
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)