Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Nektar::StdRegions::StdExpansion Class Referenceabstract

The base class for all shapes. More...

#include <StdExpansion.h>

Inheritance diagram for Nektar::StdRegions::StdExpansion:
[legend]

Public Member Functions

 StdExpansion ()
 Default Constructor. More...
 
 StdExpansion (const int numcoeffs, const int numbases, const LibUtilities::BasisKey &Ba=LibUtilities::NullBasisKey, const LibUtilities::BasisKey &Bb=LibUtilities::NullBasisKey, const LibUtilities::BasisKey &Bc=LibUtilities::NullBasisKey)
 Constructor. More...
 
 StdExpansion (const StdExpansion &T)
 Copy Constructor. More...
 
virtual ~StdExpansion ()
 Destructor. More...
 
int GetNumBases () const
 This function returns the number of 1D bases used in the expansion. More...
 
const Array< OneD, const LibUtilities::BasisSharedPtr > & GetBase () const
 This function gets the shared point to basis. More...
 
const LibUtilities::BasisSharedPtrGetBasis (int dir) const
 This function gets the shared point to basis in the dir direction. More...
 
int GetNcoeffs (void) const
 This function returns the total number of coefficients used in the expansion. More...
 
int GetTotPoints () const
 This function returns the total number of quadrature points used in the element. More...
 
LibUtilities::BasisType GetBasisType (const int dir) const
 This function returns the type of basis used in the dir direction. More...
 
int GetBasisNumModes (const int dir) const
 This function returns the number of expansion modes in the dir direction. More...
 
int EvalBasisNumModesMax (void) const
 This function returns the maximum number of expansion modes over all local directions. More...
 
LibUtilities::PointsType GetPointsType (const int dir) const
 This function returns the type of quadrature points used in the dir direction. More...
 
int GetNumPoints (const int dir) const
 This function returns the number of quadrature points in the dir direction. More...
 
const Array< OneD, const NekDouble > & GetPoints (const int dir) const
 This function returns a pointer to the array containing the quadrature points in dir direction. More...
 
int GetNverts () const
 This function returns the number of vertices of the expansion domain. More...
 
int GetTraceNcoeffs (const int i) const
 This function returns the number of expansion coefficients belonging to the i-th trace. More...
 
int GetTraceIntNcoeffs (const int i) const
 
int GetTraceNumPoints (const int i) const
 This function returns the number of quadrature points belonging to the i-th trace. More...
 
const LibUtilities::BasisKey GetTraceBasisKey (const int i, int k=-1) const
 This function returns the basis key belonging to the i-th trace. More...
 
LibUtilities::PointsKey GetTracePointsKey (const int i, int k=-1) const
 This function returns the basis key belonging to the i-th trace. More...
 
int NumBndryCoeffs (void) const
 
int NumDGBndryCoeffs (void) const
 
const LibUtilities::PointsKey GetNodalPointsKey () const
 This function returns the type of expansion Nodal point type if defined. More...
 
int GetNtraces () const
 Returns the number of trace elements connected to this element. More...
 
LibUtilities::ShapeType DetShapeType () const
 This function returns the shape of the expansion domain. More...
 
std::shared_ptr< StdExpansionGetStdExp () const
 
std::shared_ptr< StdExpansionGetLinStdExp (void) const
 
int GetShapeDimension () const
 
bool IsBoundaryInteriorExpansion () const
 
bool IsNodalNonTensorialExp ()
 
void BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 This function performs the Backward transformation from coefficient space to physical space. More...
 
void FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 This function performs the Forward transformation from physical space to coefficient space. More...
 
void FwdTransBndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
NekDouble Integral (const Array< OneD, const NekDouble > &inarray)
 This function integrates the specified function over the domain. More...
 
void FillMode (const int mode, Array< OneD, NekDouble > &outarray)
 This function fills the array outarray with the mode-th mode of the expansion. More...
 
void IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 this function calculates the inner product of a given function f with the different modes of the expansion More...
 
void IProductWRTBase (const Array< OneD, const NekDouble > &base, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int coll_check)
 
void IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
int GetElmtId ()
 Get the element id of this expansion when used in a list by returning value of m_elmt_id. More...
 
void SetElmtId (const int id)
 Set the element id of this expansion when used in a list by returning value of m_elmt_id. More...
 
void GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2=NullNekDouble1DArray, Array< OneD, NekDouble > &coords_3=NullNekDouble1DArray)
 this function returns the physical coordinates of the quadrature points of the expansion More...
 
void GetCoord (const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)
 given the coordinates of a point of the element in the local collapsed coordinate system, this function calculates the physical coordinates of the point More...
 
DNekMatSharedPtr GetStdMatrix (const StdMatrixKey &mkey)
 
DNekBlkMatSharedPtr GetStdStaticCondMatrix (const StdMatrixKey &mkey)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble >> &Fvec, Array< OneD, NekDouble > &outarray)
 
DNekScalBlkMatSharedPtr GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
void DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
int CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset)
 
NekDouble StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
 
int GetCoordim ()
 
void GetBoundaryMap (Array< OneD, unsigned int > &outarray)
 
void GetInteriorMap (Array< OneD, unsigned int > &outarray)
 
int GetVertexMap (const int localVertexId, bool useCoeffPacking=false)
 
void GetTraceToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
 
void GetTraceCoeffMap (const unsigned int traceid, Array< OneD, unsigned int > &maparray)
 
void GetElmtTraceToTraceMap (const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
 
void GetTraceInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards)
 
void GetTraceNumModes (const int tid, int &numModes0, int &numModes1, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)
 
void MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
DNekMatSharedPtr CreateGeneralMatrix (const StdMatrixKey &mkey)
 this function generates the mass matrix \(\mathbf{M}[i][j] = \int \phi_i(\mathbf{x}) \phi_j(\mathbf{x}) d\mathbf{x}\) More...
 
void GeneralMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
 
void ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff)
 
void LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassLevelCurvatureMatrixOp (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 HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
DNekMatSharedPtr GenMatrix (const StdMatrixKey &mkey)
 
void PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray)
 
void PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void PhysDeriv_s (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)
 
void PhysDeriv_n (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)
 
void PhysDirectionalDeriv (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &outarray)
 
void StdPhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray)
 
void StdPhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
NekDouble PhysEvaluate (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
 This function evaluates the expansion at a single (arbitrary) point of the domain. More...
 
NekDouble PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs)
 This function evaluates the first derivative of the expansion at a single (arbitrary) point of the domain. More...
 
NekDouble PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs, std::array< NekDouble, 6 > &secondOrderDerivs)
 
NekDouble PhysEvaluate (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals)
 This function evaluates the expansion at a single (arbitrary) point of the domain. More...
 
NekDouble PhysEvaluateBasis (const Array< OneD, const NekDouble > &coords, int mode)
 This function evaluates the basis function mode mode at a point coords of the domain. More...
 
void LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
 Convert local cartesian coordinate xi into local collapsed coordinates eta. More...
 
void LocCollapsedToLocCoord (const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi)
 Convert local collapsed coordinates eta into local cartesian coordinate xi. More...
 
virtual int v_CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset)
 
virtual void v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray)
 
virtual void v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
 
virtual void v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray)
 
virtual void v_NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble >> &Fvec, Array< OneD, NekDouble > &outarray)
 
virtual DNekScalBlkMatSharedPtr v_GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
virtual void v_DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
NekDouble Linf (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
 Function to evaluate the discrete \( L_\infty\) error \( |\epsilon|_\infty = \max |u - u_{exact}|\) where \( u_{exact}\) is given by the array sol. More...
 
NekDouble L2 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
 Function to evaluate the discrete \( L_2\) error, \( | \epsilon |_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2 dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol. More...
 
NekDouble H1 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray)
 Function to evaluate the discrete \( H^1\) error, \( | \epsilon |^1_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2 + \nabla(u - u_{exact})\cdot\nabla(u - u_{exact})\cdot dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol. More...
 
const LibUtilities::PointsKeyVector GetPointsKeys () const
 
DNekMatSharedPtr BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &m_transformationmatrix)
 
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 array of equispaced points which are not the collapsed coordinate. So for a tetrahedron you will only get a tetrahedral number of values. More...
 
void GetSimplexEquiSpacedConnectivity (Array< OneD, int > &conn, bool standard=true)
 This function provides the connectivity of local simplices (triangles or tets) to connect the equispaced data points provided by PhysInterpToSimplexEquiSpaced. More...
 
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-processing onto the coefficient space. More...
 
template<class T >
std::shared_ptr< T > as ()
 
void IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
 
void GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat)
 

Protected Member Functions

DNekMatSharedPtr CreateStdMatrix (const StdMatrixKey &mkey)
 
DNekBlkMatSharedPtr CreateStdStaticCondMatrix (const StdMatrixKey &mkey)
 Create the static condensation of a matrix when using a boundary interior decomposition. More...
 
void BwdTrans_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void IProductWRTDerivBase_SumFac (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void IProductWRTDirectionalDerivBase_SumFac (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void GeneralMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
 
void LaplacianMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree (const int k1, const int k2, 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)
 
void WeakDirectionalDerivMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassLevelCurvatureMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LinearAdvectionDiffusionReactionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
 
void HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void HelmholtzMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_SetCoeffsToOrientation (Array< OneD, NekDouble > &coeffs, StdRegions::Orientation dir)
 
virtual NekDouble v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
 
virtual void v_GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat)
 
virtual void v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv, NekDouble &deriv2)
 This function performs the barycentric interpolation of the polynomial stored in coord at a point physvals using barycentric interpolation weights in direction. More...
 
template<int DIR>
NekDouble BaryEvaluateBasis (const NekDouble &coord, const int &mode)
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals)
 Helper function to pass an unused value by reference into BaryEvaluate. More...
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv)
 

Protected Attributes

Array< OneD, LibUtilities::BasisSharedPtrm_base
 
int m_elmt_id
 
int m_ncoeffs
 
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLessm_stdMatrixManager
 
LibUtilities::NekManager< StdMatrixKey, DNekBlkMat, StdMatrixKey::opLessm_stdStaticCondMatrixManager
 

Private Member Functions

virtual int v_GetNverts () const =0
 
virtual int v_GetNtraces () const =0
 
virtual int v_NumBndryCoeffs () const =0
 
virtual int v_NumDGBndryCoeffs () const =0
 
virtual int v_GetTraceNcoeffs (const int i) const =0
 
virtual int v_GetTraceIntNcoeffs (const int i) const =0
 
virtual int v_GetTraceNumPoints (const int i) const =0
 
virtual const LibUtilities::BasisKey v_GetTraceBasisKey (const int i, const int k) const
 
virtual LibUtilities::PointsKey v_GetTracePointsKey (const int i, const int j) const
 
virtual const LibUtilities::PointsKey v_GetNodalPointsKey () const
 
virtual LibUtilities::ShapeType v_DetShapeType () const =0
 
virtual std::shared_ptr< StdExpansionv_GetStdExp () const
 
virtual std::shared_ptr< StdExpansionv_GetLinStdExp (void) const
 
virtual int v_GetShapeDimension () const =0
 
virtual bool v_IsBoundaryInteriorExpansion () const
 
virtual bool v_IsNodalNonTensorialExp ()
 
virtual void v_BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
 
virtual void v_FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
 Transform a given function from physical quadrature space to coefficient space. More...
 
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. More...
 
virtual void v_IProductWRTBase (const Array< OneD, const NekDouble > &base, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int coll_check)
 
virtual void v_IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_FwdTransBndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual NekDouble v_Integral (const Array< OneD, const NekDouble > &inarray)
 Integrates the specified function over the domain. More...
 
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. More...
 
virtual void v_PhysDeriv_s (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)
 
virtual void v_PhysDeriv_n (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)
 
virtual void v_PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0)
 Calculate the derivative of the physical points in a given direction. More...
 
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. More...
 
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)
 
virtual void v_StdPhysDeriv (const int dir, 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 NekDouble v_PhysEvaluate (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals)
 
virtual NekDouble v_PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs)
 
virtual NekDouble v_PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs, std::array< NekDouble, 6 > &secondOrderDerivs)
 
virtual NekDouble v_PhysEvaluateBasis (const Array< OneD, const NekDouble > &coords, int mode)
 
virtual void v_LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
 
virtual void v_LocCollapsedToLocCoord (const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi)
 
virtual void v_FillMode (const int mode, Array< OneD, NekDouble > &outarray)
 
virtual DNekMatSharedPtr v_GenMatrix (const StdMatrixKey &mkey)
 
virtual DNekMatSharedPtr v_CreateStdMatrix (const StdMatrixKey &mkey)
 
virtual void v_GetCoords (Array< OneD, NekDouble > &coords_0, Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2)
 
virtual void v_GetCoord (const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)
 
virtual int v_GetCoordim () const
 
virtual void v_GetBoundaryMap (Array< OneD, unsigned int > &outarray)
 
virtual void v_GetInteriorMap (Array< OneD, unsigned int > &outarray)
 
virtual int v_GetVertexMap (int localVertexId, bool useCoeffPacking=false)
 
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)
 
virtual void v_GetTraceCoeffMap (const unsigned int traceid, Array< OneD, unsigned int > &maparray)
 
virtual void v_GetElmtTraceToTraceMap (const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
 
virtual void v_GetTraceInteriorToElementMap (const int eid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards)
 
virtual void v_GetTraceNumModes (const int fid, int &numModes0, int &numModes1, Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)
 
virtual void v_GetVertexPhysVals (const int vertex, const Array< OneD, const NekDouble > &inarray, NekDouble &outarray)
 
virtual void v_MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_BwdTrans_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
 
virtual void v_IProductWRTDerivBase_SumFac (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_IProductWRTDirectionalDerivBase_SumFac (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
 
virtual void v_ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff)
 
virtual void v_ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_WeakDerivMatrixOp (const int i, 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)
 
virtual void v_MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LinearAdvectionDiffusionReactionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
 
virtual void v_HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LaplacianMatrixOp_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)
 
virtual void v_HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual DNekMatSharedPtr v_BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &m_transformationmatrix)
 
virtual void v_GetSimplexEquiSpacedConnectivity (Array< OneD, int > &conn, bool standard=true)
 

Detailed Description

The base class for all shapes.

This is the lowest level basic class for all shapes and so contains the definition of common data and common routine to all elements

Definition at line 70 of file StdExpansion.h.

Constructor & Destructor Documentation

◆ StdExpansion() [1/3]

Nektar::StdRegions::StdExpansion::StdExpansion ( )

Default Constructor.

Default constructor.

Definition at line 46 of file StdExpansion.cpp.

47 {
48 }

◆ StdExpansion() [2/3]

Nektar::StdRegions::StdExpansion::StdExpansion ( const int  numcoeffs,
const int  numbases,
const LibUtilities::BasisKey Ba = LibUtilities::NullBasisKey,
const LibUtilities::BasisKey Bb = LibUtilities::NullBasisKey,
const LibUtilities::BasisKey Bc = LibUtilities::NullBasisKey 
)

Constructor.

Definition at line 50 of file StdExpansion.cpp.

54  : m_base(numbases), m_elmt_id(0), m_ncoeffs(numcoeffs),
56  std::placeholders::_1),
57  std::string("StdExpansionStdMatrix")),
60  std::placeholders::_1),
61  std::string("StdExpansionStdStaticCondMatrix"))
62 {
63  switch (m_base.size())
64  {
65  case 3:
67  "NULL Basis attempting to be used.");
69  /* Falls through. */
70  case 2:
72  "NULL Basis attempting to be used.");
74  /* Falls through. */
75  case 1:
77  "NULL Basis attempting to be used.");
79  break;
80  default:
81  break;
82  // ASSERTL0(false, "numbases incorrectly specified");
83  };
84 
85 } // end constructor
#define ASSERTL2(condition, msg)
Assert Level 2 – Debugging which is used FULLDEBUG compilation mode. This level assert is designed to...
Definition: ErrorUtil.hpp:272
DNekBlkMatSharedPtr CreateStdStaticCondMatrix(const StdMatrixKey &mkey)
Create the static condensation of a matrix when using a boundary interior decomposition.
LibUtilities::NekManager< StdMatrixKey, DNekBlkMat, StdMatrixKey::opLess > m_stdStaticCondMatrixManager
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLess > m_stdMatrixManager
Array< OneD, LibUtilities::BasisSharedPtr > m_base
DNekMatSharedPtr CreateStdMatrix(const StdMatrixKey &mkey)
BasisManagerT & BasisManager(void)
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.

References ASSERTL2, Nektar::LibUtilities::BasisManager(), m_base, and Nektar::LibUtilities::NullBasisKey().

◆ StdExpansion() [3/3]

Nektar::StdRegions::StdExpansion::StdExpansion ( const StdExpansion T)

Copy Constructor.

Definition at line 87 of file StdExpansion.cpp.

88  : std::enable_shared_from_this<StdExpansion>(T), m_base(T.m_base),
89  m_elmt_id(T.m_elmt_id), m_ncoeffs(T.m_ncoeffs),
90  m_stdMatrixManager(T.m_stdMatrixManager),
91  m_stdStaticCondMatrixManager(T.m_stdStaticCondMatrixManager)
92 {
93 }

◆ ~StdExpansion()

Nektar::StdRegions::StdExpansion::~StdExpansion ( )
virtual

Destructor.

Definition at line 96 of file StdExpansion.cpp.

97 {
98 }

Member Function Documentation

◆ as()

template<class T >
std::shared_ptr<T> Nektar::StdRegions::StdExpansion::as ( )
inline

Definition at line 1152 of file StdExpansion.h.

1153  {
1154  return std::dynamic_pointer_cast<T>(shared_from_this());
1155  }

◆ BaryEvaluate() [1/3]

template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble Nektar::StdRegions::StdExpansion::BaryEvaluate ( const NekDouble coord,
const NekDouble physvals 
)
inlineprotected

Helper function to pass an unused value by reference into BaryEvaluate.

Parameters
coordThe coordinate of the single point.
physvalsThe polynomial stored at each quadrature point.
Template Parameters
DIRThe direction of evaluation.
DERIVBool to find derivative.
Returns
The value of physvals at coord in direction dir.

Definition at line 1464 of file StdExpansion.h.

1466  {
1467  NekDouble unusedValue = 0.0;
1468  return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, unusedValue,
1469  unusedValue);
1470  }
double NekDouble

◆ BaryEvaluate() [2/3]

template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble Nektar::StdRegions::StdExpansion::BaryEvaluate ( const NekDouble coord,
const NekDouble physvals,
NekDouble deriv 
)
inlineprotected

Definition at line 1473 of file StdExpansion.h.

1475  {
1476  NekDouble unusedValue = 0.0;
1477  return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, deriv,
1478  unusedValue);
1479  }

◆ BaryEvaluate() [3/3]

template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble Nektar::StdRegions::StdExpansion::BaryEvaluate ( const NekDouble coord,
const NekDouble physvals,
NekDouble deriv,
NekDouble deriv2 
)
inlineprotected

This function performs the barycentric interpolation of the polynomial stored in coord at a point physvals using barycentric interpolation weights in direction.

Template Parameters
DIR.It can also perform the barycentric interpolation of the derivative of the polynomial if
DERIVis set to true, which outputs in to
Parameters
deriv.This method is intended to be used a helper function for StdExpansion::PhysEvaluate and its elemental instances, so that the calling method should provide coord for x, y and z sequentially and the appropriate physvals and weights for that particular direction.
coordThe coordinate of the single point.
physvalsThe polynomial stored at each quadrature point.
derivThe value of the derivative.
derivThe value of the 2nd derivative.
Template Parameters
DIRThe direction of evaluation.
DERIVBool to find derivative.
Returns
The value of physvals at coord in direction dir.

Definition at line 1336 of file StdExpansion.h.

1339  {
1340  NekDouble numer1 = 0.0, numer2 = 0.0, numer3 = 0.0, numer4 = 0.0,
1341  numer5 = 0.0, denom = 0.0;
1342 
1343  ASSERTL2(DIR < m_base.size(),
1344  "Direction should be less than shape dimension.");
1345 
1346  const Array<OneD, const NekDouble> &z = m_base[DIR]->GetZ();
1347  const Array<OneD, const NekDouble> &bw = m_base[DIR]->GetBaryWeights();
1348 
1349  const size_t nquad = z.size();
1350 
1351  for (size_t i = 0; i < nquad; ++i)
1352  {
1353  NekDouble xdiff = z[i] - coord;
1354  NekDouble pval = physvals[i];
1355 
1356  /*
1357  * (in this specific case) you actually
1358  * want to do the comparison exactly
1359  * (believe it or not!) See chapter 7 of
1360  * the paper here:
1361  *https://people.maths.ox.ac.uk/trefethen/barycentric.pdf
1362  */
1363  if ((!DERIV && xdiff == 0.0) ||
1364  ((DERIV || DERIV2) && std::abs(xdiff) < 1e-15))
1365  {
1366 
1367  if (DERIV2)
1368  {
1369  DNekMatSharedPtr D0 = m_base[DIR]->GetD();
1370 
1371  // take ith row of z and multiply with physvals
1372  Array<OneD, NekDouble> tmp(nquad);
1373  for (int kk = 0; kk < nquad; kk++)
1374  {
1375  tmp[kk] = Vmath::Dot(nquad, &(D0->GetPtr())[kk], nquad,
1376  &physvals[0], 1);
1377  }
1378 
1379  deriv2 = Vmath::Dot(nquad, &(D0->GetPtr())[i], nquad,
1380  &tmp[0], 1);
1381  deriv = tmp[i];
1382  }
1383  else if (DERIV)
1384  {
1385  DNekMatSharedPtr D0 = m_base[DIR]->GetD();
1386 
1387  // take ith row of z and multiply with physvals
1388  deriv = Vmath::Dot(z.size(), &(D0->GetPtr())[i], z.size(),
1389  &physvals[0], 1);
1390  }
1391 
1392  return pval;
1393  }
1394 
1395  NekDouble tmp = bw[i] / xdiff;
1396  numer1 += tmp * pval;
1397  denom += tmp;
1398 
1399  if (DERIV || DERIV2)
1400  {
1401  NekDouble tmp2 = tmp / xdiff;
1402  numer2 += tmp2 * pval;
1403  numer3 += tmp2;
1404 
1405  if (DERIV2)
1406  {
1407  NekDouble tmp3 = tmp2 / xdiff;
1408  numer4 += tmp3 * pval;
1409  numer5 += tmp3;
1410  }
1411  }
1412  }
1413 
1414  if (DERIV || DERIV2)
1415  {
1416  NekDouble denomdenom = denom * denom;
1417  NekDouble numer1numer3 = numer1 * numer3;
1418 
1419  deriv = (numer2 * denom - numer1numer3) / (denomdenom);
1420 
1421  if (DERIV2)
1422  {
1423  deriv2 = (2.0 * numer4 / denom) -
1424  (2.0 * numer5 * numer1) / (denomdenom) -
1425  (2.0 * numer2 * numer3) / (denomdenom) +
1426  (2.0 * numer3 * numer1numer3) / (denomdenom * denom);
1427  }
1428  }
1429 
1430  return numer1 / denom;
1431  }
std::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:75
T Dot(int n, const T *w, const T *x)
dot (vector times vector): z = w*x
Definition: Vmath.cpp:1100
scalarT< T > abs(scalarT< T > in)
Definition: scalar.hpp:298

References tinysimd::abs(), ASSERTL2, Vmath::Dot(), and m_base.

◆ BaryEvaluateBasis()

template<int DIR>
NekDouble Nektar::StdRegions::StdExpansion::BaryEvaluateBasis ( const NekDouble coord,
const int &  mode 
)
inlineprotected

Definition at line 1445 of file StdExpansion.h.

1446  {
1447  const int nquad = m_base[DIR]->GetNumPoints();
1448  return BaryEvaluate<DIR>(coord,
1449  &(m_base[DIR]->GetBdata())[0] + nquad * mode);
1450  }

References m_base.

◆ BuildInverseTransformationMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::BuildInverseTransformationMatrix ( const DNekScalMatSharedPtr m_transformationmatrix)
inline

Definition at line 1105 of file StdExpansion.h.

1107  {
1108  return v_BuildInverseTransformationMatrix(m_transformationmatrix);
1109  }
virtual DNekMatSharedPtr v_BuildInverseTransformationMatrix(const DNekScalMatSharedPtr &m_transformationmatrix)

References v_BuildInverseTransformationMatrix().

◆ BwdTrans()

void Nektar::StdRegions::StdExpansion::BwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

This function performs the Backward transformation from coefficient space to physical space.

This function is a wrapper around the virtual function v_BwdTrans()

Based on the expansion coefficients, this function evaluates the expansion at the quadrature points. This is equivalent to the operation

\[ u(\xi_{1i}) = \sum_{p=0}^{P-1} \hat{u}_p \phi_p(\xi_{1i}) \]

which can be evaluated as \( {\bf u} = {\bf B}^T {\bf \hat{u}} \) with \({\bf B}[i][j] = \phi_i(\xi_{j})\)

This function requires that the coefficient array \(\mathbf{\hat{u}}\) provided as inarray.

The resulting array \(\mathbf{u}[m]=u(\mathbf{\xi}_m)\) containing the expansion evaluated at the quadrature points, is stored in the outarray.

Parameters
inarraycontains the values of the expansion coefficients (input of the function)
outarraycontains the values of the expansion evaluated at the quadrature points (output of the function)

Definition at line 430 of file StdExpansion.h.

432  {
433  v_BwdTrans(inarray, outarray);
434  }
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0

References v_BwdTrans().

Referenced by Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::StdRegions::StdSegExp::v_ExponentialFilter(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ BwdTrans_SumFac()

void Nektar::StdRegions::StdExpansion::BwdTrans_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inlineprotected

Definition at line 1202 of file StdExpansion.h.

1204  {
1205  v_BwdTrans_SumFac(inarray, outarray);
1206  }
virtual void v_BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_BwdTrans_SumFac().

Referenced by CreateGeneralMatrix(), and Nektar::StdRegions::StdHexExp::v_BwdTrans().

◆ CalcNumberOfCoefficients()

int Nektar::StdRegions::StdExpansion::CalcNumberOfCoefficients ( const std::vector< unsigned int > &  nummodes,
int &  modes_offset 
)
inline

Definition at line 659 of file StdExpansion.h.

661  {
662  return v_CalcNumberOfCoefficients(nummodes, modes_offset);
663  }
virtual int v_CalcNumberOfCoefficients(const std::vector< unsigned int > &nummodes, int &modes_offset)

References v_CalcNumberOfCoefficients().

◆ CreateGeneralMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::CreateGeneralMatrix ( const StdMatrixKey mkey)

this function generates the mass matrix \(\mathbf{M}[i][j] = \int \phi_i(\mathbf{x}) \phi_j(\mathbf{x}) d\mathbf{x}\)

Returns
returns the mass matrix

Definition at line 255 of file StdExpansion.cpp.

256 {
257  int i;
258  DNekMatSharedPtr returnval;
259 
260  switch (mkey.GetMatrixType())
261  {
262  case eInvMass:
263  {
264  StdMatrixKey masskey(eMass, mkey.GetShapeType(), *this,
266  mkey.GetNodalPointsType());
267  DNekMatSharedPtr mmat = GetStdMatrix(masskey);
268 
270  *mmat); // Populate standard mass matrix.
271  returnval->Invert();
272  }
273  break;
274  case eInvNBasisTrans:
275  {
276  StdMatrixKey tmpkey(eNBasisTrans, mkey.GetShapeType(), *this,
278  mkey.GetNodalPointsType());
279  DNekMatSharedPtr tmpmat = GetStdMatrix(tmpkey);
281  *tmpmat); // Populate matrix.
282  returnval->Invert();
283  }
284  break;
285  case eBwdMat:
286  {
287  int nq = GetTotPoints();
288  Array<OneD, NekDouble> tmpin(m_ncoeffs);
289  Array<OneD, NekDouble> tmpout(nq);
290 
291  returnval =
293  Array<OneD, NekDouble> Bwd_data = returnval->GetPtr();
294 
295  StdRegions::StdMatrixKey matkey(StdRegions::eBwdTrans,
296  this->DetShapeType(), *this);
297  DNekMatSharedPtr MatBwdTrans = GetStdMatrix(matkey);
298  Array<OneD, NekDouble> BwdTrans_data = MatBwdTrans->GetPtr();
299 
300  for (int i = 0; i < m_ncoeffs; ++i)
301  {
302  Array<OneD, NekDouble> tmpinn = BwdTrans_data + nq * i;
303  Array<OneD, NekDouble> tmpout = Bwd_data + i;
304 
305  Vmath::Vcopy(nq, tmpinn, 1, tmpout, m_ncoeffs);
306  }
307  }
308  break;
309  case eBwdTrans:
310  {
311  int nq = GetTotPoints();
312  Array<OneD, NekDouble> tmpin(m_ncoeffs);
313  Array<OneD, NekDouble> tmpout(nq);
314 
315  returnval =
317 
318  for (int i = 0; i < m_ncoeffs; ++i)
319  {
320  Vmath::Zero(m_ncoeffs, tmpin, 1);
321  tmpin[i] = 1.0;
322 
323  BwdTrans_SumFac(tmpin, tmpout);
324 
325  Vmath::Vcopy(nq, tmpout.get(), 1,
326  returnval->GetRawPtr() + i * nq, 1);
327  }
328  }
329  break;
330  case eIProductWRTBase:
331  {
332  int nq = GetTotPoints();
333  Array<OneD, NekDouble> tmpin(nq);
334  Array<OneD, NekDouble> tmpout(m_ncoeffs);
335 
336  returnval =
338 
339  for (i = 0; i < nq; ++i)
340  {
341  Vmath::Zero(nq, tmpin, 1);
342  tmpin[i] = 1.0;
343 
344  IProductWRTBase_SumFac(tmpin, tmpout);
345 
346  Vmath::Vcopy(m_ncoeffs, tmpout.get(), 1,
347  returnval->GetRawPtr() + i * m_ncoeffs, 1);
348  }
349  }
350  break;
352  {
353  int nq = GetTotPoints();
354  Array<OneD, NekDouble> tmpin(nq);
355  Array<OneD, NekDouble> tmpout(m_ncoeffs);
356 
357  returnval =
359 
360  for (i = 0; i < nq; ++i)
361  {
362  Vmath::Zero(nq, tmpin, 1);
363  tmpin[i] = 1.0;
364 
365  IProductWRTDerivBase_SumFac(0, tmpin, tmpout);
366 
367  Vmath::Vcopy(m_ncoeffs, tmpout.get(), 1,
368  returnval->GetRawPtr() + i * m_ncoeffs, 1);
369  }
370  }
371  break;
373  {
374  int nq = GetTotPoints();
375  Array<OneD, NekDouble> tmpin(nq);
376  Array<OneD, NekDouble> tmpout(m_ncoeffs);
377 
378  returnval =
380 
381  for (i = 0; i < nq; ++i)
382  {
383  Vmath::Zero(nq, tmpin, 1);
384  tmpin[i] = 1.0;
385 
386  IProductWRTDerivBase_SumFac(1, tmpin, tmpout);
387 
388  Vmath::Vcopy(m_ncoeffs, tmpout.get(), 1,
389  returnval->GetRawPtr() + i * m_ncoeffs, 1);
390  }
391  }
392  break;
394  {
395  int nq = GetTotPoints();
396  Array<OneD, NekDouble> tmpin(nq);
397  Array<OneD, NekDouble> tmpout(m_ncoeffs);
398 
399  returnval =
401 
402  for (i = 0; i < nq; ++i)
403  {
404  Vmath::Zero(nq, tmpin, 1);
405  tmpin[i] = 1.0;
406 
407  IProductWRTDerivBase_SumFac(2, tmpin, tmpout);
408 
409  Vmath::Vcopy(m_ncoeffs, tmpout.get(), 1,
410  returnval->GetRawPtr() + i * m_ncoeffs, 1);
411  }
412  }
413  break;
414  case eDerivBase0:
415  {
416  int nq = GetTotPoints();
417  returnval =
419  GenStdMatBwdDeriv(0, returnval);
420  }
421  break;
422  case eDerivBase1:
423  {
424  int nq = GetTotPoints();
425  returnval =
427  GenStdMatBwdDeriv(1, returnval);
428  }
429  break;
430  case eDerivBase2:
431  {
432  int nq = GetTotPoints();
433  returnval =
435  GenStdMatBwdDeriv(2, returnval);
436  }
437  break;
438  case eEquiSpacedToCoeffs:
439  {
440  // check to see if equispaced basis
441  int nummodes = m_base[0]->GetNumModes();
442  bool equispaced = true;
443  for (int i = 1; i < m_base.size(); ++i)
444  {
445  if (m_base[i]->GetNumModes() != nummodes)
446  {
447  equispaced = false;
448  }
449  }
450 
451  ASSERTL0(equispaced,
452  "Currently need to have same num modes in all "
453  "directionmodes to use EquiSpacedToCoeff method");
454 
455  int ntot = GetTotPoints();
456  Array<OneD, NekDouble> qmode(ntot);
457  Array<OneD, NekDouble> emode(m_ncoeffs);
458 
459  returnval =
461  for (int i = 0; i < m_ncoeffs; ++i)
462  {
463  // Get mode at quadrature points
464  FillMode(i, qmode);
465 
466  // interpolate to equi spaced
467  PhysInterpToSimplexEquiSpaced(qmode, emode, nummodes);
468 
469  // fill matrix
470  Vmath::Vcopy(m_ncoeffs, &emode[0], 1,
471  returnval->GetRawPtr() + i * m_ncoeffs, 1);
472  }
473  // invert matrix
474  returnval->Invert();
475  }
476  break;
477  case eMass:
478  case eHelmholtz:
479  case eLaplacian:
480  case eLaplacian00:
481  case eLaplacian01:
482  case eLaplacian02:
483  case eLaplacian11:
484  case eLaplacian12:
485  case eLaplacian22:
486  case eWeakDeriv0:
487  case eWeakDeriv1:
488  case eWeakDeriv2:
490  case eMassLevelCurvature:
493  {
494  Array<OneD, NekDouble> tmp(m_ncoeffs);
495  returnval =
497  DNekMat &Mat = *returnval;
498 
499  for (i = 0; i < m_ncoeffs; ++i)
500  {
501  Vmath::Zero(m_ncoeffs, tmp, 1);
502  tmp[i] = 1.0;
503 
504  GeneralMatrixOp_MatFree(tmp, tmp, mkey);
505 
506  Vmath::Vcopy(m_ncoeffs, &tmp[0], 1,
507  &(Mat.GetPtr())[0] + i * m_ncoeffs, 1);
508  }
509  }
510  break;
511  default:
512  {
514  "This type of matrix, " +
515  static_cast<std::string>(
516  MatrixTypeMap[mkey.GetMatrixType()]) +
517  ", can not be created using a general approach");
518  }
519  break;
520  }
521 
522  return returnval;
523 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:209
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:140
void FillMode(const int mode, Array< OneD, NekDouble > &outarray)
This function fills the array outarray with the mode-th mode of the expansion.
Definition: StdExpansion.h:497
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...
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
Definition: StdExpansion.h:609
void BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
Definition: StdExpansion.h:373
void GenStdMatBwdDeriv(const int dir, DNekMatSharedPtr &mat)
void IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
void GeneralMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
const char *const MatrixTypeMap[]
Definition: StdRegions.hpp:143
static ConstFactorMap NullConstFactorMap
Definition: StdRegions.hpp:400
static VarCoeffMap NullVarCoeffMap
Definition: StdRegions.hpp:344
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:50
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:492
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1255

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, BwdTrans_SumFac(), DetShapeType(), Nektar::StdRegions::eBwdMat, Nektar::StdRegions::eBwdTrans, Nektar::StdRegions::eDerivBase0, Nektar::StdRegions::eDerivBase1, Nektar::StdRegions::eDerivBase2, Nektar::StdRegions::eEquiSpacedToCoeffs, Nektar::ErrorUtil::efatal, Nektar::StdRegions::eHelmholtz, Nektar::StdRegions::eInvMass, Nektar::StdRegions::eInvNBasisTrans, Nektar::StdRegions::eIProductWRTBase, Nektar::StdRegions::eIProductWRTDerivBase0, Nektar::StdRegions::eIProductWRTDerivBase1, Nektar::StdRegions::eIProductWRTDerivBase2, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eLaplacian00, Nektar::StdRegions::eLaplacian01, Nektar::StdRegions::eLaplacian02, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian22, Nektar::StdRegions::eLinearAdvectionDiffusionReaction, Nektar::StdRegions::eLinearAdvectionReaction, Nektar::StdRegions::eMass, Nektar::StdRegions::eMassLevelCurvature, Nektar::StdRegions::eNBasisTrans, Nektar::StdRegions::eWeakDeriv0, Nektar::StdRegions::eWeakDeriv1, Nektar::StdRegions::eWeakDeriv2, Nektar::StdRegions::eWeakDirectionalDeriv, FillMode(), GeneralMatrixOp_MatFree(), GenStdMatBwdDeriv(), Nektar::StdRegions::StdMatrixKey::GetMatrixType(), Nektar::StdRegions::StdMatrixKey::GetNodalPointsType(), Nektar::StdRegions::StdMatrixKey::GetShapeType(), GetStdMatrix(), GetTotPoints(), IProductWRTBase_SumFac(), IProductWRTDerivBase_SumFac(), m_base, m_ncoeffs, Nektar::StdRegions::MatrixTypeMap, NEKERROR, Nektar::StdRegions::NullConstFactorMap, Nektar::StdRegions::NullVarCoeffMap, PhysInterpToSimplexEquiSpaced(), Vmath::Vcopy(), and Vmath::Zero().

Referenced by Nektar::StdRegions::StdHexExp::v_GenMatrix(), Nektar::StdRegions::StdNodalPrismExp::v_GenMatrix(), Nektar::StdRegions::StdNodalTetExp::v_GenMatrix(), Nektar::StdRegions::StdNodalTriExp::v_GenMatrix(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdPyrExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), and Nektar::StdRegions::StdTriExp::v_GenMatrix().

◆ CreateStdMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::CreateStdMatrix ( const StdMatrixKey mkey)
inlineprotected

Definition at line 1181 of file StdExpansion.h.

1182  {
1183  return v_CreateStdMatrix(mkey);
1184  }
virtual DNekMatSharedPtr v_CreateStdMatrix(const StdMatrixKey &mkey)

References v_CreateStdMatrix().

◆ CreateStdStaticCondMatrix()

DNekBlkMatSharedPtr Nektar::StdRegions::StdExpansion::CreateStdStaticCondMatrix ( const StdMatrixKey mkey)
protected

Create the static condensation of a matrix when using a boundary interior decomposition.

If a matrix system can be represented by \( Mat = \left [ \begin{array}{cc} A & B \\ C & D \end{array} \right ] \) This routine creates a matrix containing the statically condense system of the form \( Mat = \left [ \begin{array}{cc} A - B D^{-1} C & B D^{-1} \\ D^{-1} C & D^{-1} \end{array} \right ] \)

Definition at line 184 of file StdExpansion.cpp.

186 {
187  DNekBlkMatSharedPtr returnval;
188 
189  DNekMatSharedPtr mat = GetStdMatrix(mkey);
190  int nbdry = NumBndryCoeffs(); // also checks to see if this is a boundary
191  // interior decomposed expansion
192  int nint = m_ncoeffs - nbdry;
198 
199  int i, j;
200 
201  Array<OneD, unsigned int> bmap(nbdry);
202  Array<OneD, unsigned int> imap(nint);
203  GetBoundaryMap(bmap);
204  GetInteriorMap(imap);
205 
206  for (i = 0; i < nbdry; ++i)
207  {
208  for (j = 0; j < nbdry; ++j)
209  {
210  (*A)(i, j) = (*mat)(bmap[i], bmap[j]);
211  }
212 
213  for (j = 0; j < nint; ++j)
214  {
215  (*B)(i, j) = (*mat)(bmap[i], imap[j]);
216  }
217  }
218 
219  for (i = 0; i < nint; ++i)
220  {
221  for (j = 0; j < nbdry; ++j)
222  {
223  (*C)(i, j) = (*mat)(imap[i], bmap[j]);
224  }
225 
226  for (j = 0; j < nint; ++j)
227  {
228  (*D)(i, j) = (*mat)(imap[i], imap[j]);
229  }
230  }
231 
232  // Calculate static condensed system
233  if (nint)
234  {
235  D->Invert();
236  (*B) = (*B) * (*D);
237  (*A) = (*A) - (*B) * (*C);
238  }
239 
240  // set up block matrix system
241  Array<OneD, unsigned int> exp_size(2);
242  exp_size[0] = nbdry;
243  exp_size[1] = nint;
244  returnval =
246 
247  returnval->SetBlock(0, 0, A);
248  returnval->SetBlock(0, 1, B);
249  returnval->SetBlock(1, 0, C);
250  returnval->SetBlock(1, 1, D);
251 
252  return returnval;
253 }
void GetBoundaryMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:675
void GetInteriorMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:680
std::shared_ptr< DNekBlkMat > DNekBlkMatSharedPtr
Definition: NekTypeDefs.hpp:77

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), GetBoundaryMap(), GetInteriorMap(), GetStdMatrix(), m_ncoeffs, and NumBndryCoeffs().

◆ DetShapeType()

LibUtilities::ShapeType Nektar::StdRegions::StdExpansion::DetShapeType ( ) const
inline

This function returns the shape of the expansion domain.

This function is a wrapper around the virtual function v_DetShapeType()

The different shape types implemented in the code are defined in the ::ShapeType enumeration list. As a result, the function will return one of the types of this enumeration list.

Returns
returns the shape of the expansion domain

Definition at line 373 of file StdExpansion.h.

374  {
375  return v_DetShapeType();
376  }
virtual LibUtilities::ShapeType v_DetShapeType() const =0

References v_DetShapeType().

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), EquiSpacedToCoeffs(), export_StdExpansion(), Nektar::LocalRegions::NodalTriExp::FwdTrans(), Nektar::MultiRegions::ExpListHomogeneous1D::GenHomogeneous1DBlockMatrix(), Nektar::MultiRegions::ExpListHomogeneous2D::GenHomogeneous2DBlockMatrix(), Nektar::LocalRegions::QuadExp::GetEdgeInterpVals(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::LocalRegions::Expansion::GetLocMatrix(), HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), PhysInterpToSimplexEquiSpaced(), Nektar::MultiRegions::ExpListHomogeneous2D::SetPaddingBase(), Nektar::MultiRegions::PreconditionerLowEnergy::SetupBlockTransformationMatrix(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdExpansion2D::v_GetElmtTraceToTraceMap(), v_GetSimplexEquiSpacedConnectivity(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), and v_PhysEvaluate().

◆ DropLocStaticCondMatrix()

void Nektar::StdRegions::StdExpansion::DropLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
inline

Definition at line 653 of file StdExpansion.h.

655  {
656  return v_DropLocStaticCondMatrix(mkey);
657  }
virtual void v_DropLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)

References v_DropLocStaticCondMatrix().

◆ EquiSpacedToCoeffs()

void Nektar::StdRegions::StdExpansion::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-processing onto the coefficient space.

This is primarily used for output purposes to use a more even distribution of points more suitable for alot of postprocessing

Definition at line 1616 of file StdExpansion.cpp.

1619 {
1621 
1622  // inarray has to be consistent with NumModes definition
1623  // There is also a check in GetStdMatrix to see if all
1624  // modes are of the same size
1625  ConstFactorMap cmap;
1626 
1627  cmap[eFactorConst] = m_base[0]->GetNumModes();
1628  StdMatrixKey Ikey(eEquiSpacedToCoeffs, shape, *this, cmap);
1629  DNekMatSharedPtr intmat = GetStdMatrix(Ikey);
1630 
1631  NekVector<NekDouble> in(m_ncoeffs, inarray, eWrapper);
1632  NekVector<NekDouble> out(m_ncoeffs, outarray, eWrapper);
1633  out = (*intmat) * in;
1634 }
std::map< ConstFactorType, NekDouble > ConstFactorMap
Definition: StdRegions.hpp:399

References DetShapeType(), Nektar::StdRegions::eEquiSpacedToCoeffs, Nektar::StdRegions::eFactorConst, Nektar::eWrapper, GetStdMatrix(), m_base, and m_ncoeffs.

◆ EvalBasisNumModesMax()

int Nektar::StdRegions::StdExpansion::EvalBasisNumModesMax ( void  ) const
inline

This function returns the maximum number of expansion modes over all local directions.

Returns
returns the maximum number of expansion modes over all local directions

Definition at line 187 of file StdExpansion.h.

188  {
189  int returnval = 0;
190 
191  for (size_t i = 0; i < m_base.size(); ++i)
192  {
193  returnval = std::max(returnval, m_base[i]->GetNumModes());
194  }
195 
196  return returnval;
197  }

References m_base.

◆ ExponentialFilter()

void Nektar::StdRegions::StdExpansion::ExponentialFilter ( Array< OneD, NekDouble > &  array,
const NekDouble  alpha,
const NekDouble  exponent,
const NekDouble  cutoff 
)
inline

Definition at line 785 of file StdExpansion.h.

787  {
788  v_ExponentialFilter(array, alpha, exponent, cutoff);
789  }
virtual void v_ExponentialFilter(Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff)

References v_ExponentialFilter().

◆ FillMode()

void Nektar::StdRegions::StdExpansion::FillMode ( const int  mode,
Array< OneD, NekDouble > &  outarray 
)
inline

This function fills the array outarray with the mode-th mode of the expansion.

This function is a wrapper around the virtual function v_FillMode()

The requested mode is evaluated at the quadrature points

Parameters
modethe mode that should be filled
outarraycontains the values of the mode-th mode of the expansion evaluated at the quadrature points (output of the function)

Definition at line 497 of file StdExpansion.h.

498  {
499  v_FillMode(mode, outarray);
500  }
virtual void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray)

References v_FillMode().

Referenced by CreateGeneralMatrix(), and Nektar::LocalRegions::Expansion2D::v_GenMatrix().

◆ FwdTrans()

void Nektar::StdRegions::StdExpansion::FwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

This function performs the Forward transformation from physical space to coefficient space.

This function is a wrapper around the virtual function v_FwdTrans()

Given a function evaluated at the quadrature points, this function calculates the expansion coefficients such that the resulting expansion approximates the original function.

The calculation of the expansion coefficients is done using a Galerkin projection. This is equivalent to the operation:

\[ \mathbf{\hat{u}} = \mathbf{M}^{-1} \mathbf{I}\]

where

  • \(\mathbf{M}[p][q]= \int\phi_p(\mathbf{\xi})\phi_q( \mathbf{\xi}) d\mathbf{\xi}\) is the Mass matrix
  • \(\mathbf{I}[p] = \int\phi_p(\mathbf{\xi}) u(\mathbf{\xi}) d\mathbf{\xi}\)

This function takes the array inarray as the values of the function evaluated at the quadrature points (i.e. \(\mathbf{u}\)), and stores the resulting coefficients \(\mathbf{\hat{u}}\) in the outarray

Parameters
inarrayarray of the function discretely evaluated at the quadrature points
outarrayarray of the function coefficieints

Definition at line 1791 of file StdExpansion.h.

1793 {
1794  v_FwdTrans(inarray, outarray);
1795 }
virtual void v_FwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Transform a given function from physical quadrature space to coefficient space.

References v_FwdTrans().

Referenced by Nektar::FieldUtils::ProcessEquiSpacedOutput::GenOrthoModes(), Nektar::LocalRegions::Expansion2D::GetPhysEdgeVarCoeffsFromElement(), Nektar::GlobalMapping::UpdateGeometry(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::StdRegions::StdSegExp::v_ExponentialFilter(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ FwdTransBndConstrained()

void Nektar::StdRegions::StdExpansion::FwdTransBndConstrained ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 443 of file StdExpansion.h.

445  {
446  v_FwdTransBndConstrained(inarray, outarray);
447  }
virtual void v_FwdTransBndConstrained(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_FwdTransBndConstrained().

◆ GeneralMatrixOp()

void Nektar::StdRegions::StdExpansion::GeneralMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)

Definition at line 525 of file StdExpansion.cpp.

528 {
529  switch (mkey.GetMatrixType())
530  {
531  case eMass:
532  MassMatrixOp(inarray, outarray, mkey);
533  break;
534  case eWeakDeriv0:
535  WeakDerivMatrixOp(0, inarray, outarray, mkey);
536  break;
537  case eWeakDeriv1:
538  WeakDerivMatrixOp(1, inarray, outarray, mkey);
539  break;
540  case eWeakDeriv2:
541  WeakDerivMatrixOp(2, inarray, outarray, mkey);
542  break;
544  WeakDirectionalDerivMatrixOp(inarray, outarray, mkey);
545  break;
546  case eMassLevelCurvature:
547  MassLevelCurvatureMatrixOp(inarray, outarray, mkey);
548  break;
550  LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey,
551  false);
552  break;
554  LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey);
555  break;
556  case eLaplacian:
557  LaplacianMatrixOp(inarray, outarray, mkey);
558  break;
559  case eLaplacian00:
560  LaplacianMatrixOp(0, 0, inarray, outarray, mkey);
561  break;
562  case eLaplacian01:
563  LaplacianMatrixOp(0, 1, inarray, outarray, mkey);
564  break;
565  case eLaplacian02:
566  LaplacianMatrixOp(0, 2, inarray, outarray, mkey);
567  break;
568  case eLaplacian10:
569  LaplacianMatrixOp(1, 0, inarray, outarray, mkey);
570  break;
571  case eLaplacian11:
572  LaplacianMatrixOp(1, 1, inarray, outarray, mkey);
573  break;
574  case eLaplacian12:
575  LaplacianMatrixOp(1, 2, inarray, outarray, mkey);
576  break;
577  case eLaplacian20:
578  LaplacianMatrixOp(2, 0, inarray, outarray, mkey);
579  break;
580  case eLaplacian21:
581  LaplacianMatrixOp(2, 1, inarray, outarray, mkey);
582  break;
583  case eLaplacian22:
584  LaplacianMatrixOp(2, 2, inarray, outarray, mkey);
585  break;
586  case eHelmholtz:
587  HelmholtzMatrixOp(inarray, outarray, mkey);
588  break;
589  default:
591  "This matrix does not have an operator");
592  break;
593  }
594 }
void WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:807
void MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:814
void WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:799
void MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:758
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:765
void LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
Definition: StdExpansion.h:821
void HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:836

References Nektar::ErrorUtil::efatal, Nektar::StdRegions::eHelmholtz, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eLaplacian00, Nektar::StdRegions::eLaplacian01, Nektar::StdRegions::eLaplacian02, Nektar::StdRegions::eLaplacian10, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian20, Nektar::StdRegions::eLaplacian21, Nektar::StdRegions::eLaplacian22, Nektar::StdRegions::eLinearAdvectionDiffusionReaction, Nektar::StdRegions::eLinearAdvectionReaction, Nektar::StdRegions::eMass, Nektar::StdRegions::eMassLevelCurvature, Nektar::StdRegions::eWeakDeriv0, Nektar::StdRegions::eWeakDeriv1, Nektar::StdRegions::eWeakDeriv2, Nektar::StdRegions::eWeakDirectionalDeriv, Nektar::StdRegions::StdMatrixKey::GetMatrixType(), HelmholtzMatrixOp(), LaplacianMatrixOp(), LinearAdvectionDiffusionReactionMatrixOp(), MassLevelCurvatureMatrixOp(), MassMatrixOp(), NEKERROR, WeakDerivMatrixOp(), and WeakDirectionalDerivMatrixOp().

◆ GeneralMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::GeneralMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 596 of file StdExpansion.cpp.

599 {
600  switch (mkey.GetMatrixType())
601  {
602  case eMass:
603  MassMatrixOp_MatFree(inarray, outarray, mkey);
604  break;
605  case eWeakDeriv0:
606  WeakDerivMatrixOp_MatFree(0, inarray, outarray, mkey);
607  break;
608  case eWeakDeriv1:
609  WeakDerivMatrixOp_MatFree(1, inarray, outarray, mkey);
610  break;
611  case eWeakDeriv2:
612  WeakDerivMatrixOp_MatFree(2, inarray, outarray, mkey);
613  break;
615  WeakDirectionalDerivMatrixOp_MatFree(inarray, outarray, mkey);
616  break;
617  case eMassLevelCurvature:
618  MassLevelCurvatureMatrixOp_MatFree(inarray, outarray, mkey);
619  break;
622  mkey, false);
623  break;
626  mkey);
627  break;
628  case eLaplacian:
629  LaplacianMatrixOp_MatFree(inarray, outarray, mkey);
630  break;
631  case eLaplacian00:
632  LaplacianMatrixOp_MatFree(0, 0, inarray, outarray, mkey);
633  break;
634  case eLaplacian01:
635  LaplacianMatrixOp_MatFree(0, 1, inarray, outarray, mkey);
636  break;
637  case eLaplacian02:
638  LaplacianMatrixOp_MatFree(0, 2, inarray, outarray, mkey);
639  break;
640  case eLaplacian10:
641  LaplacianMatrixOp_MatFree(1, 0, inarray, outarray, mkey);
642  break;
643  case eLaplacian11:
644  LaplacianMatrixOp_MatFree(1, 1, inarray, outarray, mkey);
645  break;
646  case eLaplacian12:
647  LaplacianMatrixOp_MatFree(1, 2, inarray, outarray, mkey);
648  break;
649  case eLaplacian20:
650  LaplacianMatrixOp_MatFree(2, 0, inarray, outarray, mkey);
651  break;
652  case eLaplacian21:
653  LaplacianMatrixOp_MatFree(2, 1, inarray, outarray, mkey);
654  break;
655  case eLaplacian22:
656  LaplacianMatrixOp_MatFree(2, 2, inarray, outarray, mkey);
657  break;
658  case eHelmholtz:
659  HelmholtzMatrixOp_MatFree(inarray, outarray, mkey);
660  break;
661  default:
663  "This matrix does not have an operator");
664  break;
665  }
666 }
void WeakDerivMatrixOp_MatFree(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void LinearAdvectionDiffusionReactionMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
void LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void MassLevelCurvatureMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void WeakDirectionalDerivMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void MassMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References Nektar::ErrorUtil::efatal, Nektar::StdRegions::eHelmholtz, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eLaplacian00, Nektar::StdRegions::eLaplacian01, Nektar::StdRegions::eLaplacian02, Nektar::StdRegions::eLaplacian10, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian20, Nektar::StdRegions::eLaplacian21, Nektar::StdRegions::eLaplacian22, Nektar::StdRegions::eLinearAdvectionDiffusionReaction, Nektar::StdRegions::eLinearAdvectionReaction, Nektar::StdRegions::eMass, Nektar::StdRegions::eMassLevelCurvature, Nektar::StdRegions::eWeakDeriv0, Nektar::StdRegions::eWeakDeriv1, Nektar::StdRegions::eWeakDeriv2, Nektar::StdRegions::eWeakDirectionalDeriv, Nektar::StdRegions::StdMatrixKey::GetMatrixType(), HelmholtzMatrixOp_MatFree(), LaplacianMatrixOp_MatFree(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), MassLevelCurvatureMatrixOp_MatFree(), MassMatrixOp_MatFree(), NEKERROR, WeakDerivMatrixOp_MatFree(), and WeakDirectionalDerivMatrixOp_MatFree().

Referenced by CreateGeneralMatrix().

◆ GenMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::GenMatrix ( const StdMatrixKey mkey)
inline

Definition at line 843 of file StdExpansion.h.

844  {
845  return v_GenMatrix(mkey);
846  }
virtual DNekMatSharedPtr v_GenMatrix(const StdMatrixKey &mkey)

References v_GenMatrix().

Referenced by Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), export_StdExpansion(), and Nektar::StdRegions::StdQuadExp::v_CreateStdMatrix().

◆ GenStdMatBwdDeriv()

void Nektar::StdRegions::StdExpansion::GenStdMatBwdDeriv ( const int  dir,
DNekMatSharedPtr mat 
)
inline

Definition at line 1164 of file StdExpansion.h.

1166  {
1167  v_GenStdMatBwdDeriv(dir, mat);
1168  }
virtual void v_GenStdMatBwdDeriv(const int dir, DNekMatSharedPtr &mat)

References v_GenStdMatBwdDeriv().

Referenced by CreateGeneralMatrix().

◆ GetBase()

const Array<OneD, const LibUtilities::BasisSharedPtr>& Nektar::StdRegions::StdExpansion::GetBase ( ) const
inline

This function gets the shared point to basis.

Returns
returns the shared pointer to the bases

Definition at line 106 of file StdExpansion.h.

108  {
109  return (m_base);
110  }

References m_base.

Referenced by Nektar::StdRegions::StdPrismExp::v_PhysEvaluate(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluate(), Nektar::StdRegions::StdTetExp::v_PhysEvaluate(), and Nektar::StdRegions::StdTriExp::v_PhysEvaluate().

◆ GetBasis()

const LibUtilities::BasisSharedPtr& Nektar::StdRegions::StdExpansion::GetBasis ( int  dir) const
inline

This function gets the shared point to basis in the dir direction.

Returns
returns the shared pointer to the basis in directin dir

Definition at line 118 of file StdExpansion.h.

119  {
120  ASSERTL1(dir < m_base.size(), "dir is larger than number of bases");
121  return (m_base[dir]);
122  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249

References ASSERTL1, and m_base.

Referenced by export_StdExpansion(), Nektar::StdRegions::StdQuadExp::v_GetTraceBasisKey(), and Nektar::StdRegions::StdTriExp::v_GetTraceBasisKey().

◆ GetBasisNumModes()

int Nektar::StdRegions::StdExpansion::GetBasisNumModes ( const int  dir) const
inline

This function returns the number of expansion modes in the dir direction.

Parameters
dirthe direction
Returns
returns the number of expansion modes in the dir direction

Definition at line 175 of file StdExpansion.h.

176  {
177  ASSERTL1(dir < m_base.size(), "dir is larger than m_numbases");
178  return (m_base[dir]->GetNumModes());
179  }

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdHexExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdPyrExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdQuadExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdTriExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdQuadExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdPyrExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdTetExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdTriExp::v_GetTraceNcoeffs(), Nektar::StdRegions::StdQuadExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdNodalTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdQuadExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumDGBndryCoeffs(), and Nektar::LocalRegions::Expansion2D::v_TraceNormLen().

◆ GetBasisType()

LibUtilities::BasisType Nektar::StdRegions::StdExpansion::GetBasisType ( const int  dir) const
inline

This function returns the type of basis used in the dir direction.

The different types of bases implemented in the code are defined in the LibUtilities::BasisType enumeration list. As a result, the function will return one of the types of this enumeration list.

Parameters
dirthe direction
Returns
returns the type of basis used in the dir direction

Definition at line 162 of file StdExpansion.h.

163  {
164  ASSERTL1(dir < m_base.size(), "dir is larger than m_numbases");
165  return (m_base[dir]->GetBasisType());
166  }
LibUtilities::BasisType GetBasisType(const int dir) const
This function returns the type of basis used in the dir direction.
Definition: StdExpansion.h:162

References ASSERTL1, and m_base.

Referenced by export_StdExpansion(), Nektar::LocalRegions::SegExp::ReverseCoeffsAndSign(), Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPyrExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdHexExp::v_GetEdgeInteriorToElementMap(), Nektar::StdRegions::StdExpansion2D::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdHexExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPrismExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPyrExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::LocalRegions::HexExp::v_GetLinStdExp(), Nektar::LocalRegions::NodalTriExp::v_GetLinStdExp(), Nektar::LocalRegions::PrismExp::v_GetLinStdExp(), Nektar::LocalRegions::PyrExp::v_GetLinStdExp(), Nektar::LocalRegions::QuadExp::v_GetLinStdExp(), Nektar::LocalRegions::SegExp::v_GetLinStdExp(), Nektar::LocalRegions::TetExp::v_GetLinStdExp(), Nektar::LocalRegions::TriExp::v_GetLinStdExp(), Nektar::StdRegions::StdTriExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdHexExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPrismExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPyrExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdTetExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdHexExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdPrismExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdPyrExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdQuadExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdSegExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdTriExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdQuadExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdTriExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdHexExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdHexExp::v_GetVertexMap(), Nektar::StdRegions::StdPrismExp::v_GetVertexMap(), Nektar::StdRegions::StdPyrExp::v_GetVertexMap(), Nektar::StdRegions::StdQuadExp::v_GetVertexMap(), Nektar::StdRegions::StdSegExp::v_GetVertexMap(), Nektar::StdRegions::StdTetExp::v_GetVertexMap(), Nektar::StdRegions::StdTriExp::v_GetVertexMap(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdHexExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdPrismExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdQuadExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdSegExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTetExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdQuadExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdQuadExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTetExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTriExp::v_PhysEvaluateBasis(), Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::TriExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdSegExp::v_ReduceOrderCoeffs(), and Nektar::StdRegions::StdTriExp::v_ReduceOrderCoeffs().

◆ GetBoundaryMap()

void Nektar::StdRegions::StdExpansion::GetBoundaryMap ( Array< OneD, unsigned int > &  outarray)
inline

◆ GetCoord()

void Nektar::StdRegions::StdExpansion::GetCoord ( const Array< OneD, const NekDouble > &  Lcoord,
Array< OneD, NekDouble > &  coord 
)
inline

given the coordinates of a point of the element in the local collapsed coordinate system, this function calculates the physical coordinates of the point

This function is a wrapper around the virtual function v_GetCoord()

Parameters
Lcoordsthe coordinates in the local collapsed coordinate system
coordsthe physical coordinates (output of the function)

Definition at line 603 of file StdExpansion.h.

605  {
606  v_GetCoord(Lcoord, coord);
607  }
virtual void v_GetCoord(const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)

References v_GetCoord().

◆ GetCoordim()

int Nektar::StdRegions::StdExpansion::GetCoordim ( )
inline

◆ GetCoords()

void Nektar::StdRegions::StdExpansion::GetCoords ( Array< OneD, NekDouble > &  coords_1,
Array< OneD, NekDouble > &  coords_2 = NullNekDouble1DArray,
Array< OneD, NekDouble > &  coords_3 = NullNekDouble1DArray 
)
inline

this function returns the physical coordinates of the quadrature points of the expansion

This function is a wrapper around the virtual function v_GetCoords()

Parameters
coordsan array containing the coordinates of the quadrature points (output of the function)

Definition at line 585 of file StdExpansion.h.

588  {
589  v_GetCoords(coords_1, coords_2, coords_3);
590  }
virtual void v_GetCoords(Array< OneD, NekDouble > &coords_0, Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2)

References v_GetCoords().

Referenced by main().

◆ GetElmtId()

int Nektar::StdRegions::StdExpansion::GetElmtId ( )
inline

Get the element id of this expansion when used in a list by returning value of m_elmt_id.

Definition at line 564 of file StdExpansion.h.

565  {
566  return m_elmt_id;
567  }

References m_elmt_id.

◆ GetElmtTraceToTraceMap()

void Nektar::StdRegions::StdExpansion::GetElmtTraceToTraceMap ( const unsigned int  tid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
Orientation  traceOrient = eForwards,
int  P = -1,
int  Q = -1 
)
inline

Definition at line 705 of file StdExpansion.h.

710  {
711  v_GetElmtTraceToTraceMap(tid, maparray, signarray, traceOrient, P, Q);
712  }
virtual void v_GetElmtTraceToTraceMap(const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)

References Nektar::LibUtilities::P, and v_GetElmtTraceToTraceMap().

Referenced by Nektar::StdRegions::StdExpansion3D::v_GetTraceToElementMap().

◆ GetInteriorMap()

void Nektar::StdRegions::StdExpansion::GetInteriorMap ( Array< OneD, unsigned int > &  outarray)
inline

◆ GetLinStdExp()

std::shared_ptr<StdExpansion> Nektar::StdRegions::StdExpansion::GetLinStdExp ( void  ) const
inline

Definition at line 383 of file StdExpansion.h.

384  {
385  return v_GetLinStdExp();
386  }
virtual std::shared_ptr< StdExpansion > v_GetLinStdExp(void) const

References v_GetLinStdExp().

◆ GetLocStaticCondMatrix()

DNekScalBlkMatSharedPtr Nektar::StdRegions::StdExpansion::GetLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
inline

Definition at line 647 of file StdExpansion.h.

649  {
650  return v_GetLocStaticCondMatrix(mkey);
651  }
virtual DNekScalBlkMatSharedPtr v_GetLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)

References v_GetLocStaticCondMatrix().

Referenced by Nektar::LocalRegions::Expansion2D::CreateMatrix().

◆ GetNcoeffs()

int Nektar::StdRegions::StdExpansion::GetNcoeffs ( void  ) const
inline

This function returns the total number of coefficients used in the expansion.

Returns
returns the total number of coefficients (which is equivalent to the total number of modes) used in the expansion

Definition at line 130 of file StdExpansion.h.

131  {
132  return (m_ncoeffs);
133  }

References m_ncoeffs.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), export_StdExpansion(), Nektar::LocalRegions::Expansion2D::GetPhysEdgeVarCoeffsFromElement(), LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion2D::v_DGDeriv(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::StdRegions::StdSegExp::v_ExponentialFilter(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ GetNodalPointsKey()

const LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::GetNodalPointsKey ( ) const
inline

This function returns the type of expansion Nodal point type if defined.

This function is a wrapper around the virtual function v_GetNodalPointsKey()

Definition at line 345 of file StdExpansion.h.

346  {
347  return v_GetNodalPointsKey();
348  };
virtual const LibUtilities::PointsKey v_GetNodalPointsKey() const

References v_GetNodalPointsKey().

◆ GetNtraces()

int Nektar::StdRegions::StdExpansion::GetNtraces ( ) const
inline

◆ GetNumBases()

int Nektar::StdRegions::StdExpansion::GetNumBases ( ) const
inline

This function returns the number of 1D bases used in the expansion.

Returns
returns the number of 1D bases used in the expansion, which is equal to number dimension of the expansion

Definition at line 97 of file StdExpansion.h.

98  {
99  return m_base.size();
100  }

References m_base.

◆ GetNumPoints()

int Nektar::StdRegions::StdExpansion::GetNumPoints ( const int  dir) const
inline

This function returns the number of quadrature points in the dir direction.

Parameters
dirthe direction
Returns
returns the number of quadrature points in the dir direction

Definition at line 224 of file StdExpansion.h.

225  {
226  ASSERTL1(dir < m_base.size() || dir == 0,
227  "dir is larger than m_numbases");
228  return (m_base.size() > 0 ? m_base[dir]->GetNumPoints() : 1);
229  }

References ASSERTL1, and m_base.

Referenced by Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdPyrExp::v_BwdTrans(), Nektar::StdRegions::StdQuadExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFac(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::StdRegions::StdPointExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetCoords(), Nektar::StdRegions::StdSegExp::v_GetCoords(), Nektar::StdRegions::StdHexExp::v_GetCoords(), Nektar::StdRegions::StdTetExp::v_GetCoords(), Nektar::StdRegions::StdTriExp::v_GetCoords(), Nektar::StdRegions::StdPrismExp::v_GetCoords(), Nektar::StdRegions::StdPyrExp::v_GetCoords(), Nektar::StdRegions::StdTriExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdHexExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPrismExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPyrExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdTetExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdQuadExp::v_GetTraceNumPoints(), Nektar::StdRegions::StdTriExp::v_GetTraceNumPoints(), Nektar::LocalRegions::PrismExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::HexExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::QuadExp::v_NormalTraceDerivFactors(), and Nektar::LocalRegions::TriExp::v_NormalTraceDerivFactors().

◆ GetNverts()

int Nektar::StdRegions::StdExpansion::GetNverts ( ) const
inline

This function returns the number of vertices of the expansion domain.

This function is a wrapper around the virtual function v_GetNverts()

Returns
returns the number of vertices of the expansion domain

Definition at line 252 of file StdExpansion.h.

253  {
254  return v_GetNverts();
255  }
virtual int v_GetNverts() const =0

References v_GetNverts().

Referenced by Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), export_StdExpansion(), and Nektar::LocalRegions::Expansion2D::v_BuildVertexMatrix().

◆ GetPoints()

const Array<OneD, const NekDouble>& Nektar::StdRegions::StdExpansion::GetPoints ( const int  dir) const
inline

This function returns a pointer to the array containing the quadrature points in dir direction.

Parameters
dirthe direction
Returns
returns a pointer to the array containing the quadrature points in dir direction

Definition at line 238 of file StdExpansion.h.

239  {
240  return m_base[dir]->GetZ();
241  }

References m_base.

◆ GetPointsKeys()

const LibUtilities::PointsKeyVector Nektar::StdRegions::StdExpansion::GetPointsKeys ( ) const
inline

Definition at line 1094 of file StdExpansion.h.

1095  {
1097  p.reserve(m_base.size());
1098  for (size_t i = 0; i < m_base.size(); ++i)
1099  {
1100  p.push_back(m_base[i]->GetPointsKey());
1101  }
1102  return p;
1103  }
std::vector< PointsKey > PointsKeyVector
Definition: Points.h:250

References m_base, and CellMLToNektar.cellml_metadata::p.

Referenced by Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), Nektar::LocalRegions::NodalTriExp::Integral(), Nektar::LocalRegions::NodalTriExp::PhysDeriv(), Nektar::LocalRegions::HexExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::NodalTriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PrismExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PyrExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::QuadExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TetExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::NodalTriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::LocalRegions::SegExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::HexExp::v_Integral(), Nektar::LocalRegions::PrismExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_Integral(), Nektar::LocalRegions::QuadExp::v_Integral(), Nektar::LocalRegions::SegExp::v_Integral(), Nektar::LocalRegions::TetExp::v_Integral(), Nektar::LocalRegions::TriExp::v_Integral(), Nektar::LocalRegions::SegExp::v_IProductWRTBase(), Nektar::LocalRegions::SegExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::HexExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::QuadExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::TriExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::LocalRegions::PrismExp::v_PhysDeriv(), Nektar::LocalRegions::PyrExp::v_PhysDeriv(), Nektar::LocalRegions::TetExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv_n(), Nektar::LocalRegions::SegExp::v_PhysDeriv_s(), Nektar::LocalRegions::HexExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::TriExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PyrExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), and Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter().

◆ GetPointsType()

LibUtilities::PointsType Nektar::StdRegions::StdExpansion::GetPointsType ( const int  dir) const
inline

This function returns the type of quadrature points used in the dir direction.

The different types of quadrature points implemented in the code are defined in the LibUtilities::PointsType enumeration list. As a result, the function will return one of the types of this enumeration list.

Parameters
dirthe direction
Returns
returns the type of quadrature points used in the dir direction

Definition at line 211 of file StdExpansion.h.

212  {
213  ASSERTL1(dir < m_base.size(), "dir is larger than m_numbases");
214  return (m_base[dir]->GetPointsType());
215  }
LibUtilities::PointsType GetPointsType(const int dir) const
This function returns the type of quadrature points used in the dir direction.
Definition: StdExpansion.h:211

References ASSERTL1, and m_base.

Referenced by export_StdExpansion(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::StdRegions::StdSegExp::v_ExponentialFilter(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_GetTraceBasisKey(), Nektar::LocalRegions::QuadExp::v_GetTracePhysVals(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), Nektar::StdRegions::StdTriExp::v_Integral(), Nektar::StdRegions::StdPrismExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdPyrExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTetExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTriExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ GetShapeDimension()

int Nektar::StdRegions::StdExpansion::GetShapeDimension ( ) const
inline

Definition at line 388 of file StdExpansion.h.

389  {
390  return v_GetShapeDimension();
391  }
virtual int v_GetShapeDimension() const =0

References v_GetShapeDimension().

Referenced by export_StdExpansion(), and v_GetCoordim().

◆ GetSimplexEquiSpacedConnectivity()

void Nektar::StdRegions::StdExpansion::GetSimplexEquiSpacedConnectivity ( Array< OneD, int > &  conn,
bool  standard = true 
)
inline

This function provides the connectivity of local simplices (triangles or tets) to connect the equispaced data points provided by PhysInterpToSimplexEquiSpaced.

This is a virtual call to the function v_GetSimplexEquiSpaceConnectivity

Definition at line 1133 of file StdExpansion.h.

1135  {
1136  v_GetSimplexEquiSpacedConnectivity(conn, standard);
1137  }
virtual void v_GetSimplexEquiSpacedConnectivity(Array< OneD, int > &conn, bool standard=true)

References v_GetSimplexEquiSpacedConnectivity().

◆ GetStdExp()

std::shared_ptr<StdExpansion> Nektar::StdRegions::StdExpansion::GetStdExp ( ) const
inline

Definition at line 378 of file StdExpansion.h.

379  {
380  return v_GetStdExp();
381  }
virtual std::shared_ptr< StdExpansion > v_GetStdExp() const

References v_GetStdExp().

◆ GetStdMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::GetStdMatrix ( const StdMatrixKey mkey)
inline

Definition at line 609 of file StdExpansion.h.

610  {
611  return m_stdMatrixManager[mkey];
612  }

References m_stdMatrixManager.

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), CreateStdStaticCondMatrix(), EquiSpacedToCoeffs(), export_StdExpansion(), Nektar::MultiRegions::ExpListHomogeneous1D::GenHomogeneous1DBlockMatrix(), Nektar::MultiRegions::ExpListHomogeneous2D::GenHomogeneous2DBlockMatrix(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTetExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTetExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTetExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), PhysInterpToSimplexEquiSpaced(), Nektar::MultiRegions::ExpListHomogeneous2D::SetPaddingBase(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdTetExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), and Nektar::StdRegions::StdSegExp::v_GenMatrix().

◆ GetStdStaticCondMatrix()

DNekBlkMatSharedPtr Nektar::StdRegions::StdExpansion::GetStdStaticCondMatrix ( const StdMatrixKey mkey)
inline

Definition at line 614 of file StdExpansion.h.

615  {
616  return m_stdStaticCondMatrixManager[mkey];
617  }

References m_stdStaticCondMatrixManager.

Referenced by Nektar::LocalRegions::Expansion::CreateStaticCondMatrix().

◆ GetTotPoints()

int Nektar::StdRegions::StdExpansion::GetTotPoints ( ) const
inline

This function returns the total number of quadrature points used in the element.

Returns
returns the total number of quadrature points

Definition at line 140 of file StdExpansion.h.

141  {
142  int nqtot = 1;
143 
144  for (size_t i = 0; i < m_base.size(); ++i)
145  {
146  nqtot *= m_base[i]->GetNumPoints();
147  }
148 
149  return nqtot;
150  }

References m_base.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), CreateGeneralMatrix(), export_StdExpansion(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), Nektar::CFLtester::GetStdVelocity(), H1(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), L2(), LaplacianMatrixOp_MatFree(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Linf(), main(), MassMatrixOp_MatFree(), PhysInterpToSimplexEquiSpaced(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::StdRegions::StdMatrixKey::StdMatrixKey(), Nektar::FilterMovingBody::UpdateForce(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::Expansion::v_DivideByQuadratureMetric(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdExpansion3D::v_Integral(), Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::Expansion::v_MultiplyByQuadratureMetric(), Nektar::LocalRegions::PrismExp::v_PhysDeriv(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluate(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluate(), Nektar::StdRegions::StdTetExp::v_PhysEvaluate(), Nektar::StdRegions::StdTriExp::v_PhysEvaluate(), Nektar::FieldUtils::ProcessJacobianEnergy::v_Process(), Nektar::FieldUtils::ProcessScalGrad::v_Process(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PyrExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::Expansion2D::v_VectorFlux(), WeakDerivMatrixOp_MatFree(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ GetTraceBasisKey()

const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::GetTraceBasisKey ( const int  i,
int  k = -1 
) const
inline

This function returns the basis key belonging to the i-th trace.

This function is a wrapper around the virtual function v_GetTraceBasisKey()

Parameters
ispecifies which trace id
kis the direction of the basis key for 2D traces
Returns
returns the number of Basis key of the ith trace in the k th direction (when trace is a 2D object)

Definition at line 305 of file StdExpansion.h.

306  {
307  return v_GetTraceBasisKey(i, k);
308  }
virtual const LibUtilities::BasisKey v_GetTraceBasisKey(const int i, const int k) const

References v_GetTraceBasisKey().

Referenced by Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), and Nektar::LocalRegions::Expansion2D::v_GenTraceExp().

◆ GetTraceCoeffMap()

void Nektar::StdRegions::StdExpansion::GetTraceCoeffMap ( const unsigned int  traceid,
Array< OneD, unsigned int > &  maparray 
)
inline

Definition at line 699 of file StdExpansion.h.

701  {
702  v_GetTraceCoeffMap(traceid, maparray);
703  }
virtual void v_GetTraceCoeffMap(const unsigned int traceid, Array< OneD, unsigned int > &maparray)

References v_GetTraceCoeffMap().

Referenced by Nektar::StdRegions::StdExpansion3D::v_GetTraceToElementMap().

◆ GetTraceInteriorToElementMap()

void Nektar::StdRegions::StdExpansion::GetTraceInteriorToElementMap ( const int  tid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
const Orientation  traceOrient = eForwards 
)
inline

Definition at line 714 of file StdExpansion.h.

718  {
719  v_GetTraceInteriorToElementMap(tid, maparray, signarray, traceOrient);
720  }
virtual void v_GetTraceInteriorToElementMap(const int eid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards)

References v_GetTraceInteriorToElementMap().

Referenced by Nektar::LocalRegions::Expansion2D::GetTraceInverseBoundaryMap(), and Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap().

◆ GetTraceIntNcoeffs()

int Nektar::StdRegions::StdExpansion::GetTraceIntNcoeffs ( const int  i) const
inline

Definition at line 272 of file StdExpansion.h.

273  {
274  return v_GetTraceIntNcoeffs(i);
275  }
virtual int v_GetTraceIntNcoeffs(const int i) const =0

References v_GetTraceIntNcoeffs().

◆ GetTraceNcoeffs()

int Nektar::StdRegions::StdExpansion::GetTraceNcoeffs ( const int  i) const
inline

◆ GetTraceNumModes()

void Nektar::StdRegions::StdExpansion::GetTraceNumModes ( const int  tid,
int &  numModes0,
int &  numModes1,
const Orientation  traceOrient = eDir1FwdDir1_Dir2FwdDir2 
)
inline

Definition at line 722 of file StdExpansion.h.

725  {
726  v_GetTraceNumModes(tid, numModes0, numModes1, traceOrient);
727  }
virtual void v_GetTraceNumModes(const int fid, int &numModes0, int &numModes1, Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)

References v_GetTraceNumModes().

◆ GetTraceNumPoints()

int Nektar::StdRegions::StdExpansion::GetTraceNumPoints ( const int  i) const
inline

This function returns the number of quadrature points belonging to the i-th trace.

This function is a wrapper around the virtual function v_GetTraceNumPoints()

Parameters
ispecifies which trace id
Returns
returns the number of quadrature points belonging to the i-th trace

Definition at line 287 of file StdExpansion.h.

288  {
289  return v_GetTraceNumPoints(i);
290  }
virtual int v_GetTraceNumPoints(const int i) const =0

References v_GetTraceNumPoints().

Referenced by Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat().

◆ GetTracePointsKey()

LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::GetTracePointsKey ( const int  i,
int  k = -1 
) const
inline

This function returns the basis key belonging to the i-th trace.

This function is a wrapper around the virtual function v_GetTracePointsKey()

Parameters
ispecifies which trace id
kis the direction of the basis key for 2D traces
Returns
returns the number of Points key of the ith trace in the k th direction (when trace is a 2D object)

Definition at line 323 of file StdExpansion.h.

324  {
325  return v_GetTracePointsKey(i, k);
326  }
virtual LibUtilities::PointsKey v_GetTracePointsKey(const int i, const int j) const

References v_GetTracePointsKey().

◆ GetTraceToElementMap()

void Nektar::StdRegions::StdExpansion::GetTraceToElementMap ( const int  tid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
Orientation  traceOrient = eForwards,
int  P = -1,
int  Q = -1 
)
inline

◆ GetVertexMap()

int Nektar::StdRegions::StdExpansion::GetVertexMap ( const int  localVertexId,
bool  useCoeffPacking = false 
)
inline

◆ H1()

NekDouble Nektar::StdRegions::StdExpansion::H1 ( const Array< OneD, const NekDouble > &  phys,
const Array< OneD, const NekDouble > &  sol = NullNekDouble1DArray 
)

Function to evaluate the discrete \( H^1\) error, \( | \epsilon |^1_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2 + \nabla(u - u_{exact})\cdot\nabla(u - u_{exact})\cdot dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol.

This function takes the physical value space array m_phys as approximate solution

Parameters
solarray of solution function at physical quadrature points
Returns
returns the \( H_1 \) error as a double.

Definition at line 151 of file StdExpansion.cpp.

153 {
154  int i;
155  NekDouble val;
156  int ntot = GetTotPoints();
157  int coordim = v_GetCoordim();
158  Array<OneD, NekDouble> wsp(3 * ntot);
159  Array<OneD, NekDouble> wsp_deriv = wsp + ntot;
160  Array<OneD, NekDouble> sum = wsp_deriv + ntot;
161 
162  if (sol == NullNekDouble1DArray)
163  {
164  Vmath::Vcopy(ntot, phys, 1, wsp, 1);
165  Vmath::Vmul(ntot, phys, 1, phys, 1, sum, 1);
166  }
167  else
168  {
169  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
170  Vmath::Vmul(ntot, wsp, 1, wsp, 1, sum, 1);
171  }
172 
173  for (i = 0; i < coordim; ++i)
174  {
175  v_PhysDeriv(i, wsp, wsp_deriv);
176  Vmath::Vvtvp(ntot, wsp_deriv, 1, wsp_deriv, 1, sum, 1, sum, 1);
177  }
178 
179  val = sqrt(v_Integral(sum));
180 
181  return val;
182 }
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
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.
static Array< OneD, NekDouble > NullNekDouble1DArray
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.
Definition: Vmath.cpp:209
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
Definition: Vmath.cpp:574
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.
Definition: Vmath.cpp:419
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:294

References GetTotPoints(), Nektar::NullNekDouble1DArray, tinysimd::sqrt(), v_GetCoordim(), v_Integral(), v_PhysDeriv(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vsub(), and Vmath::Vvtvp().

◆ HelmholtzMatrixOp()

void Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline
Parameters
inarrayInput array \( \mathbf{u} \).
outarrayOutput array \( \boldsymbol{\nabla^2u} + \lambda \boldsymbol{u} \).
mkey

Definition at line 836 of file StdExpansion.h.

839  {
840  v_HelmholtzMatrixOp(inarray, outarray, mkey);
841  }
virtual void v_HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_HelmholtzMatrixOp().

Referenced by GeneralMatrixOp().

◆ HelmholtzMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inlineprotected

Definition at line 1279 of file StdExpansion.h.

1282  {
1283  v_HelmholtzMatrixOp_MatFree(inarray, outarray, mkey);
1284  }
virtual void v_HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_HelmholtzMatrixOp_MatFree().

Referenced by GeneralMatrixOp_MatFree(), v_HelmholtzMatrixOp(), Nektar::LocalRegions::QuadExp::v_HelmholtzMatrixOp(), and Nektar::LocalRegions::TriExp::v_HelmholtzMatrixOp().

◆ HelmholtzMatrixOp_MatFree_GenericImpl()

void Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree_GenericImpl ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 929 of file StdExpansion.cpp.

932 {
933  NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
934  Array<OneD, NekDouble> tmp(m_ncoeffs);
935  StdMatrixKey mkeymass(eMass, DetShapeType(), *this);
936  StdMatrixKey mkeylap(eLaplacian, DetShapeType(), *this,
937  mkey.GetConstFactors(), mkey.GetVarCoeffs(),
938  mkey.GetNodalPointsType());
939 
940  MassMatrixOp(inarray, tmp, mkeymass);
941  LaplacianMatrixOp(inarray, outarray, mkeylap);
942 
943  Blas::Daxpy(m_ncoeffs, lambda, tmp, 1, outarray, 1);
944 }
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.
Definition: Blas.hpp:154

References Blas::Daxpy(), DetShapeType(), Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eMass, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), Nektar::StdRegions::StdMatrixKey::GetConstFactors(), Nektar::StdRegions::StdMatrixKey::GetNodalPointsType(), Nektar::StdRegions::StdMatrixKey::GetVarCoeffs(), LaplacianMatrixOp(), m_ncoeffs, and MassMatrixOp().

Referenced by Nektar::StdRegions::StdNodalTriExp::v_HelmholtzMatrixOp(), v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), and Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree().

◆ Integral()

NekDouble Nektar::StdRegions::StdExpansion::Integral ( const Array< OneD, const NekDouble > &  inarray)
inline

This function integrates the specified function over the domain.

This function is a wrapper around the virtual function v_Integral()

Based on the values of the function evaluated at the quadrature points (which are stored in inarray), this function calculates the integral of this function over the domain. This is equivalent to the numerical evaluation of the operation

\[ I=\int u(\mathbf{\xi})d \mathbf{\xi}\]

Parameters
inarrayvalues of the function to be integrated evaluated at the quadrature points (i.e. inarray[m]= \(u(\mathbf{\xi}_m)\))
Returns
returns the value of the calculated integral
        Inputs:\n
  • inarray: definition of function to be returned at quadrature point of expansion.

Outputs:

  • returns \(\int^1_{-1}\int^1_{-1} u(\xi_1, \xi_2) J[i,j] d \xi_1 d \xi_2 \) where \(inarray[i,j] = u(\xi_{1i},\xi_{2j}) \) and \( J[i,j] \) is the Jacobian evaluated at the quadrature point.

Definition at line 479 of file StdExpansion.h.

480  {
481  return v_Integral(inarray);
482  }

References v_Integral().

Referenced by export_StdExpansion().

◆ IProductWRTBase() [1/2]

void Nektar::StdRegions::StdExpansion::IProductWRTBase ( const Array< OneD, const NekDouble > &  base,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
int  coll_check 
)
inline

Definition at line 540 of file StdExpansion.h.

543  {
544  v_IProductWRTBase(base, inarray, outarray, coll_check);
545  }
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.

References v_IProductWRTBase().

◆ IProductWRTBase() [2/2]

void Nektar::StdRegions::StdExpansion::IProductWRTBase ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

this function calculates the inner product of a given function f with the different modes of the expansion

This function is a wrapper around the virtual function v_IProductWRTBase()

This is equivalent to the numerical evaluation of

\[ I[p] = \int \phi_p(\mathbf{x}) f(\mathbf{x}) d\mathbf{x}\]

\( \begin{array}{rcl} I_{pq} = (\phi_q \phi_q, u) & = & \sum_{i=0}^{nq_0} \sum_{j=0}^{nq_1} \phi_p(\xi_{0,i}) \phi_q(\xi_{1,j}) w^0_i w^1_j u(\xi_{0,i} \xi_{1,j}) J_{i,j}\\ & = & \sum_{i=0}^{nq_0} \phi_p(\xi_{0,i}) \sum_{j=0}^{nq_1} \phi_q(\xi_{1,j}) \tilde{u}_{i,j} J_{i,j} \end{array} \)

where

\( \tilde{u}_{i,j} = w^0_i w^1_j u(\xi_{0,i},\xi_{1,j}) \)

which can be implemented as

\( f_{qi} = \sum_{j=0}^{nq_1} \phi_q(\xi_{1,j}) \tilde{u}_{i,j} = {\bf B_1 U} \) \( I_{pq} = \sum_{i=0}^{nq_0} \phi_p(\xi_{0,i}) f_{qi} = {\bf B_0 F} \)

\param inarray contains the values of the function \a f
evaluated at the quadrature points
\param outarray contains the values of the inner product of \a f
with the different modes, i.e. \f$ outarray[p] = I[p]\f$
(output of the function)

Definition at line 534 of file StdExpansion.h.

536  {
537  v_IProductWRTBase(inarray, outarray);
538  }

References v_IProductWRTBase().

Referenced by Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::QuadExp::v_NormVectorIProductWRTBase(), and Nektar::LocalRegions::TriExp::v_NormVectorIProductWRTBase().

◆ IProductWRTBase_SumFac()

void Nektar::StdRegions::StdExpansion::IProductWRTBase_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
bool  multiplybyweights = true 
)
inline

Definition at line 1157 of file StdExpansion.h.

1160  {
1161  v_IProductWRTBase_SumFac(inarray, outarray, multiplybyweights);
1162  }
virtual void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)

References v_IProductWRTBase_SumFac().

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase(), and Nektar::LocalRegions::TriExp::v_IProductWRTBase().

◆ IProductWRTDerivBase()

void Nektar::StdRegions::StdExpansion::IProductWRTDerivBase ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 547 of file StdExpansion.h.

550  {
551  v_IProductWRTDerivBase(dir, inarray, outarray);
552  }
virtual void v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDerivBase().

◆ IProductWRTDerivBase_SumFac()

void Nektar::StdRegions::StdExpansion::IProductWRTDerivBase_SumFac ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inlineprotected

Definition at line 1208 of file StdExpansion.h.

1211  {
1212  v_IProductWRTDerivBase_SumFac(dir, inarray, outarray);
1213  }
virtual void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDerivBase_SumFac().

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase(), and Nektar::StdRegions::StdSegExp::v_IProductWRTDerivBase().

◆ IProductWRTDirectionalDerivBase()

void Nektar::StdRegions::StdExpansion::IProductWRTDirectionalDerivBase ( const Array< OneD, const NekDouble > &  direction,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 554 of file StdExpansion.h.

558  {
559  v_IProductWRTDirectionalDerivBase(direction, inarray, outarray);
560  }
virtual void v_IProductWRTDirectionalDerivBase(const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDirectionalDerivBase().

◆ IProductWRTDirectionalDerivBase_SumFac()

void Nektar::StdRegions::StdExpansion::IProductWRTDirectionalDerivBase_SumFac ( const Array< OneD, const NekDouble > &  direction,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inlineprotected

Definition at line 1215 of file StdExpansion.h.

1219  {
1220  v_IProductWRTDirectionalDerivBase_SumFac(direction, inarray, outarray);
1221  }
virtual void v_IProductWRTDirectionalDerivBase_SumFac(const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDirectionalDerivBase_SumFac().

Referenced by Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase(), and Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase().

◆ IsBoundaryInteriorExpansion()

bool Nektar::StdRegions::StdExpansion::IsBoundaryInteriorExpansion ( ) const
inline

◆ IsNodalNonTensorialExp()

bool Nektar::StdRegions::StdExpansion::IsNodalNonTensorialExp ( )
inline

Definition at line 398 of file StdExpansion.h.

399  {
400  return v_IsNodalNonTensorialExp();
401  }

References v_IsNodalNonTensorialExp().

◆ L2()

NekDouble Nektar::StdRegions::StdExpansion::L2 ( const Array< OneD, const NekDouble > &  phys,
const Array< OneD, const NekDouble > &  sol = NullNekDouble1DArray 
)

Function to evaluate the discrete \( L_2\) error, \( | \epsilon |_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2 dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol.

This function takes the physical value space array m_phys as approximate solution

Parameters
solarray of solution function at physical quadrature points
Returns
returns the \( L_2 \) error as a double.

Definition at line 121 of file StdExpansion.cpp.

123 {
124  NekDouble val;
125  int ntot = GetTotPoints();
126  Array<OneD, NekDouble> wsp(ntot);
127 
128  if (sol.size() == 0)
129  {
130  Vmath::Vmul(ntot, phys, 1, phys, 1, wsp, 1);
131  }
132  else
133  {
134  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
135  Vmath::Vmul(ntot, wsp, 1, wsp, 1, wsp, 1);
136  }
137 
138  val = v_Integral(wsp);
139 
140  // if val too small, sqrt returns nan.
142  {
143  return 0.0;
144  }
145  else
146  {
147  return sqrt(val);
148  }
149 }
static const NekDouble kNekSqrtTol

References GetTotPoints(), Nektar::NekConstants::kNekSqrtTol, tinysimd::sqrt(), v_Integral(), Vmath::Vmul(), and Vmath::Vsub().

◆ LaplacianMatrixOp() [1/2]

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 765 of file StdExpansion.h.

768  {
769  v_LaplacianMatrixOp(inarray, outarray, mkey);
770  }
virtual void v_LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_LaplacianMatrixOp().

Referenced by GeneralMatrixOp(), HelmholtzMatrixOp_MatFree_GenericImpl(), LaplacianMatrixOp_MatFree_GenericImpl(), and LinearAdvectionDiffusionReactionMatrixOp_MatFree().

◆ LaplacianMatrixOp() [2/2]

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp ( const int  k1,
const int  k2,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 791 of file StdExpansion.h.

795  {
796  v_LaplacianMatrixOp(k1, k2, inarray, outarray, mkey);
797  }

References v_LaplacianMatrixOp().

◆ LaplacianMatrixOp_MatFree() [1/2]

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inlineprotected

◆ LaplacianMatrixOp_MatFree() [2/2]

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree ( const int  k1,
const int  k2,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 685 of file StdExpansion.cpp.

688 {
689  ASSERTL1(k1 >= 0 && k1 < GetCoordim(), "invalid first argument");
690  ASSERTL1(k2 >= 0 && k2 < GetCoordim(), "invalid second argument");
691 
692  int nq = GetTotPoints();
693  Array<OneD, NekDouble> tmp(nq);
694  Array<OneD, NekDouble> dtmp(nq);
695  VarCoeffType varcoefftypes[3][3] = {
699 
700  ConstFactorType constcoefftypes[3][3] = {
704 
705  v_BwdTrans(inarray, tmp);
706  v_PhysDeriv(k2, tmp, dtmp);
707  if (mkey.GetNVarCoeff() && (!mkey.ConstFactorExists(eFactorSVVDiffCoeff)))
708  {
709  if (k1 == k2)
710  {
711  // By default, k1 == k2 has \sigma = 1 (diagonal entries)
712  if (mkey.HasVarCoeff(varcoefftypes[k1][k1]))
713  {
714  Vmath::Vmul(nq, mkey.GetVarCoeff(varcoefftypes[k1][k1]), 1,
715  dtmp, 1, dtmp, 1);
716  }
717  v_IProductWRTDerivBase_SumFac(k1, dtmp, outarray);
718  }
719  else
720  {
721  // By default, k1 != k2 has \sigma = 0 (off-diagonal entries)
722  if (mkey.HasVarCoeff(varcoefftypes[k1][k2]))
723  {
724  Vmath::Vmul(nq, mkey.GetVarCoeff(varcoefftypes[k1][k2]), 1,
725  dtmp, 1, dtmp, 1);
726  v_IProductWRTDerivBase_SumFac(k1, dtmp, outarray);
727  }
728  else
729  {
730  Vmath::Zero(GetNcoeffs(), outarray, 1);
731  }
732  }
733  }
734  else if (mkey.ConstFactorExists(eFactorCoeffD00) &&
735  (!mkey.ConstFactorExists(eFactorSVVDiffCoeff)))
736  {
737  if (k1 == k2)
738  {
739  // By default, k1 == k2 has \sigma = 1 (diagonal entries)
740  if (mkey.ConstFactorExists(constcoefftypes[k1][k1]))
741  {
742  Vmath::Smul(nq, mkey.GetConstFactor(constcoefftypes[k1][k1]),
743  dtmp, 1, dtmp, 1);
744  }
745  v_IProductWRTDerivBase(k1, dtmp, outarray);
746  }
747  else
748  {
749  // By default, k1 != k2 has \sigma = 0 (off-diagonal entries)
750  if (mkey.ConstFactorExists(constcoefftypes[k1][k2]))
751  {
752  Vmath::Smul(nq, mkey.GetConstFactor(constcoefftypes[k1][k2]),
753  dtmp, 1, dtmp, 1);
754  v_IProductWRTDerivBase(k1, dtmp, outarray);
755  }
756  else
757  {
758  Vmath::Zero(GetNcoeffs(), outarray, 1);
759  }
760  }
761  }
762  else
763  {
764  // Multiply by svv tensor
765  if (mkey.ConstFactorExists(eFactorSVVDiffCoeff))
766  {
767  Vmath::Vcopy(nq, dtmp, 1, tmp, 1);
768  SVVLaplacianFilter(dtmp, mkey);
769  Vmath::Vadd(nq, tmp, 1, dtmp, 1, dtmp, 1);
770  }
771  v_IProductWRTDerivBase(k1, dtmp, outarray);
772  }
773 }
int GetNcoeffs(void) const
This function returns the total number of coefficients used in the expansion.
Definition: StdExpansion.h:130
void SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
Definition: StdExpansion.h:779
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.
Definition: Vmath.cpp:359
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.
Definition: Vmath.cpp:248

References ASSERTL1, Nektar::StdRegions::StdMatrixKey::ConstFactorExists(), Nektar::StdRegions::eFactorCoeffD00, Nektar::StdRegions::eFactorCoeffD01, Nektar::StdRegions::eFactorCoeffD02, Nektar::StdRegions::eFactorCoeffD11, Nektar::StdRegions::eFactorCoeffD12, Nektar::StdRegions::eFactorCoeffD22, Nektar::StdRegions::eFactorSVVDiffCoeff, Nektar::StdRegions::eVarCoeffD00, Nektar::StdRegions::eVarCoeffD01, Nektar::StdRegions::eVarCoeffD02, Nektar::StdRegions::eVarCoeffD11, Nektar::StdRegions::eVarCoeffD12, Nektar::StdRegions::eVarCoeffD22, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), GetCoordim(), GetNcoeffs(), Nektar::StdRegions::StdMatrixKey::GetNVarCoeff(), GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::HasVarCoeff(), Vmath::Smul(), SVVLaplacianFilter(), v_BwdTrans(), v_IProductWRTDerivBase(), v_IProductWRTDerivBase_SumFac(), v_PhysDeriv(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vmul(), and Vmath::Zero().

◆ LaplacianMatrixOp_MatFree_GenericImpl()

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree_GenericImpl ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 775 of file StdExpansion.cpp.

778 {
779  const int dim = GetCoordim();
780 
781  int i, j;
782 
783  Array<OneD, NekDouble> store(m_ncoeffs);
784  Array<OneD, NekDouble> store2(m_ncoeffs, 0.0);
785 
786  if ((mkey.GetNVarCoeff() == 0 &&
787  !mkey.ConstFactorExists(eFactorCoeffD00)) ||
788  mkey.ConstFactorExists(eFactorSVVDiffCoeff))
789  {
790  // just call diagonal matrix form of laplcian operator
791  for (i = 0; i < dim; ++i)
792  {
793  LaplacianMatrixOp(i, i, inarray, store, mkey);
794  Vmath::Vadd(m_ncoeffs, store, 1, store2, 1, store2, 1);
795  }
796  }
797  else
798  {
799  const MatrixType mtype[3][3] = {
803  StdMatrixKeySharedPtr mkeyij;
804 
805  for (i = 0; i < dim; i++)
806  {
807  for (j = 0; j < dim; j++)
808  {
810  mkey, mtype[i][j]);
811  LaplacianMatrixOp(i, j, inarray, store, *mkeyij);
812  Vmath::Vadd(m_ncoeffs, store, 1, store2, 1, store2, 1);
813  }
814  }
815  }
816 
817  Vmath::Vcopy(m_ncoeffs, store2.get(), 1, outarray.get(), 1);
818 }
std::shared_ptr< StdMatrixKey > StdMatrixKeySharedPtr
Definition: StdMatrixKey.h:201

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::StdRegions::StdMatrixKey::ConstFactorExists(), Nektar::StdRegions::eFactorCoeffD00, Nektar::StdRegions::eFactorSVVDiffCoeff, Nektar::StdRegions::eLaplacian00, Nektar::StdRegions::eLaplacian01, Nektar::StdRegions::eLaplacian02, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian22, GetCoordim(), Nektar::StdRegions::StdMatrixKey::GetNVarCoeff(), LaplacianMatrixOp(), m_ncoeffs, Vmath::Vadd(), and Vmath::Vcopy().

Referenced by Nektar::StdRegions::StdNodalTriExp::v_LaplacianMatrixOp(), v_LaplacianMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), and Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree().

◆ LaplacianMatrixOp_MatFree_Kernel()

void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree_Kernel ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
Array< OneD, NekDouble > &  wsp 
)
inlineprotected

Definition at line 1247 of file StdExpansion.h.

1250  {
1251  v_LaplacianMatrixOp_MatFree_Kernel(inarray, outarray, wsp);
1252  }
virtual void v_LaplacianMatrixOp_MatFree_Kernel(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)

References v_LaplacianMatrixOp_MatFree_Kernel().

Referenced by Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), and Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree().

◆ LinearAdvectionDiffusionReactionMatrixOp()

void Nektar::StdRegions::StdExpansion::LinearAdvectionDiffusionReactionMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey,
bool  addDiffusionTerm = true 
)
inline

Definition at line 821 of file StdExpansion.h.

825  {
826  v_LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey,
827  addDiffusionTerm);
828  }
virtual void v_LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)

References v_LinearAdvectionDiffusionReactionMatrixOp().

Referenced by GeneralMatrixOp().

◆ LinearAdvectionDiffusionReactionMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::LinearAdvectionDiffusionReactionMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey,
bool  addDiffusionTerm = true 
)
protected

Definition at line 871 of file StdExpansion.cpp.

875 {
876 
877  int i;
878  int ndir =
879  mkey.GetNVarCoeff(); // assume num.r consts corresponds to directions
880  ASSERTL0(ndir, "Must define at least one advection velocity");
881 
882  NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
883  int totpts = GetTotPoints();
884  Array<OneD, NekDouble> tmp(3 * totpts);
885  Array<OneD, NekDouble> tmp_deriv = tmp + totpts;
886  Array<OneD, NekDouble> tmp_adv = tmp_deriv + totpts;
887 
888  ASSERTL1(ndir <= GetCoordim(),
889  "Number of constants is larger than coordinate dimensions");
890 
891  v_BwdTrans(inarray, tmp);
892 
893  VarCoeffType varcoefftypes[] = {eVarCoeffVelX, eVarCoeffVelY,
894  eVarCoeffVelZ};
895 
896  // calculate u dx + v dy + ..
897  Vmath::Zero(totpts, tmp_adv, 1);
898  for (i = 0; i < ndir; ++i)
899  {
900  v_PhysDeriv(i, tmp, tmp_deriv);
901  Vmath::Vvtvp(totpts, mkey.GetVarCoeff(varcoefftypes[i]), 1, tmp_deriv,
902  1, tmp_adv, 1, tmp_adv, 1);
903  }
904 
905  if (lambda) // add -lambda*u
906  {
907  Vmath::Svtvp(totpts, -lambda, tmp, 1, tmp_adv, 1, tmp_adv, 1);
908  }
909 
910  if (addDiffusionTerm)
911  {
912  Array<OneD, NekDouble> lap(m_ncoeffs);
913  StdMatrixKey mkeylap(eLaplacian, DetShapeType(), *this,
914  mkey.GetConstFactors(), mkey.GetVarCoeffs(),
915  mkey.GetNodalPointsType());
916  LaplacianMatrixOp(inarray, lap, mkeylap);
917 
918  v_IProductWRTBase(tmp_adv, outarray);
919  // Lap v - u.grad v + lambda*u
920  // => (grad u, grad v) + u.grad v - lambda*u
921  Vmath::Vadd(m_ncoeffs, lap, 1, outarray, 1, outarray, 1);
922  }
923  else
924  {
925  v_IProductWRTBase(tmp_adv, outarray);
926  }
927 }
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
Definition: Vmath.cpp:622

References ASSERTL0, ASSERTL1, DetShapeType(), Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eVarCoeffVelX, Nektar::StdRegions::eVarCoeffVelY, Nektar::StdRegions::eVarCoeffVelZ, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), Nektar::StdRegions::StdMatrixKey::GetConstFactors(), GetCoordim(), Nektar::StdRegions::StdMatrixKey::GetNodalPointsType(), Nektar::StdRegions::StdMatrixKey::GetNVarCoeff(), GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::GetVarCoeffs(), LaplacianMatrixOp(), m_ncoeffs, Vmath::Svtvp(), v_BwdTrans(), v_IProductWRTBase(), v_PhysDeriv(), Vmath::Vadd(), Vmath::Vvtvp(), and Vmath::Zero().

Referenced by GeneralMatrixOp_MatFree(), and v_LinearAdvectionDiffusionReactionMatrixOp().

◆ Linf()

NekDouble Nektar::StdRegions::StdExpansion::Linf ( const Array< OneD, const NekDouble > &  phys,
const Array< OneD, const NekDouble > &  sol = NullNekDouble1DArray 
)

Function to evaluate the discrete \( L_\infty\) error \( |\epsilon|_\infty = \max |u - u_{exact}|\) where \( u_{exact}\) is given by the array sol.

This function takes the physical value space array m_phys as approximate solution

Parameters
solarray of solution function at physical quadrature points
Returns
returns the \( L_\infty \) error as a NekDouble.

Definition at line 100 of file StdExpansion.cpp.

102 {
103  NekDouble val;
104  int ntot = GetTotPoints();
105  Array<OneD, NekDouble> wsp(ntot);
106 
107  if (sol == NullNekDouble1DArray)
108  {
109  Vmath::Vabs(ntot, phys, 1, wsp, 1);
110  }
111  else
112  {
113  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
114  Vmath::Vabs(ntot, wsp, 1, wsp, 1);
115  }
116 
117  val = Vmath::Vamax(ntot, wsp, 1);
118  return val;
119 }
void Vabs(int n, const T *x, const int incx, T *y, const int incy)
vabs: y = |x|
Definition: Vmath.cpp:553
T Vamax(int n, const T *x, const int incx)
Return the maximum absolute element in x called vamax to avoid conflict with max.
Definition: Vmath.cpp:999

References GetTotPoints(), Nektar::NullNekDouble1DArray, Vmath::Vabs(), Vmath::Vamax(), and Vmath::Vsub().

◆ LocCollapsedToLocCoord()

void Nektar::StdRegions::StdExpansion::LocCollapsedToLocCoord ( const Array< OneD, const NekDouble > &  eta,
Array< OneD, NekDouble > &  xi 
)
inline

Convert local collapsed coordinates eta into local cartesian coordinate xi.

Definition at line 1011 of file StdExpansion.h.

1013  {
1014  v_LocCollapsedToLocCoord(eta, xi);
1015  }
virtual void v_LocCollapsedToLocCoord(const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi)

References v_LocCollapsedToLocCoord().

◆ LocCoordToLocCollapsed()

void Nektar::StdRegions::StdExpansion::LocCoordToLocCollapsed ( const Array< OneD, const NekDouble > &  xi,
Array< OneD, NekDouble > &  eta 
)
inline

◆ MassLevelCurvatureMatrixOp()

void Nektar::StdRegions::StdExpansion::MassLevelCurvatureMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 814 of file StdExpansion.h.

817  {
818  v_MassLevelCurvatureMatrixOp(inarray, outarray, mkey);
819  }
virtual void v_MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_MassLevelCurvatureMatrixOp().

Referenced by GeneralMatrixOp().

◆ MassLevelCurvatureMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::MassLevelCurvatureMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 864 of file StdExpansion.cpp.

867 {
868  boost::ignore_unused(inarray, outarray, mkey);
869 }

Referenced by GeneralMatrixOp_MatFree(), and v_MassLevelCurvatureMatrixOp().

◆ MassMatrixOp()

void Nektar::StdRegions::StdExpansion::MassMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

◆ MassMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::MassMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

◆ MultiplyByQuadratureMetric()

void Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 729 of file StdExpansion.h.

731  {
732  v_MultiplyByQuadratureMetric(inarray, outarray);
733  }
virtual void v_MultiplyByQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_MultiplyByQuadratureMetric().

Referenced by Nektar::LocalRegions::NodalTriExp::IProductWRTBase_SumFac(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TetExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::HexExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), and Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel().

◆ MultiplyByStdQuadratureMetric()

void Nektar::StdRegions::StdExpansion::MultiplyByStdQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 735 of file StdExpansion.h.

738  {
739  v_MultiplyByStdQuadratureMetric(inarray, outarray);
740  }
virtual void v_MultiplyByStdQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_MultiplyByStdQuadratureMetric().

◆ NormVectorIProductWRTBase() [1/4]

void Nektar::StdRegions::StdExpansion::NormVectorIProductWRTBase ( const Array< OneD, const Array< OneD, NekDouble >> &  Fvec,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 640 of file StdExpansion.h.

643  {
644  v_NormVectorIProductWRTBase(Fvec, outarray);
645  }
virtual void v_NormVectorIProductWRTBase(const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray)

References v_NormVectorIProductWRTBase().

◆ NormVectorIProductWRTBase() [2/4]

void Nektar::StdRegions::StdExpansion::NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
Array< OneD, NekDouble > &  outarray 
)
inline

◆ NormVectorIProductWRTBase() [3/4]

void Nektar::StdRegions::StdExpansion::NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
const Array< OneD, const NekDouble > &  Fy,
const Array< OneD, const NekDouble > &  Fz,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 632 of file StdExpansion.h.

636  {
637  v_NormVectorIProductWRTBase(Fx, Fy, Fz, outarray);
638  }

References v_NormVectorIProductWRTBase().

◆ NormVectorIProductWRTBase() [4/4]

void Nektar::StdRegions::StdExpansion::NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
const Array< OneD, NekDouble > &  Fy,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 625 of file StdExpansion.h.

628  {
629  v_NormVectorIProductWRTBase(Fx, Fy, outarray);
630  }

References v_NormVectorIProductWRTBase().

◆ NumBndryCoeffs()

int Nektar::StdRegions::StdExpansion::NumBndryCoeffs ( void  ) const
inline

Definition at line 328 of file StdExpansion.h.

329  {
330  return v_NumBndryCoeffs();
331  }
virtual int v_NumBndryCoeffs() const =0

References v_NumBndryCoeffs().

Referenced by Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), Nektar::LocalRegions::Expansion2D::GetTraceInverseBoundaryMap(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPyrExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), and Nektar::StdRegions::StdTriExp::v_GetInteriorMap().

◆ NumDGBndryCoeffs()

int Nektar::StdRegions::StdExpansion::NumDGBndryCoeffs ( void  ) const
inline

◆ PhysDeriv() [1/2]

void Nektar::StdRegions::StdExpansion::PhysDeriv ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_d0,
Array< OneD, NekDouble > &  out_d1 = NullNekDouble1DArray,
Array< OneD, NekDouble > &  out_d2 = NullNekDouble1DArray 
)
inline

◆ PhysDeriv() [2/2]

void Nektar::StdRegions::StdExpansion::PhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 856 of file StdExpansion.h.

858  {
859  v_PhysDeriv(dir, inarray, outarray);
860  }

References v_PhysDeriv().

◆ PhysDeriv_n()

void Nektar::StdRegions::StdExpansion::PhysDeriv_n ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_dn 
)
inline

Definition at line 868 of file StdExpansion.h.

870  {
871  v_PhysDeriv_n(inarray, out_dn);
872  }
virtual void v_PhysDeriv_n(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)

References v_PhysDeriv_n().

◆ PhysDeriv_s()

void Nektar::StdRegions::StdExpansion::PhysDeriv_s ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_ds 
)
inline

Definition at line 862 of file StdExpansion.h.

864  {
865  v_PhysDeriv_s(inarray, out_ds);
866  }
virtual void v_PhysDeriv_s(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)

References v_PhysDeriv_s().

◆ PhysDirectionalDeriv()

void Nektar::StdRegions::StdExpansion::PhysDirectionalDeriv ( const Array< OneD, const NekDouble > &  inarray,
const Array< OneD, const NekDouble > &  direction,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 874 of file StdExpansion.h.

877  {
878  v_PhysDirectionalDeriv(inarray, direction, outarray);
879  }
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.

References v_PhysDirectionalDeriv().

◆ PhysEvaluate() [1/4]

NekDouble Nektar::StdRegions::StdExpansion::PhysEvaluate ( const Array< OneD, const NekDouble > &  coords,
const Array< OneD, const NekDouble > &  physvals 
)
inline

This function evaluates the expansion at a single (arbitrary) point of the domain.

This function is a wrapper around the virtual function v_PhysEvaluate()

Based on the value of the expansion at the quadrature points provided in physvals, this function calculates the value of the expansion at an arbitrary single points (with coordinates \( \mathbf{x_c}\) given by the pointer coords). This operation, equivalent to

\[ u(\mathbf{x_c}) = \sum_p \phi_p(\mathbf{x_c}) \hat{u}_p \]

is evaluated using Lagrangian interpolants through the quadrature points:

\[ u(\mathbf{x_c}) = \sum_p h_p(\mathbf{x_c}) u_p\]

Parameters
coordsthe coordinates of the single point
physvalsthe interpolated field at the quadrature points
Returns
returns the value of the expansion at the single point

Definition at line 918 of file StdExpansion.h.

920  {
921  return v_PhysEvaluate(coords, physvals);
922  }
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)

References v_PhysEvaluate().

Referenced by Nektar::StdRegions::StdPrismExp::v_PhysEvaluate(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluate(), Nektar::StdRegions::StdTetExp::v_PhysEvaluate(), and Nektar::StdRegions::StdTriExp::v_PhysEvaluate().

◆ PhysEvaluate() [2/4]

NekDouble Nektar::StdRegions::StdExpansion::PhysEvaluate ( const Array< OneD, DNekMatSharedPtr > &  I,
const Array< OneD, const NekDouble > &  physvals 
)
inline

This function evaluates the expansion at a single (arbitrary) point of the domain.

This function is a wrapper around the virtual function v_PhysEvaluate()

Based on the value of the expansion at the quadrature points provided in physvals, this function calculates the value of the expansion at an arbitrary single points associated with the interpolation matrices provided in \( I \).

Parameters
Ian Array of lagrange interpolantes evaluated at the coordinate and going through the local physical quadrature
physvalsthe interpolated field at the quadrature points
Returns
returns the value of the expansion at the single point

Definition at line 973 of file StdExpansion.h.

975  {
976  return v_PhysEvaluate(I, physvals);
977  }

References v_PhysEvaluate().

◆ PhysEvaluate() [3/4]

NekDouble Nektar::StdRegions::StdExpansion::PhysEvaluate ( const Array< OneD, NekDouble > &  coord,
const Array< OneD, const NekDouble > &  inarray,
std::array< NekDouble, 3 > &  firstOrderDerivs 
)
inline

This function evaluates the first derivative of the expansion at a single (arbitrary) point of the domain.

This function is a wrapper around the virtual function v_PhysEvaluate()

Based on the value of the expansion at the quadrature points provided in physvals, this function calculates the value of the expansion at a set of points given in coords

Definition at line 935 of file StdExpansion.h.

939  {
940  return v_PhysEvaluate(coord, inarray, firstOrderDerivs);
941  }

References v_PhysEvaluate().

◆ PhysEvaluate() [4/4]

NekDouble Nektar::StdRegions::StdExpansion::PhysEvaluate ( const Array< OneD, NekDouble > &  coord,
const Array< OneD, const NekDouble > &  inarray,
std::array< NekDouble, 3 > &  firstOrderDerivs,
std::array< NekDouble, 6 > &  secondOrderDerivs 
)
inline

Definition at line 943 of file StdExpansion.h.

948  {
949  return v_PhysEvaluate(coord, inarray, firstOrderDerivs,
950  secondOrderDerivs);
951  }

References v_PhysEvaluate().

◆ PhysEvaluateBasis()

NekDouble Nektar::StdRegions::StdExpansion::PhysEvaluateBasis ( const Array< OneD, const NekDouble > &  coords,
int  mode 
)
inline

This function evaluates the basis function mode mode at a point coords of the domain.

This function uses barycentric interpolation with the tensor product separation of the basis function to improve performance.

Parameters
coordThe coordinate inside the standard region.
modeThe mode number to be evaluated.
Returns
The value of the basis function mode at coords.

Definition at line 991 of file StdExpansion.h.

993  {
994  return v_PhysEvaluateBasis(coords, mode);
995  }
virtual NekDouble v_PhysEvaluateBasis(const Array< OneD, const NekDouble > &coords, int mode)

References v_PhysEvaluateBasis().

◆ PhysInterpToSimplexEquiSpaced()

void Nektar::StdRegions::StdExpansion::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 array of equispaced points which are not the collapsed coordinate. So for a tetrahedron you will only get a tetrahedral number of values.

This is primarily used for output purposes to get a better distribution of points more suitable for most postprocessing

Definition at line 1567 of file StdExpansion.cpp.

1570 {
1572  DNekMatSharedPtr intmat;
1573 
1574  int nqtot = GetTotPoints();
1575  int np = 0;
1576  if (npset == -1) // use values from basis num points()
1577  {
1578  int nqbase;
1579  for (int i = 0; i < m_base.size(); ++i)
1580  {
1581  nqbase = m_base[i]->GetNumPoints();
1582  np = std::max(np, nqbase);
1583  }
1584 
1585  StdMatrixKey Ikey(ePhysInterpToEquiSpaced, shape, *this);
1586  intmat = GetStdMatrix(Ikey);
1587  }
1588  else
1589  {
1590  np = npset;
1591 
1592  ConstFactorMap cmap;
1593  cmap[eFactorConst] = np;
1594  StdMatrixKey Ikey(ePhysInterpToEquiSpaced, shape, *this, cmap);
1595  intmat = GetStdMatrix(Ikey);
1596  }
1597 
1598  NekVector<NekDouble> in(nqtot, inarray, eWrapper);
1599  NekVector<NekDouble> out(
1600  LibUtilities::GetNumberOfCoefficients(shape, np, np, np), outarray,
1601  eWrapper);
1602  out = (*intmat) * in;
1603 }
int GetNumberOfCoefficients(ShapeType shape, std::vector< unsigned int > &modes, int offset=0)
Definition: ShapeType.hpp:310

References DetShapeType(), Nektar::StdRegions::eFactorConst, Nektar::StdRegions::ePhysInterpToEquiSpaced, Nektar::eWrapper, Nektar::LibUtilities::GetNumberOfCoefficients(), GetStdMatrix(), GetTotPoints(), and m_base.

Referenced by CreateGeneralMatrix().

◆ ReduceOrderCoeffs()

void Nektar::StdRegions::StdExpansion::ReduceOrderCoeffs ( int  numMin,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 772 of file StdExpansion.h.

775  {
776  v_ReduceOrderCoeffs(numMin, inarray, outarray);
777  }
virtual void v_ReduceOrderCoeffs(int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_ReduceOrderCoeffs().

◆ SetElmtId()

void Nektar::StdRegions::StdExpansion::SetElmtId ( const int  id)
inline

Set the element id of this expansion when used in a list by returning value of m_elmt_id.

Definition at line 571 of file StdExpansion.h.

572  {
573  m_elmt_id = id;
574  }

References m_elmt_id.

◆ StdPhysDeriv() [1/2]

void Nektar::StdRegions::StdExpansion::StdPhysDeriv ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_d0,
Array< OneD, NekDouble > &  out_d1 = NullNekDouble1DArray,
Array< OneD, NekDouble > &  out_d2 = NullNekDouble1DArray 
)
inline

Definition at line 881 of file StdExpansion.h.

885  {
886  v_StdPhysDeriv(inarray, out_d0, out_d1, out_d2);
887  }
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)

References v_StdPhysDeriv().

Referenced by Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat().

◆ StdPhysDeriv() [2/2]

void Nektar::StdRegions::StdExpansion::StdPhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 889 of file StdExpansion.h.

892  {
893  v_StdPhysDeriv(dir, inarray, outarray);
894  }

References v_StdPhysDeriv().

◆ StdPhysEvaluate()

NekDouble Nektar::StdRegions::StdExpansion::StdPhysEvaluate ( const Array< OneD, const NekDouble > &  Lcoord,
const Array< OneD, const NekDouble > &  physvals 
)

Definition at line 947 of file StdExpansion.cpp.

950 {
951  return v_StdPhysEvaluate(Lcoord, physvals);
952 }
virtual NekDouble v_StdPhysEvaluate(const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)

References v_StdPhysEvaluate().

◆ SVVLaplacianFilter()

void Nektar::StdRegions::StdExpansion::SVVLaplacianFilter ( Array< OneD, NekDouble > &  array,
const StdMatrixKey mkey 
)
inline

Definition at line 779 of file StdExpansion.h.

781  {
782  v_SVVLaplacianFilter(array, mkey);
783  }
virtual void v_SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)

References v_SVVLaplacianFilter().

Referenced by LaplacianMatrixOp_MatFree().

◆ v_BuildInverseTransformationMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_BuildInverseTransformationMatrix ( const DNekScalMatSharedPtr m_transformationmatrix)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion3D.

Definition at line 1559 of file StdExpansion.cpp.

1561 {
1562  boost::ignore_unused(m_transformationmatrix);
1563  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1564  return NullDNekMatSharedPtr;
1565 }
static DNekMatSharedPtr NullDNekMatSharedPtr
Definition: NekTypeDefs.hpp:83

References Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::NullDNekMatSharedPtr.

Referenced by BuildInverseTransformationMatrix().

◆ v_BwdTrans()

virtual void Nektar::StdRegions::StdExpansion::v_BwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual

◆ v_BwdTrans_SumFac()

void Nektar::StdRegions::StdExpansion::v_BwdTrans_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

◆ v_CalcNumberOfCoefficients()

int Nektar::StdRegions::StdExpansion::v_CalcNumberOfCoefficients ( const std::vector< unsigned int > &  nummodes,
int &  modes_offset 
)
virtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 954 of file StdExpansion.cpp.

956 {
957  boost::ignore_unused(nummodes, modes_offset);
958  NEKERROR(ErrorUtil::efatal, "This function is not defined for this class");
959  return 0;
960 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by CalcNumberOfCoefficients().

◆ v_CreateStdMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_CreateStdMatrix ( const StdMatrixKey mkey)
privatevirtual

◆ v_DetShapeType()

virtual LibUtilities::ShapeType Nektar::StdRegions::StdExpansion::v_DetShapeType ( ) const
privatepure virtual

◆ v_DropLocStaticCondMatrix()

void Nektar::StdRegions::StdExpansion::v_DropLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
virtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, and Nektar::LocalRegions::HexExp.

Definition at line 1002 of file StdExpansion.cpp.

1004 {
1005  boost::ignore_unused(mkey);
1006  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1007 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DropLocStaticCondMatrix().

◆ v_ExponentialFilter()

void Nektar::StdRegions::StdExpansion::v_ExponentialFilter ( Array< OneD, NekDouble > &  array,
const NekDouble  alpha,
const NekDouble  exponent,
const NekDouble  cutoff 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1460 of file StdExpansion.cpp.

1464 {
1465  boost::ignore_unused(array, alpha, exponent, cutoff);
1466  ASSERTL0(false, "This function is not defined in StdExpansion.");
1467 }

References ASSERTL0.

Referenced by ExponentialFilter().

◆ v_FillMode()

void Nektar::StdRegions::StdExpansion::v_FillMode ( const int  mode,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

◆ v_FwdTrans()

virtual void Nektar::StdRegions::StdExpansion::v_FwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual

◆ v_FwdTransBndConstrained()

void Nektar::StdRegions::StdExpansion::v_FwdTransBndConstrained ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::SegExp, and Nektar::LocalRegions::QuadExp.

Definition at line 1119 of file StdExpansion.cpp.

1122 {
1123  boost::ignore_unused(inarray, outarray);
1124  NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1125 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by FwdTransBndConstrained().

◆ v_GenMatrix()

DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_GenMatrix ( const StdMatrixKey mkey)
privatevirtual

◆ v_GenStdMatBwdDeriv()

virtual void Nektar::StdRegions::StdExpansion::v_GenStdMatBwdDeriv ( const int  dir,
DNekMatSharedPtr mat 
)
inlineprotectedvirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1301 of file StdExpansion.h.

1303  {
1304  boost::ignore_unused(dir, mat);
1305  NEKERROR(ErrorUtil::efatal, "not defined");
1306  }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by GenStdMatBwdDeriv().

◆ v_GetBoundaryMap()

void Nektar::StdRegions::StdExpansion::v_GetBoundaryMap ( Array< OneD, unsigned int > &  outarray)
privatevirtual

◆ v_GetCoord()

void Nektar::StdRegions::StdExpansion::v_GetCoord ( const Array< OneD, const NekDouble > &  Lcoord,
Array< OneD, NekDouble > &  coord 
)
privatevirtual

◆ v_GetCoordim()

int Nektar::StdRegions::StdExpansion::v_GetCoordim ( ) const
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion.

Definition at line 1309 of file StdExpansion.cpp.

1310 {
1311  return GetShapeDimension();
1312 }

References GetShapeDimension().

Referenced by GetCoordim(), and H1().

◆ v_GetCoords()

void Nektar::StdRegions::StdExpansion::v_GetCoords ( Array< OneD, NekDouble > &  coords_0,
Array< OneD, NekDouble > &  coords_1,
Array< OneD, NekDouble > &  coords_2 
)
privatevirtual

◆ v_GetElmtTraceToTraceMap()

void Nektar::StdRegions::StdExpansion::v_GetElmtTraceToTraceMap ( const unsigned int  tid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
Orientation  traceOrient = eForwards,
int  P = -1,
int  Q = -1 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdHexExp, Nektar::StdRegions::StdSegExp, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1349 of file StdExpansion.cpp.

1354 {
1355  boost::ignore_unused(tid, maparray, signarray, traceOrient, P, Q);
1356  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1357 }

References Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::LibUtilities::P.

Referenced by GetElmtTraceToTraceMap().

◆ v_GetInteriorMap()

void Nektar::StdRegions::StdExpansion::v_GetInteriorMap ( Array< OneD, unsigned int > &  outarray)
privatevirtual

◆ v_GetLinStdExp()

std::shared_ptr< StdExpansion > Nektar::StdRegions::StdExpansion::v_GetLinStdExp ( void  ) const
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::NodalTriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1078 of file StdExpansion.cpp.

1079 {
1080  ASSERTL0(false, "This method is not defined for this expansion");
1081  StdExpansionSharedPtr returnval;
1082  return returnval;
1083 }
std::shared_ptr< StdExpansion > StdExpansionSharedPtr

References ASSERTL0.

Referenced by GetLinStdExp().

◆ v_GetLocStaticCondMatrix()

DNekScalBlkMatSharedPtr Nektar::StdRegions::StdExpansion::v_GetLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
virtual

◆ v_GetNodalPointsKey()

const LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::v_GetNodalPointsKey ( ) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdNodalTetExp, and Nektar::StdRegions::StdNodalPrismExp.

Definition at line 1064 of file StdExpansion.cpp.

1065 {
1066  ASSERTL0(false, "This function is not valid or not defined");
1067 
1069 }
static const PointsKey NullPointsKey(0, eNoPointsType)

References ASSERTL0, and Nektar::LibUtilities::NullPointsKey().

Referenced by GetNodalPointsKey().

◆ v_GetNtraces()

virtual int Nektar::StdRegions::StdExpansion::v_GetNtraces ( ) const
privatepure virtual

◆ v_GetNverts()

virtual int Nektar::StdRegions::StdExpansion::v_GetNverts ( ) const
privatepure virtual

◆ v_GetShapeDimension()

virtual int Nektar::StdRegions::StdExpansion::v_GetShapeDimension ( ) const
privatepure virtual

◆ v_GetSimplexEquiSpacedConnectivity()

void Nektar::StdRegions::StdExpansion::v_GetSimplexEquiSpacedConnectivity ( Array< OneD, int > &  conn,
bool  standard = true 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdHexExp, and Nektar::LocalRegions::PrismExp.

Definition at line 1605 of file StdExpansion.cpp.

1607 {
1608  boost::ignore_unused(conn, standard);
1610  "GetSimplexEquiSpacedConnectivity not"
1611  " implemented for " +
1612  static_cast<std::string>(
1614 }
const char *const ShapeTypeMap[SIZE_ShapeType]
Definition: ShapeType.hpp:79

References DetShapeType(), Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::LibUtilities::ShapeTypeMap.

Referenced by GetSimplexEquiSpacedConnectivity().

◆ v_GetStdExp()

std::shared_ptr< StdExpansion > Nektar::StdRegions::StdExpansion::v_GetStdExp ( void  ) const
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::NodalTriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1071 of file StdExpansion.cpp.

1072 {
1073  ASSERTL0(false, "This method is not defined for this expansion");
1074  StdExpansionSharedPtr returnval;
1075  return returnval;
1076 }

References ASSERTL0.

Referenced by GetStdExp().

◆ v_GetTraceBasisKey()

const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::v_GetTraceBasisKey ( const int  i,
const int  k 
) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdHexExp, Nektar::StdRegions::StdTriExp, and Nektar::StdRegions::StdQuadExp.

Definition at line 1048 of file StdExpansion.cpp.

1050 {
1051  boost::ignore_unused(i, k);
1052  ASSERTL0(false, "This function is not valid or not defined");
1054 }

References ASSERTL0, and Nektar::LibUtilities::NullBasisKey().

Referenced by GetTraceBasisKey().

◆ v_GetTraceCoeffMap()

void Nektar::StdRegions::StdExpansion::v_GetTraceCoeffMap ( const unsigned int  traceid,
Array< OneD, unsigned int > &  maparray 
)
privatevirtual

◆ v_GetTraceInteriorToElementMap()

void Nektar::StdRegions::StdExpansion::v_GetTraceInteriorToElementMap ( const int  eid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
const Orientation  traceOrient = eForwards 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdHexExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, and Nektar::StdRegions::StdNodalTriExp.

Definition at line 1359 of file StdExpansion.cpp.

1362 {
1363  boost::ignore_unused(tid, maparray, signarray, traceOrient);
1364  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1365 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by GetTraceInteriorToElementMap().

◆ v_GetTraceIntNcoeffs()

virtual int Nektar::StdRegions::StdExpansion::v_GetTraceIntNcoeffs ( const int  i) const
privatepure virtual

◆ v_GetTraceNcoeffs()

virtual int Nektar::StdRegions::StdExpansion::v_GetTraceNcoeffs ( const int  i) const
privatepure virtual

◆ v_GetTraceNumModes()

void Nektar::StdRegions::StdExpansion::v_GetTraceNumModes ( const int  fid,
int &  numModes0,
int &  numModes1,
Orientation  traceOrient = eDir1FwdDir1_Dir2FwdDir2 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1367 of file StdExpansion.cpp.

1369 {
1370  boost::ignore_unused(tid, traceOrient, numModes0, numModes1);
1371  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1372 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by GetTraceNumModes().

◆ v_GetTraceNumPoints()

virtual int Nektar::StdRegions::StdExpansion::v_GetTraceNumPoints ( const int  i) const
privatepure virtual

◆ v_GetTracePointsKey()

LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::v_GetTracePointsKey ( const int  i,
const int  j 
) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1056 of file StdExpansion.cpp.

1058 {
1059  boost::ignore_unused(i, j);
1060  ASSERTL0(false, "This function is not valid or not defined");
1062 }

References ASSERTL0, and Nektar::LibUtilities::NullPointsKey().

Referenced by GetTracePointsKey().

◆ v_GetTraceToElementMap()

void Nektar::StdRegions::StdExpansion::v_GetTraceToElementMap ( const int  tid,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
Orientation  traceOrient = eForwards,
int  P = -1,
int  Q = -1 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdNodalTriExp, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1333 of file StdExpansion.cpp.

1337 {
1338  boost::ignore_unused(tid, maparray, signarray, traceOrient, P, Q);
1339  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1340 }

References Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::LibUtilities::P.

Referenced by GetTraceToElementMap().

◆ v_GetVertexMap()

int Nektar::StdRegions::StdExpansion::v_GetVertexMap ( int  localVertexId,
bool  useCoeffPacking = false 
)
privatevirtual

◆ v_GetVertexPhysVals()

void Nektar::StdRegions::StdExpansion::v_GetVertexPhysVals ( const int  vertex,
const Array< OneD, const NekDouble > &  inarray,
NekDouble outarray 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1374 of file StdExpansion.cpp.

1377 {
1378  boost::ignore_unused(vertex, inarray, outarray);
1379  NEKERROR(ErrorUtil::efatal, "Method does not exist for "
1380  "this shape or library");
1381 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_HelmholtzMatrixOp()

void Nektar::StdRegions::StdExpansion::v_HelmholtzMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

◆ v_HelmholtzMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::v_HelmholtzMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1550 of file StdExpansion.cpp.

1553 {
1554  // If this function is not reimplemented on shape level, the function
1555  // below will be called
1556  HelmholtzMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1557 }
void HelmholtzMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References HelmholtzMatrixOp_MatFree_GenericImpl().

Referenced by HelmholtzMatrixOp_MatFree().

◆ v_Integral()

NekDouble Nektar::StdRegions::StdExpansion::v_Integral ( const Array< OneD, const NekDouble > &  inarray)
privatevirtual

Integrates the specified function over the domain.

See also
StdRegions::StdExpansion::Integral.

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdExpansion3D, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::NodalTriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1131 of file StdExpansion.cpp.

1132 {
1133  boost::ignore_unused(inarray);
1134  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1135  "local expansions");
1136  return 0;
1137 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by H1(), Integral(), and L2().

◆ v_IProductWRTBase() [1/2]

virtual void Nektar::StdRegions::StdExpansion::v_IProductWRTBase ( const Array< OneD, const NekDouble > &  base,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
int  coll_check 
)
inlineprivatevirtual

Reimplemented in Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdPointExp, and Nektar::LocalRegions::SegExp.

Definition at line 1538 of file StdExpansion.h.

1542  {
1543  boost::ignore_unused(base, inarray, outarray, coll_check);
1544  NEKERROR(ErrorUtil::efatal, "StdExpansion::v_IProductWRTBase has no "
1545  "(and should have no) implementation");
1546  }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_IProductWRTBase() [2/2]

virtual void Nektar::StdRegions::StdExpansion::v_IProductWRTBase ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual

◆ v_IProductWRTBase_SumFac()

void Nektar::StdRegions::StdExpansion::v_IProductWRTBase_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
bool  multiplybyweights = true 
)
privatevirtual

◆ v_IProductWRTDerivBase()

void Nektar::StdRegions::StdExpansion::v_IProductWRTDerivBase ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

◆ v_IProductWRTDerivBase_SumFac()

void Nektar::StdRegions::StdExpansion::v_IProductWRTDerivBase_SumFac ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

◆ v_IProductWRTDirectionalDerivBase()

void Nektar::StdRegions::StdExpansion::v_IProductWRTDirectionalDerivBase ( const Array< OneD, const NekDouble > &  direction,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1107 of file StdExpansion.cpp.

1111 {
1112  boost::ignore_unused(direction, inarray, outarray);
1113  NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1114 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by IProductWRTDirectionalDerivBase().

◆ v_IProductWRTDirectionalDerivBase_SumFac()

void Nektar::StdRegions::StdExpansion::v_IProductWRTDirectionalDerivBase_SumFac ( const Array< OneD, const NekDouble > &  direction,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1418 of file StdExpansion.cpp.

1422 {
1423  boost::ignore_unused(direction, inarray, outarray);
1424  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1425 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by IProductWRTDirectionalDerivBase_SumFac().

◆ v_IsBoundaryInteriorExpansion()

bool Nektar::StdRegions::StdExpansion::v_IsBoundaryInteriorExpansion ( ) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1085 of file StdExpansion.cpp.

1086 {
1087  ASSERTL0(false, "This function has not been defined for this expansion");
1088  return false;
1089 }

References ASSERTL0.

Referenced by IsBoundaryInteriorExpansion().

◆ v_IsNodalNonTensorialExp()

bool Nektar::StdRegions::StdExpansion::v_IsNodalNonTensorialExp ( )
privatevirtual

Reimplemented in Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdNodalTetExp, and Nektar::StdRegions::StdNodalPrismExp.

Definition at line 1091 of file StdExpansion.cpp.

1092 {
1093  return false;
1094 }

Referenced by IsNodalNonTensorialExp().

◆ v_LaplacianMatrixOp() [1/2]

void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

◆ v_LaplacianMatrixOp() [2/2]

void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp ( const int  k1,
const int  k2,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::HexExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdNodalTriExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1477 of file StdExpansion.cpp.

1480 {
1481  // If this function is not reimplemented on shape level, the function
1482  // below will be called
1483  LaplacianMatrixOp_MatFree(k1, k2, inarray, outarray, mkey);
1484 }

References LaplacianMatrixOp_MatFree().

◆ v_LaplacianMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1533 of file StdExpansion.cpp.

1536 {
1537  // If this function is not reimplemented on shape level, the function
1538  // below will be called
1539  LaplacianMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1540 }
void LaplacianMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References LaplacianMatrixOp_MatFree_GenericImpl().

Referenced by LaplacianMatrixOp_MatFree().

◆ v_LaplacianMatrixOp_MatFree_Kernel()

void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp_MatFree_Kernel ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
Array< OneD, NekDouble > &  wsp 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, and Nektar::LocalRegions::HexExp.

Definition at line 1542 of file StdExpansion.cpp.

1545 {
1546  boost::ignore_unused(inarray, outarray, wsp);
1547  ASSERTL0(false, "Not implemented.");
1548 }

References ASSERTL0.

Referenced by LaplacianMatrixOp_MatFree_Kernel().

◆ v_LinearAdvectionDiffusionReactionMatrixOp()

void Nektar::StdRegions::StdExpansion::v_LinearAdvectionDiffusionReactionMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey,
bool  addDiffusionTerm = true 
)
privatevirtual

Definition at line 1513 of file StdExpansion.cpp.

1517 {
1518  // If this function is not reimplemented on shape level, the function
1519  // below will be called
1520  LinearAdvectionDiffusionReactionMatrixOp_MatFree(inarray, outarray, mkey,
1521  addDiffusionTerm);
1522 }

References LinearAdvectionDiffusionReactionMatrixOp_MatFree().

Referenced by LinearAdvectionDiffusionReactionMatrixOp().

◆ v_LocCollapsedToLocCoord()

void Nektar::StdRegions::StdExpansion::v_LocCollapsedToLocCoord ( const Array< OneD, const NekDouble > &  eta,
Array< OneD, NekDouble > &  xi 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1041 of file StdExpansion.cpp.

1043 {
1044  boost::ignore_unused(eta, xi);
1045  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1046 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by LocCollapsedToLocCoord().

◆ v_LocCoordToLocCollapsed()

void Nektar::StdRegions::StdExpansion::v_LocCoordToLocCollapsed ( const Array< OneD, const NekDouble > &  xi,
Array< OneD, NekDouble > &  eta 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1034 of file StdExpansion.cpp.

1036 {
1037  boost::ignore_unused(xi, eta);
1038  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1039 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by LocCoordToLocCollapsed().

◆ v_MassLevelCurvatureMatrixOp()

void Nektar::StdRegions::StdExpansion::v_MassLevelCurvatureMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::HexExp.

Definition at line 1504 of file StdExpansion.cpp.

1507 {
1508  // If this function is not reimplemented on shape level, the function
1509  // below will be called
1510  MassLevelCurvatureMatrixOp_MatFree(inarray, outarray, mkey);
1511 }

References MassLevelCurvatureMatrixOp_MatFree().

Referenced by MassLevelCurvatureMatrixOp().

◆ v_MassMatrixOp()

void Nektar::StdRegions::StdExpansion::v_MassMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::HexExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdNodalTriExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1435 of file StdExpansion.cpp.

1438 {
1439  // If this function is not reimplemented on shape level, the function
1440  // below will be called
1441  MassMatrixOp_MatFree(inarray, outarray, mkey);
1442 }

References MassMatrixOp_MatFree().

Referenced by MassMatrixOp().

◆ v_MultiplyByQuadratureMetric()

void Nektar::StdRegions::StdExpansion::v_MultiplyByQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion.

Definition at line 1383 of file StdExpansion.cpp.

1386 {
1387  v_MultiplyByStdQuadratureMetric(inarray, outarray);
1388 }

References v_MultiplyByStdQuadratureMetric().

Referenced by MultiplyByQuadratureMetric().

◆ v_MultiplyByStdQuadratureMetric()

void Nektar::StdRegions::StdExpansion::v_MultiplyByStdQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
protectedvirtual

◆ v_NormVectorIProductWRTBase() [1/4]

void Nektar::StdRegions::StdExpansion::v_NormVectorIProductWRTBase ( const Array< OneD, const Array< OneD, NekDouble >> &  Fvec,
Array< OneD, NekDouble > &  outarray 
)
virtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::Expansion3D.

Definition at line 986 of file StdExpansion.cpp.

989 {
990  boost::ignore_unused(Fvec, outarray);
991  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
992 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_NormVectorIProductWRTBase() [2/4]

void Nektar::StdRegions::StdExpansion::v_NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
Array< OneD, NekDouble > &  outarray 
)
virtual

Reimplemented in Nektar::LocalRegions::PointExp.

Definition at line 962 of file StdExpansion.cpp.

964 {
965  boost::ignore_unused(Fx, outarray);
966  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
967 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by NormVectorIProductWRTBase().

◆ v_NormVectorIProductWRTBase() [3/4]

void Nektar::StdRegions::StdExpansion::v_NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
const Array< OneD, const NekDouble > &  Fy,
Array< OneD, NekDouble > &  outarray 
)
virtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 969 of file StdExpansion.cpp.

972 {
973  boost::ignore_unused(Fx, Fy, outarray);
974  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
975 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_NormVectorIProductWRTBase() [4/4]

void Nektar::StdRegions::StdExpansion::v_NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
const Array< OneD, const NekDouble > &  Fy,
const Array< OneD, const NekDouble > &  Fz,
Array< OneD, NekDouble > &  outarray 
)
virtual

Reimplemented in Nektar::LocalRegions::TriExp, and Nektar::LocalRegions::QuadExp.

Definition at line 977 of file StdExpansion.cpp.

981 {
982  boost::ignore_unused(Fx, Fy, Fz, outarray);
983  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
984 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_NumBndryCoeffs()

virtual int Nektar::StdRegions::StdExpansion::v_NumBndryCoeffs ( ) const
privatepure virtual

◆ v_NumDGBndryCoeffs()

virtual int Nektar::StdRegions::StdExpansion::v_NumDGBndryCoeffs ( ) const
privatepure virtual

◆ v_PhysDeriv() [1/2]

void Nektar::StdRegions::StdExpansion::v_PhysDeriv ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_d1,
Array< OneD, NekDouble > &  out_d2,
Array< OneD, NekDouble > &  out_d3 
)
privatevirtual

◆ v_PhysDeriv() [2/2]

void Nektar::StdRegions::StdExpansion::v_PhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_d0 
)
privatevirtual

Calculate the derivative of the physical points in a given direction.

See also
StdRegions::StdExpansion::PhysDeriv

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdHexExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::NodalTriExp, and Nektar::LocalRegions::HexExp.

Definition at line 1173 of file StdExpansion.cpp.

1177 {
1178  boost::ignore_unused(dir, inarray, out_d0);
1179  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1180  "specific element types");
1181 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_PhysDeriv_n()

void Nektar::StdRegions::StdExpansion::v_PhysDeriv_n ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_dn 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1160 of file StdExpansion.cpp.

1162 {
1163  boost::ignore_unused(inarray, out_dn);
1164  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1165  "local expansions");
1166 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDeriv_n().

◆ v_PhysDeriv_s()

void Nektar::StdRegions::StdExpansion::v_PhysDeriv_s ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_ds 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1153 of file StdExpansion.cpp.

1155 {
1156  boost::ignore_unused(inarray, out_ds);
1157  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1158  "local expansions");
1159 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDeriv_s().

◆ v_PhysDirectionalDeriv()

void Nektar::StdRegions::StdExpansion::v_PhysDirectionalDeriv ( const Array< OneD, const NekDouble > &  inarray,
const Array< OneD, const NekDouble > &  direction,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Physical derivative along a direction vector.

See also
StdRegions::StdExpansion::PhysDirectionalDeriv

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::HexExp.

Definition at line 1187 of file StdExpansion.cpp.

1191 {
1192  boost::ignore_unused(inarray, direction, outarray);
1193  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1194  "specific element types");
1195 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDirectionalDeriv(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ v_PhysEvaluate() [1/4]

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, const NekDouble > &  coords,
const Array< OneD, const NekDouble > &  physvals 
)
privatevirtual

◆ v_PhysEvaluate() [2/4]

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, DNekMatSharedPtr > &  I,
const Array< OneD, const NekDouble > &  physvals 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, and Nektar::StdRegions::StdExpansion2D.

Definition at line 1223 of file StdExpansion.cpp.

1226 {
1227  boost::ignore_unused(I, physvals);
1228  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1229  return 0;
1230 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_PhysEvaluate() [3/4]

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, NekDouble > &  coord,
const Array< OneD, const NekDouble > &  inarray,
std::array< NekDouble, 3 > &  firstOrderDerivs 
)
privatevirtual

◆ v_PhysEvaluate() [4/4]

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, NekDouble > &  coord,
const Array< OneD, const NekDouble > &  inarray,
std::array< NekDouble, 3 > &  firstOrderDerivs,
std::array< NekDouble, 6 > &  secondOrderDerivs 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdExpansion1D, and Nektar::LocalRegions::SegExp.

Definition at line 1254 of file StdExpansion.cpp.

1259 {
1260  boost::ignore_unused(coord, inarray, firstOrderDerivs, secondOrderDerivs);
1262  "PhysEvaluate second order derivative method does not exist"
1263  " for this shape type: " +
1264  static_cast<std::string>(
1266  return 0;
1267 }

References DetShapeType(), Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::LibUtilities::ShapeTypeMap.

◆ v_PhysEvaluateBasis()

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluateBasis ( const Array< OneD, const NekDouble > &  coords,
int  mode 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdHexExp, and Nektar::StdRegions::StdPyrExp.

Definition at line 1232 of file StdExpansion.cpp.

1234 {
1235  boost::ignore_unused(coords, mode);
1236  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1237  return 0;
1238 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by PhysEvaluateBasis().

◆ v_ReduceOrderCoeffs()

void Nektar::StdRegions::StdExpansion::v_ReduceOrderCoeffs ( int  numMin,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::HexExp.

Definition at line 1469 of file StdExpansion.cpp.

1472 {
1473  boost::ignore_unused(numMin, inarray, outarray);
1474  ASSERTL0(false, "This function is not defined in StdExpansion.");
1475 }

References ASSERTL0.

Referenced by ReduceOrderCoeffs().

◆ v_SetCoeffsToOrientation() [1/2]

void Nektar::StdRegions::StdExpansion::v_SetCoeffsToOrientation ( Array< OneD, NekDouble > &  coeffs,
StdRegions::Orientation  dir 
)
protectedvirtual

Definition at line 1017 of file StdExpansion.cpp.

1019 {
1020  boost::ignore_unused(coeffs, dir);
1021  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1022 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_SetCoeffsToOrientation() [2/2]

void Nektar::StdRegions::StdExpansion::v_SetCoeffsToOrientation ( StdRegions::Orientation  dir,
Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
protectedvirtual

Reimplemented in Nektar::LocalRegions::SegExp, and Nektar::LocalRegions::Expansion.

Definition at line 1009 of file StdExpansion.cpp.

1012 {
1013  boost::ignore_unused(dir, inarray, outarray);
1014  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1015 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_StdPhysDeriv() [1/2]

void Nektar::StdRegions::StdExpansion::v_StdPhysDeriv ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_d1,
Array< OneD, NekDouble > &  out_d2,
Array< OneD, NekDouble > &  out_d3 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, Nektar::LocalRegions::NodalTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1197 of file StdExpansion.cpp.

1201 {
1202  boost::ignore_unused(inarray, out_d1, out_d2, out_d3);
1203  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1204 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by StdPhysDeriv().

◆ v_StdPhysDeriv() [2/2]

void Nektar::StdRegions::StdExpansion::v_StdPhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1206 of file StdExpansion.cpp.

1209 {
1210  boost::ignore_unused(dir, inarray, outarray);
1211  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1212 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

◆ v_StdPhysEvaluate()

NekDouble Nektar::StdRegions::StdExpansion::v_StdPhysEvaluate ( const Array< OneD, const NekDouble > &  Lcoord,
const Array< OneD, const NekDouble > &  physvals 
)
protectedvirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::PrismExp, and Nektar::LocalRegions::HexExp.

Definition at line 1024 of file StdExpansion.cpp.

1028 {
1029  boost::ignore_unused(Lcoord, physvals);
1030  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1031  return 0;
1032 }

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by StdPhysEvaluate().

◆ v_SVVLaplacianFilter()

void Nektar::StdRegions::StdExpansion::v_SVVLaplacianFilter ( Array< OneD, NekDouble > &  array,
const StdMatrixKey mkey 
)
privatevirtual

◆ v_WeakDerivMatrixOp()

void Nektar::StdRegions::StdExpansion::v_WeakDerivMatrixOp ( const int  i,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::HexExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdNodalTriExp, and Nektar::StdRegions::StdHexExp.

Definition at line 1486 of file StdExpansion.cpp.

1489 {
1490  // If this function is not reimplemented on shape level, the function
1491  // below will be called
1492  WeakDerivMatrixOp_MatFree(i, inarray, outarray, mkey);
1493 }

References WeakDerivMatrixOp_MatFree().

Referenced by WeakDerivMatrixOp().

◆ v_WeakDirectionalDerivMatrixOp()

void Nektar::StdRegions::StdExpansion::v_WeakDirectionalDerivMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::HexExp.

Definition at line 1495 of file StdExpansion.cpp.

1498 {
1499  // If this function is not reimplemented on shape level, the function
1500  // below will be called
1501  WeakDirectionalDerivMatrixOp_MatFree(inarray, outarray, mkey);
1502 }

References WeakDirectionalDerivMatrixOp_MatFree().

Referenced by WeakDirectionalDerivMatrixOp().

◆ WeakDerivMatrixOp()

void Nektar::StdRegions::StdExpansion::WeakDerivMatrixOp ( const int  i,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 799 of file StdExpansion.h.

803  {
804  v_WeakDerivMatrixOp(i, inarray, outarray, mkey);
805  }
virtual void v_WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_WeakDerivMatrixOp().

Referenced by GeneralMatrixOp().

◆ WeakDerivMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::WeakDerivMatrixOp_MatFree ( const int  i,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

◆ WeakDirectionalDerivMatrixOp()

void Nektar::StdRegions::StdExpansion::WeakDirectionalDerivMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 807 of file StdExpansion.h.

810  {
811  v_WeakDirectionalDerivMatrixOp(inarray, outarray, mkey);
812  }
virtual void v_WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_WeakDirectionalDerivMatrixOp().

Referenced by GeneralMatrixOp().

◆ WeakDirectionalDerivMatrixOp_MatFree()

void Nektar::StdRegions::StdExpansion::WeakDirectionalDerivMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 840 of file StdExpansion.cpp.

843 {
844  int nq = GetTotPoints();
845 
846  Array<OneD, NekDouble> tmp(nq), Dtmp(nq);
847  Array<OneD, NekDouble> Mtmp(nq), Mout(m_ncoeffs);
848 
849  v_BwdTrans(inarray, tmp);
850  v_PhysDirectionalDeriv(tmp, mkey.GetVarCoeff(eVarCoeffMF), Dtmp);
851 
852  v_IProductWRTBase(Dtmp, outarray);
853 
854  // Compte M_{div tv}
855  Vmath::Vmul(nq, &(mkey.GetVarCoeff(eVarCoeffMFDiv))[0], 1, &tmp[0], 1,
856  &Mtmp[0], 1);
857 
858  v_IProductWRTBase(Mtmp, Mout);
859 
860  // Add D_tv + M_{div tv}
861  Vmath::Vadd(m_ncoeffs, &Mout[0], 1, &outarray[0], 1, &outarray[0], 1);
862 }

References Nektar::StdRegions::eVarCoeffMF, Nektar::StdRegions::eVarCoeffMFDiv, GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), m_ncoeffs, v_BwdTrans(), v_IProductWRTBase(), v_PhysDirectionalDeriv(), Vmath::Vadd(), and Vmath::Vmul().

Referenced by GeneralMatrixOp_MatFree(), and v_WeakDirectionalDerivMatrixOp().

Member Data Documentation

◆ m_base

Array<OneD, LibUtilities::BasisSharedPtr> Nektar::StdRegions::StdExpansion::m_base
protected

Bases needed for the expansion

Definition at line 1172 of file StdExpansion.h.

Referenced by BaryEvaluate(), BaryEvaluateBasis(), Nektar::StdRegions::StdExpansion2D::BaryTensorDeriv(), Nektar::StdRegions::StdExpansion3D::BaryTensorDeriv(), CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::CreateStdMatrix(), EquiSpacedToCoeffs(), EvalBasisNumModesMax(), Nektar::LocalRegions::Expansion::Expansion(), GetBase(), GetBasis(), GetBasisNumModes(), GetBasisType(), Nektar::LocalRegions::QuadExp::GetEdgeInterpVals(), Nektar::LocalRegions::Expansion::GetMF(), Nektar::StdRegions::StdTetExp::GetMode(), Nektar::StdRegions::StdPrismExp::GetMode(), Nektar::StdRegions::StdPyrExp::GetMode(), Nektar::LocalRegions::Expansion2D::GetnEdgecdotMF(), GetNumBases(), GetNumPoints(), GetPoints(), GetPointsKeys(), GetPointsType(), GetTotPoints(), Nektar::LocalRegions::NodalTriExp::Integral(), Nektar::StdRegions::StdExpansion2D::Integral(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_SumFac(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::NodalTriExp::PhysDeriv(), PhysInterpToSimplexEquiSpaced(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion2D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion3D::PhysTensorDeriv(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), StdExpansion(), Nektar::StdRegions::StdNodalTriExp::StdNodalTriExp(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::HexExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::NodalTriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PrismExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PyrExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::QuadExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TetExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdPointExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdPyrExp::v_BwdTrans(), Nektar::StdRegions::StdQuadExp::v_BwdTrans(), Nektar::StdRegions::StdSegExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::NodalTriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_CreateStdMatrix(), Nektar::LocalRegions::PrismExp::v_CreateStdMatrix(), Nektar::LocalRegions::PyrExp::v_CreateStdMatrix(), Nektar::LocalRegions::QuadExp::v_CreateStdMatrix(), Nektar::LocalRegions::SegExp::v_CreateStdMatrix(), Nektar::LocalRegions::TetExp::v_CreateStdMatrix(), Nektar::LocalRegions::TriExp::v_CreateStdMatrix(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::StdRegions::StdSegExp::v_ExponentialFilter(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdQuadExp::v_FillMode(), Nektar::StdRegions::StdHexExp::v_FillMode(), Nektar::StdRegions::StdSegExp::v_FillMode(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdHexExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::StdRegions::StdExpansion2D::v_GenStdMatBwdDeriv(), Nektar::StdRegions::StdExpansion3D::v_GenStdMatBwdDeriv(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPyrExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPointExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetCoords(), Nektar::StdRegions::StdSegExp::v_GetCoords(), Nektar::LocalRegions::Expansion::v_GetCoords(), Nektar::StdRegions::StdHexExp::v_GetCoords(), Nektar::StdRegions::StdTetExp::v_GetCoords(), Nektar::StdRegions::StdTriExp::v_GetCoords(), Nektar::StdRegions::StdPrismExp::v_GetCoords(), Nektar::StdRegions::StdPyrExp::v_GetCoords(), Nektar::StdRegions::StdHexExp::v_GetEdgeInteriorToElementMap(), Nektar::StdRegions::StdPrismExp::v_GetEdgeInteriorToElementMap(), Nektar::StdRegions::StdPyrExp::v_GetEdgeInteriorToElementMap(), Nektar::StdRegions::StdTetExp::v_GetEdgeInteriorToElementMap(), Nektar::StdRegions::StdTetExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdExpansion2D::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdHexExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPrismExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPyrExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdTetExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::LocalRegions::HexExp::v_GetLinStdExp(), Nektar::LocalRegions::NodalTriExp::v_GetLinStdExp(), Nektar::LocalRegions::PrismExp::v_GetLinStdExp(), Nektar::LocalRegions::PyrExp::v_GetLinStdExp(), Nektar::LocalRegions::QuadExp::v_GetLinStdExp(), Nektar::LocalRegions::SegExp::v_GetLinStdExp(), Nektar::LocalRegions::TetExp::v_GetLinStdExp(), Nektar::LocalRegions::TriExp::v_GetLinStdExp(), Nektar::LocalRegions::PrismExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdHexExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdQuadExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdSegExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTetExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTriExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::LocalRegions::HexExp::v_GetStdExp(), Nektar::LocalRegions::NodalTriExp::v_GetStdExp(), Nektar::LocalRegions::PrismExp::v_GetStdExp(), Nektar::LocalRegions::PyrExp::v_GetStdExp(), Nektar::LocalRegions::QuadExp::v_GetStdExp(), Nektar::LocalRegions::SegExp::v_GetStdExp(), Nektar::LocalRegions::TetExp::v_GetStdExp(), Nektar::LocalRegions::TriExp::v_GetStdExp(), Nektar::StdRegions::StdTriExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdHexExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPrismExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdPyrExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdTetExp::v_GetTraceBasisKey(), Nektar::StdRegions::StdHexExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdPrismExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdPyrExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdTetExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdQuadExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdSegExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdTriExp::v_GetTraceCoeffMap(), Nektar::StdRegions::StdQuadExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdTriExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdHexExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdPrismExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdPyrExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdTetExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdPyrExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdTetExp::v_GetTraceIntNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetTraceNumModes(), Nektar::StdRegions::StdPrismExp::v_GetTraceNumModes(), Nektar::StdRegions::StdPyrExp::v_GetTraceNumModes(), Nektar::StdRegions::StdTetExp::v_GetTraceNumModes(), Nektar::StdRegions::StdHexExp::v_GetTraceNumPoints(), Nektar::StdRegions::StdPrismExp::v_GetTraceNumPoints(), Nektar::StdRegions::StdPyrExp::v_GetTraceNumPoints(), Nektar::StdRegions::StdTetExp::v_GetTraceNumPoints(), Nektar::LocalRegions::QuadExp::v_GetTracePhysMap(), Nektar::LocalRegions::TriExp::v_GetTracePhysMap(), Nektar::LocalRegions::HexExp::v_GetTracePhysMap(), Nektar::LocalRegions::PrismExp::v_GetTracePhysMap(), Nektar::LocalRegions::PyrExp::v_GetTracePhysMap(), Nektar::LocalRegions::TetExp::v_GetTracePhysMap(), Nektar::LocalRegions::SegExp::v_GetTracePhysMap(), Nektar::LocalRegions::QuadExp::v_GetTracePhysVals(), Nektar::LocalRegions::TriExp::v_GetTracePhysVals(), Nektar::StdRegions::StdHexExp::v_GetTracePointsKey(), Nektar::StdRegions::StdPrismExp::v_GetTracePointsKey(), Nektar::StdRegions::StdTetExp::v_GetTracePointsKey(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::StdRegions::StdHexExp::v_GetVertexMap(), Nektar::StdRegions::StdQuadExp::v_GetVertexMap(), Nektar::StdRegions::StdSegExp::v_GetVertexMap(), Nektar::StdRegions::StdTriExp::v_GetVertexMap(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), Nektar::StdRegions::StdSegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::LocalRegions::HexExp::v_Integral(), Nektar::LocalRegions::PrismExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_Integral(), Nektar::LocalRegions::QuadExp::v_Integral(), Nektar::LocalRegions::SegExp::v_Integral(), Nektar::LocalRegions::TetExp::v_Integral(), Nektar::LocalRegions::TriExp::v_Integral(), Nektar::StdRegions::StdQuadExp::v_Integral(), Nektar::StdRegions::StdSegExp::v_Integral(), Nektar::StdRegions::StdTriExp::v_Integral(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase(), Nektar::LocalRegions::SegExp::v_IProductWRTBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TetExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel(), Nektar::LocalRegions::SegExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::StdRegions::StdPointExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::HexExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdSegExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdPrismExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdQuadExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdSegExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTetExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTriExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdSegExp::v_LaplacianMatrixOp(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::HexExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PyrExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TetExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::StdRegions::StdHexExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdPrismExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdPyrExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdQuadExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdSegExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTetExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTriExp::v_MultiplyByStdQuadratureMetric(), Nektar::LocalRegions::SegExp::v_NormVectorIProductWRTBase(), Nektar::LocalRegions::QuadExp::v_NormVectorIProductWRTBase(), Nektar::LocalRegions::TriExp::v_NormVectorIProductWRTBase(), Nektar::StdRegions::StdHexExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumDGBndryCoeffs(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::LocalRegions::PyrExp::v_PhysDeriv(), Nektar::LocalRegions::TetExp::v_PhysDeriv(), Nektar::StdRegions::StdPrismExp::v_PhysDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::StdRegions::StdTriExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::StdRegions::StdTetExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv_n(), Nektar::LocalRegions::SegExp::v_PhysDeriv_s(), Nektar::LocalRegions::HexExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::TriExp::v_PhysDirectionalDeriv(), Nektar::StdRegions::StdExpansion2D::v_PhysEvaluate(), Nektar::StdRegions::StdExpansion3D::v_PhysEvaluate(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdHexExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTetExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTriExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdQuadExp::v_PhysEvaluateBasis(), Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::TriExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdSegExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTriExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdSegExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter().

◆ m_elmt_id

int Nektar::StdRegions::StdExpansion::m_elmt_id
protected

Definition at line 1173 of file StdExpansion.h.

Referenced by GetElmtId(), and SetElmtId().

◆ m_ncoeffs

int Nektar::StdRegions::StdExpansion::m_ncoeffs
protected

Total number of coefficients used in the expansion

Definition at line 1174 of file StdExpansion.h.

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), EquiSpacedToCoeffs(), Nektar::LocalRegions::NodalTriExp::FwdTrans(), Nektar::LocalRegions::NodalTriExp::GeneralMatrixOp_MatOp(), Nektar::LocalRegions::TetExp::GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), GetNcoeffs(), HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), LaplacianMatrixOp_MatFree_GenericImpl(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTetExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTetExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTetExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), Nektar::LocalRegions::PointExp::PointExp(), Nektar::LocalRegions::SegExp::ReverseCoeffsAndSign(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::LocalRegions::NodalTriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PrismExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::QuadExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::StdRegions::StdNodalPrismExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalTetExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdQuadExp::v_FillMode(), Nektar::StdRegions::StdHexExp::v_FillMode(), Nektar::StdRegions::StdNodalPrismExp::v_FillMode(), Nektar::StdRegions::StdNodalTetExp::v_FillMode(), Nektar::StdRegions::StdNodalTriExp::v_FillMode(), Nektar::StdRegions::StdPrismExp::v_FillMode(), Nektar::StdRegions::StdPyrExp::v_FillMode(), Nektar::StdRegions::StdSegExp::v_FillMode(), Nektar::StdRegions::StdTetExp::v_FillMode(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdTetExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdExpansion2D::v_GenStdMatBwdDeriv(), Nektar::StdRegions::StdExpansion3D::v_GenStdMatBwdDeriv(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFacKernel(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::HexExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::HexExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ m_stdMatrixManager

LibUtilities::NekManager<StdMatrixKey, DNekMat, StdMatrixKey::opLess> Nektar::StdRegions::StdExpansion::m_stdMatrixManager
protected

◆ m_stdStaticCondMatrixManager

LibUtilities::NekManager<StdMatrixKey, DNekBlkMat, StdMatrixKey::opLess> Nektar::StdRegions::StdExpansion::m_stdStaticCondMatrixManager
protected