36 #include <boost/core/ignore_unused.hpp>
59 std::bind(&
StdExpansion::CreateStdMatrix, this, std::placeholders::_1),
60 std::string(
"StdExpansionStdMatrix")),
61 m_stdStaticCondMatrixManager(
62 std::bind(&
StdExpansion::CreateStdStaticCondMatrix, this, std::placeholders::_1),
63 std::string(
"StdExpansionStdStaticCondMatrix"))
69 "NULL Basis attempting to be used.");
74 "NULL Basis attempting to be used.");
79 "NULL Basis attempting to be used.");
93 m_elmt_id(T.m_elmt_id),
94 m_ncoeffs(T.m_ncoeffs),
95 m_stdMatrixManager(T.m_stdMatrixManager),
96 m_stdStaticCondMatrixManager(T.m_stdStaticCondMatrixManager)
178 for(i = 0; i < coordim; ++i)
209 for(i = 0; i < nbdry; ++i)
211 for(j = 0; j < nbdry; ++j)
213 (*A)(i,j) = (*mat)(bmap[i],bmap[j]);
216 for(j = 0; j < nint; ++j)
218 (*B)(i,j) = (*mat)(bmap[i],imap[j]);
222 for(i = 0; i < nint; ++i)
224 for(j = 0; j < nbdry; ++j)
226 (*C)(i,j) = (*mat)(imap[i],bmap[j]);
229 for(j = 0; j < nint; ++j)
231 (*D)(i,j) = (*mat)(imap[i],imap[j]);
240 (*A) = (*A) - (*B)*(*C);
249 returnval->SetBlock(0,0,
A);
250 returnval->SetBlock(0,1,B);
251 returnval->SetBlock(1,0,C);
252 returnval->SetBlock(1,1,D);
321 returnval->GetRawPtr()+i*nq,1);
333 for(i=0; i < nq; ++i)
353 for(i=0; i < nq; ++i)
373 for(i=0; i < nq; ++i)
393 for(i=0; i < nq; ++i)
429 int nummodes =
m_base[0]->GetNumModes();
430 bool equispaced =
true;
431 for(
int i = 1; i <
m_base.size(); ++i)
433 if(
m_base[i]->GetNumModes() != nummodes)
440 "Currently need to have same num modes in all "
441 "directionmodes to use EquiSpacedToCoeff method");
459 returnval->GetRawPtr() + i*
m_ncoeffs, 1);
769 for(i = 0; i < dim; ++i)
783 for(i = 0; i < dim; i++)
785 for(j = 0; j < dim; j++)
850 boost::ignore_unused(inarray, outarray, mkey);
857 bool addDiffusionTerm)
862 ASSERTL0(ndir,
"Must define at least one advection velocity");
871 ASSERTL1(ndir <=
GetCoordim(),
"Number of constants is larger than coordinate dimensions");
879 for(i = 0; i < ndir; ++i)
938 nq, inarray.get(), 1, 0.0, outarray.get(), 1);
950 boost::ignore_unused(nummodes, modes_offset);
957 boost::ignore_unused(Fx, outarray);
963 boost::ignore_unused(Fx, Fy, outarray);
972 boost::ignore_unused(Fx, Fy, Fz, outarray);
978 boost::ignore_unused(Fvec, outarray);
986 boost::ignore_unused(mkey);
994 boost::ignore_unused(mkey);
1002 boost::ignore_unused(dir, inarray, outarray);
1010 boost::ignore_unused(coeffs, dir);
1019 boost::ignore_unused(Lcoord, physvals);
1026 boost::ignore_unused(xi, eta);
1032 boost::ignore_unused(eta, xi);
1038 ASSERTL0(
false,
"This function is needs defining for this shape");
1044 ASSERTL0(
false,
"This function is needs defining for this shape");
1050 ASSERTL0(
false,
"This function is needs defining for this shape");
1057 boost::ignore_unused(i, k);
1058 ASSERTL0(
false,
"This function is not valid or not defined");
1064 boost::ignore_unused(i);
1065 ASSERTL0(
false,
"This function is not valid or not defined");
1071 boost::ignore_unused(i);
1072 ASSERTL0(
false,
"This function is not valid or not defined");
1078 boost::ignore_unused(i);
1079 ASSERTL0(
false,
"This function is not valid or not defined");
1085 ASSERTL0(
false,
"This function is not valid or not defined");
1091 boost::ignore_unused(i, j);
1092 ASSERTL0(
false,
"This function is not valid or not defined");
1098 ASSERTL0(
false,
"This function is not valid or not defined");
1105 ASSERTL0(
false,
"This expansion does not have a shape type defined");
1109 std::shared_ptr<StdExpansion>
1112 ASSERTL0(
false,
"This method is not defined for this expansion");
1117 std::shared_ptr<StdExpansion>
1120 ASSERTL0(
false,
"This method is not defined for this expansion");
1127 ASSERTL0(
false,
"This function is not valid or not defined");
1133 ASSERTL0(
false,
"This function has not been defined for this expansion");
1148 boost::ignore_unused(dir, inarray, outarray);
1161 boost::ignore_unused(direction, inarray, outarray);
1173 boost::ignore_unused(inarray, outarray);
1184 boost::ignore_unused(inarray);
1186 "local expansions");
1199 boost::ignore_unused(inarray, out_d1, out_d2, out_d3);
1201 "local expansions");
1207 boost::ignore_unused(inarray, out_ds);
1209 "local expansions");
1214 boost::ignore_unused(inarray, out_dn);
1216 "local expansions");
1229 boost::ignore_unused(dir, inarray, out_d0);
1231 "specific element types");
1243 boost::ignore_unused(inarray, direction, outarray);
1245 "specific element types");
1253 boost::ignore_unused(inarray, out_d1, out_d2, out_d3);
1262 boost::ignore_unused(dir, inarray, outarray);
1272 boost::ignore_unused(coords, physvals);
1282 boost::ignore_unused(I, physvals);
1289 boost::ignore_unused(coords, mode);
1296 boost::ignore_unused(mode, outarray);
1298 "been defined for this shape");
1303 boost::ignore_unused(mkey);
1305 "been defined for this element");
1312 boost::ignore_unused(mkey);
1314 "been defined for this element");
1323 boost::ignore_unused(coords_0, coords_1, coords_2);
1330 boost::ignore_unused(Lcoord, coord);
1342 boost::ignore_unused(outarray);
1348 boost::ignore_unused(outarray);
1353 bool useCoeffPacking)
1355 boost::ignore_unused(localVertexId, useCoeffPacking);
1367 boost::ignore_unused(tid,maparray,signarray,traceOrient,
P,Q);
1377 boost::ignore_unused(tid,maparray,signarray,traceOrient);
1387 boost::ignore_unused(tid, traceOrient, numModes0, numModes1);
1396 boost::ignore_unused(vertex, inarray, outarray);
1398 "this shape or library" );
1412 boost::ignore_unused(inarray, outarray);
1414 "Method does not exist for this shape or library");
1421 boost::ignore_unused(inarray, outarray);
1428 bool multiplybyweights)
1430 boost::ignore_unused(inarray, outarray, multiplybyweights);
1442 boost::ignore_unused(direction, inarray, outarray);
1444 "Method does not exist for this shape" );
1452 boost::ignore_unused(dir, inarray, outarray);
1480 boost::ignore_unused(array, mkey);
1481 ASSERTL0(
false,
"This function is not defined in StdExpansion.");
1490 boost::ignore_unused(array, alpha, exponent, cutoff);
1491 ASSERTL0(
false,
"This function is not defined in StdExpansion.");
1499 boost::ignore_unused(numMin, inarray, outarray);
1500 ASSERTL0(
false,
"This function is not defined in StdExpansion.");
1504 (
const int k1,
const int k2,
1555 mkey,addDiffusionTerm);
1584 boost::ignore_unused(inarray, outarray, wsp);
1585 ASSERTL0(
false,
"Not implemented.");
1601 boost::ignore_unused(m_transformationmatrix);
1619 for(
int i = 0; i <
m_base.size(); ++i)
1621 nqbase =
m_base[i]->GetNumPoints();
1622 np = std::max(np,nqbase);
1641 (shape,np,np,np),outarray,
eWrapper);
1642 out = (*intmat) * in;
1649 boost::ignore_unused(conn, standard);
1650 ASSERTL0(
false,
"Not implemented.");
1670 out = (*intmat) * in;
#define ASSERTL0(condition, msg)
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
#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.
Defines a specification for a set of points.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
The base class for all shapes.
void GetBoundaryMap(Array< OneD, unsigned int > &outarray)
virtual void v_LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual int v_GetVertexMap(int localVertexId, bool useCoeffPacking=false)
virtual void v_LocCollapsedToLocCoord(const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi)
virtual ~StdExpansion()
Destructor.
virtual void v_PhysDeriv_n(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)
virtual void v_PhysDirectionalDeriv(const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &outarray)
Physical derivative along a direction vector.
StdExpansion()
Default Constructor.
int GetNcoeffs(void) const
This function returns the total number of coefficients used in the expansion.
virtual void v_GetTraceToElementMap(const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
virtual void v_GetCoord(const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)
void GeneralMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void FillMode(const int mode, Array< OneD, NekDouble > &outarray)
This function fills the array outarray with the mode-th mode of the expansion.
virtual NekDouble v_StdPhysEvaluate(const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
void PhysInterpToSimplexEquiSpaced(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int npset=-1)
This function performs an interpolation from the physical space points provided at input into an arra...
void WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void WeakDerivMatrixOp_MatFree(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
DNekBlkMatSharedPtr CreateStdStaticCondMatrix(const StdMatrixKey &mkey)
Create the static condensation of a matrix when using a boundary interior decomposition.
void LaplacianMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_IProductWRTDirectionalDerivBase_SumFac(const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual int v_GetTraceNumPoints(const int i) const
void HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
int NumBndryCoeffs(void) const
void BwdTrans_MatOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_GetCoords(Array< OneD, NekDouble > &coords_0, Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2)
virtual int v_GetCoordim(void)
void LinearAdvectionDiffusionReactionMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
virtual std::shared_ptr< StdExpansion > v_GetStdExp(void) const
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
virtual bool v_IsBoundaryInteriorExpansion()
virtual void v_NormVectorIProductWRTBase(const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray)
virtual int v_GetTraceNcoeffs(const int i) const
virtual void v_GetSimplexEquiSpacedConnectivity(Array< OneD, int > &conn, bool standard=true)
virtual void v_SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
virtual std::shared_ptr< StdExpansion > v_GetLinStdExp(void) const
void WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_GetInteriorMap(Array< OneD, unsigned int > &outarray)
virtual void v_SetCoeffsToOrientation(StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
NekDouble Linf(const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
Function to evaluate the discrete error where is given by the array sol.
void EquiSpacedToCoeffs(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
This function performs a projection/interpolation from the equispaced points sometimes used in post-p...
void MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual int v_GetTotalTraceIntNcoeffs() const
virtual void v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual void v_HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
virtual DNekMatSharedPtr v_BuildInverseTransformationMatrix(const DNekScalMatSharedPtr &m_transformationmatrix)
NekDouble L2(const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
Function to evaluate the discrete error, where is given by the array sol.
virtual void v_GetVertexPhysVals(const int vertex, const Array< OneD, const NekDouble > &inarray, NekDouble &outarray)
virtual int v_GetShapeDimension() const
void IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual int v_GetTraceIntNcoeffs(const int i) const
DNekMatSharedPtr CreateGeneralMatrix(const StdMatrixKey &mkey)
this function generates the mass matrix
virtual int v_NumBndryCoeffs() const
virtual void v_MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_MultiplyByQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual LibUtilities::ShapeType v_DetShapeType() const
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray)
void LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_MultiplyByStdQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual int v_GetNtraces() const
virtual void v_ExponentialFilter(Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff)
void MassLevelCurvatureMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
virtual void v_LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual DNekMatSharedPtr v_GenMatrix(const StdMatrixKey &mkey)
void GetInteriorMap(Array< OneD, unsigned int > &outarray)
virtual DNekMatSharedPtr v_CreateStdMatrix(const StdMatrixKey &mkey)
virtual void v_BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual int v_NumDGBndryCoeffs() const
virtual void v_FwdTrans_BndConstrained(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual void v_GetTraceNumModes(const int fid, int &numModes0, int &numModes1, Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)
virtual void v_PhysDeriv_s(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)
virtual void v_GetBoundaryMap(Array< OneD, unsigned int > &outarray)
void GenStdMatBwdDeriv(const int dir, DNekMatSharedPtr &mat)
virtual void v_MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual const LibUtilities::PointsKey v_GetNodalPointsKey() const
virtual void v_WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
void IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
virtual void v_LocCoordToLocCollapsed(const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
virtual NekDouble v_PhysEvaluateBasis(const Array< OneD, const NekDouble > &coords, int mode)
virtual void v_GetTraceInteriorToElementMap(const int eid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards)
virtual void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Calculates the inner product of a given function f with the different modes of the expansion.
virtual bool v_IsNodalNonTensorialExp()
virtual void v_LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
void HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_ReduceOrderCoeffs(int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual void v_DropLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)
void WeakDirectionalDerivMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_LaplacianMatrixOp_MatFree_Kernel(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
NekDouble H1(const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
Function to evaluate the discrete error, where is given by the array sol.
virtual int v_CalcNumberOfCoefficients(const std::vector< unsigned int > &nummodes, int &modes_offset)
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
void SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
void HelmholtzMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
virtual LibUtilities::PointsKey v_GetTracePointsKey(const int i, const int j) const
Array< OneD, LibUtilities::BasisSharedPtr > m_base
virtual void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
virtual void v_IProductWRTDirectionalDerivBase(const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
virtual void v_PhysDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2, Array< OneD, NekDouble > &out_d3)
Calculate the derivative of the physical points.
virtual const LibUtilities::BasisKey v_GetTraceBasisKey(const int i, const int k) const
virtual void v_StdPhysDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2, Array< OneD, NekDouble > &out_d3)
NekDouble StdPhysEvaluate(const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
void MassMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void GeneralMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
virtual DNekScalBlkMatSharedPtr v_GetLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)
const ConstFactorMap & GetConstFactors() const
LibUtilities::ShapeType GetShapeType() const
const VarCoeffMap & GetVarCoeffs() const
MatrixType GetMatrixType() const
const Array< OneD, const NekDouble > & GetVarCoeff(const StdRegions::VarCoeffType &coeff) const
bool HasVarCoeff(const StdRegions::VarCoeffType &coeff) const
LibUtilities::PointsType GetNodalPointsType() const
NekDouble GetConstFactor(const ConstFactorType &factor) const
bool ConstFactorExists(const ConstFactorType &factor) 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 Daxpy(const int &n, const double &alpha, const double *x, const int &incx, const double *y, const int &incy)
BLAS level 1: y = alpha x plus y.
BasisManagerT & BasisManager(void)
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
int GetNumberOfCoefficients(ShapeType shape, std::vector< unsigned int > &modes, int offset)
static const PointsKey NullPointsKey(0, eNoPointsType)
static const NekDouble kNekSqrtTol
std::shared_ptr< StdExpansion > StdExpansionSharedPtr
@ eLinearAdvectionReaction
@ eLinearAdvectionDiffusionReaction
@ ePhysInterpToEquiSpaced
std::map< ConstFactorType, NekDouble > ConstFactorMap
static ConstFactorMap NullConstFactorMap
static VarCoeffMap NullVarCoeffMap
std::shared_ptr< StdMatrixKey > StdMatrixKeySharedPtr
The above copyright notice and this permission notice shall be included.
std::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
std::shared_ptr< DNekBlkMat > DNekBlkMatSharedPtr
static DNekScalBlkMatSharedPtr NullDNekScalBlkMatSharedPtr
std::shared_ptr< DNekScalBlkMat > DNekScalBlkMatSharedPtr
static DNekMatSharedPtr NullDNekMatSharedPtr
static Array< OneD, NekDouble > NullNekDouble1DArray
std::shared_ptr< DNekMat > DNekMatSharedPtr
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
svtvp (scalar times vector plus vector): z = alpha*x + y
void Vabs(int n, const T *x, const int incx, T *y, const int incy)
vabs: y = |x|
void Vvtvp(int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
vvtvp (vector times vector plus vector): z = w*x + y
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.
void Zero(int n, T *x, const int incx)
Zero vector.
T Vamax(int n, const T *x, const int incx)
Return the maximum absolute element in x called vamax to avoid conflict with max.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
void Vsub(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Subtract vector z = x-y.
scalarT< T > sqrt(scalarT< T > in)