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, bool UseGLL=false) 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 NodalToModal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
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 LinearAdvectionMatrixOp (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...
 
void PhysInterp (std::shared_ptr< StdExpansion > fromExp, const Array< OneD, const NekDouble > &fromData, Array< OneD, NekDouble > &toData)
 interpolate from one set of quadrature points available from FromExp to the set of quadrature points in the current expansion. If the points are the same this routine will just copy the data 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 LinearAdvectionMatrixOp_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 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, bool UseGLL=false) 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_NodalToModal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
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_PhysEvaluateInterp (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals)
 
virtual NekDouble v_PhysEvalFirstDeriv (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs)
 
virtual NekDouble v_PhysEvalFirstSecondDeriv (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_PhysInterp (std::shared_ptr< StdExpansion > FromExp, const Array< OneD, const NekDouble > &fromData, Array< OneD, NekDouble > &toData)
 
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_LinearAdvectionMatrixOp (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 64 of file StdExpansion.h.

Constructor & Destructor Documentation

◆ StdExpansion() [1/3]

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

Default Constructor.

Default constructor.

Definition at line 42 of file StdExpansion.cpp.

43{
44}

◆ 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 46 of file StdExpansion.cpp.

50 : m_base(numbases), m_elmt_id(0), m_ncoeffs(numcoeffs),
52 std::placeholders::_1),
53 std::string("StdExpansionStdMatrix")),
56 std::placeholders::_1),
57 std::string("StdExpansionStdStaticCondMatrix"))
58{
59 switch (m_base.size())
60 {
61 case 3:
63 "NULL Basis attempting to be used.");
65 /* Falls through. */
66 case 2:
68 "NULL Basis attempting to be used.");
70 /* Falls through. */
71 case 1:
73 "NULL Basis attempting to be used.");
75 break;
76 default:
77 break;
78 // ASSERTL0(false, "numbases incorrectly specified");
79 };
80
81} // 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:265
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 83 of file StdExpansion.cpp.

84 : std::enable_shared_from_this<StdExpansion>(T), m_base(T.m_base),
85 m_elmt_id(T.m_elmt_id), m_ncoeffs(T.m_ncoeffs),
86 m_stdMatrixManager(T.m_stdMatrixManager),
87 m_stdStaticCondMatrixManager(T.m_stdStaticCondMatrixManager)
88{
89}

◆ ~StdExpansion()

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

Destructor.

Definition at line 92 of file StdExpansion.cpp.

93{
94}

Member Function Documentation

◆ as()

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

Definition at line 1173 of file StdExpansion.h.

1174 {
1175 return std::dynamic_pointer_cast<T>(shared_from_this());
1176 }

◆ 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 1485 of file StdExpansion.h.

1487 {
1488 NekDouble unusedValue = 0.0;
1489 return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, unusedValue,
1490 unusedValue);
1491 }
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 1494 of file StdExpansion.h.

1496 {
1497 NekDouble unusedValue = 0.0;
1498 return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, deriv,
1499 unusedValue);
1500 }

◆ 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.

Parameters
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 1357 of file StdExpansion.h.

1360 {
1361 NekDouble numer1 = 0.0, numer2 = 0.0, numer3 = 0.0, numer4 = 0.0,
1362 numer5 = 0.0, denom = 0.0;
1363
1364 ASSERTL2(DIR < m_base.size(),
1365 "Direction should be less than shape dimension.");
1366
1367 const Array<OneD, const NekDouble> &z = m_base[DIR]->GetZ();
1368 const Array<OneD, const NekDouble> &bw = m_base[DIR]->GetBaryWeights();
1369
1370 const size_t nquad = z.size();
1371
1372 for (size_t i = 0; i < nquad; ++i)
1373 {
1374 NekDouble xdiff = z[i] - coord;
1375 NekDouble pval = physvals[i];
1376
1377 /*
1378 * (in this specific case) you actually
1379 * want to do the comparison exactly
1380 * (believe it or not!) See chapter 7 of
1381 * the paper here:
1382 *https://people.maths.ox.ac.uk/trefethen/barycentric.pdf
1383 */
1384 if ((!DERIV && xdiff == 0.0) ||
1385 ((DERIV || DERIV2) && std::abs(xdiff) < 1e-15))
1386 {
1387
1388 if constexpr (DERIV2)
1389 {
1390 DNekMatSharedPtr D0 = m_base[DIR]->GetD();
1391
1392 // take ith row of z and multiply with physvals
1393 Array<OneD, NekDouble> tmp(nquad);
1394 for (int kk = 0; kk < nquad; kk++)
1395 {
1396 tmp[kk] = Vmath::Dot(nquad, &(D0->GetPtr())[kk], nquad,
1397 &physvals[0], 1);
1398 }
1399
1400 deriv2 = Vmath::Dot(nquad, &(D0->GetPtr())[i], nquad,
1401 &tmp[0], 1);
1402 deriv = tmp[i];
1403 }
1404 else if constexpr (DERIV)
1405 {
1406 DNekMatSharedPtr D0 = m_base[DIR]->GetD();
1407
1408 // take ith row of z and multiply with physvals
1409 deriv = Vmath::Dot(z.size(), &(D0->GetPtr())[i], z.size(),
1410 &physvals[0], 1);
1411 }
1412
1413 return pval;
1414 }
1415
1416 NekDouble tmp = bw[i] / xdiff;
1417 numer1 += tmp * pval;
1418 denom += tmp;
1419
1420 if constexpr (DERIV || DERIV2)
1421 {
1422 NekDouble tmp2 = tmp / xdiff;
1423 numer2 += tmp2 * pval;
1424 numer3 += tmp2;
1425
1426 if constexpr (DERIV2)
1427 {
1428 NekDouble tmp3 = tmp2 / xdiff;
1429 numer4 += tmp3 * pval;
1430 numer5 += tmp3;
1431 }
1432 }
1433 }
1434
1435 if constexpr (DERIV || DERIV2)
1436 {
1437 NekDouble denomdenom = denom * denom;
1438 NekDouble numer1numer3 = numer1 * numer3;
1439
1440 deriv = (numer2 * denom - numer1numer3) / (denomdenom);
1441
1442 if constexpr (DERIV2)
1443 {
1444 deriv2 = (2.0 * numer4 / denom) -
1445 (2.0 * numer5 * numer1) / (denomdenom) -
1446 (2.0 * numer2 * numer3) / (denomdenom) +
1447 (2.0 * numer3 * numer1numer3) / (denomdenom * denom);
1448 }
1449 }
1450
1451 return numer1 / denom;
1452 }
std::vector< double > z(NPUPPER)
std::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:75
T Dot(int n, const T *w, const T *x)
dot product
Definition: Vmath.hpp:761
scalarT< T > abs(scalarT< T > in)
Definition: scalar.hpp:289

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

◆ BaryEvaluateBasis()

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

Definition at line 1466 of file StdExpansion.h.

1467 {
1468 const int nquad = m_base[DIR]->GetNumPoints();
1469 return BaryEvaluate<DIR>(coord,
1470 &(m_base[DIR]->GetBdata())[0] + nquad * mode);
1471 }

References m_base.

◆ BuildInverseTransformationMatrix()

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

Definition at line 1126 of file StdExpansion.h.

1128 {
1129 return v_BuildInverseTransformationMatrix(m_transformationmatrix);
1130 }
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 433 of file StdExpansion.h.

435 {
436 v_BwdTrans(inarray, outarray);
437 }
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 1223 of file StdExpansion.h.

1225 {
1226 v_BwdTrans_SumFac(inarray, outarray);
1227 }
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 662 of file StdExpansion.h.

664 {
665 return v_CalcNumberOfCoefficients(nummodes, modes_offset);
666 }
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 243 of file StdExpansion.cpp.

244{
245 int i;
246 DNekMatSharedPtr returnval;
247
248 switch (mkey.GetMatrixType())
249 {
250 case eInvMass:
251 {
252 StdMatrixKey masskey(eMass, mkey.GetShapeType(), *this,
254 mkey.GetNodalPointsType());
255 DNekMatSharedPtr mmat = GetStdMatrix(masskey);
256
258 *mmat); // Populate standard mass matrix.
259 returnval->Invert();
260 }
261 break;
262 case eInvNBasisTrans:
263 {
264 StdMatrixKey tmpkey(eNBasisTrans, mkey.GetShapeType(), *this,
266 mkey.GetNodalPointsType());
267 DNekMatSharedPtr tmpmat = GetStdMatrix(tmpkey);
269 *tmpmat); // Populate matrix.
270 returnval->Invert();
271 }
272 break;
273 case eBwdMat:
274 {
275 int nq = GetTotPoints();
276 Array<OneD, NekDouble> tmpin(m_ncoeffs);
277 Array<OneD, NekDouble> tmpout(nq);
278
279 returnval =
281 Array<OneD, NekDouble> Bwd_data = returnval->GetPtr();
282
283 StdRegions::StdMatrixKey matkey(StdRegions::eBwdTrans,
284 this->DetShapeType(), *this);
285 DNekMatSharedPtr MatBwdTrans = GetStdMatrix(matkey);
286 Array<OneD, NekDouble> BwdTrans_data = MatBwdTrans->GetPtr();
287
288 for (i = 0; i < m_ncoeffs; ++i)
289 {
290 Array<OneD, NekDouble> tmpinn = BwdTrans_data + nq * i;
291 tmpout = Bwd_data + i;
292
293 Vmath::Vcopy(nq, tmpinn, 1, tmpout, m_ncoeffs);
294 }
295 }
296 break;
297 case eBwdTrans:
298 {
299 int nq = GetTotPoints();
300 Array<OneD, NekDouble> tmpin(m_ncoeffs);
301 Array<OneD, NekDouble> tmpout(nq);
302
303 returnval =
305
306 for (i = 0; i < m_ncoeffs; ++i)
307 {
308 Vmath::Zero(m_ncoeffs, tmpin, 1);
309 tmpin[i] = 1.0;
310
311 BwdTrans_SumFac(tmpin, tmpout);
312
313 Vmath::Vcopy(nq, tmpout.data(), 1,
314 returnval->GetRawPtr() + i * nq, 1);
315 }
316 }
317 break;
318 case eIProductWRTBase:
319 {
320 int nq = GetTotPoints();
321 Array<OneD, NekDouble> tmpin(nq);
322 Array<OneD, NekDouble> tmpout(m_ncoeffs);
323
324 returnval =
326
327 for (i = 0; i < nq; ++i)
328 {
329 Vmath::Zero(nq, tmpin, 1);
330 tmpin[i] = 1.0;
331
332 IProductWRTBase_SumFac(tmpin, tmpout);
333
334 Vmath::Vcopy(m_ncoeffs, tmpout.data(), 1,
335 returnval->GetRawPtr() + i * m_ncoeffs, 1);
336 }
337 }
338 break;
340 {
341 int nq = GetTotPoints();
342 Array<OneD, NekDouble> tmpin(nq);
343 Array<OneD, NekDouble> tmpout(m_ncoeffs);
344
345 returnval =
347
348 for (i = 0; i < nq; ++i)
349 {
350 Vmath::Zero(nq, tmpin, 1);
351 tmpin[i] = 1.0;
352
353 IProductWRTDerivBase_SumFac(0, tmpin, tmpout);
354
355 Vmath::Vcopy(m_ncoeffs, tmpout.data(), 1,
356 returnval->GetRawPtr() + i * m_ncoeffs, 1);
357 }
358 }
359 break;
361 {
362 int nq = GetTotPoints();
363 Array<OneD, NekDouble> tmpin(nq);
364 Array<OneD, NekDouble> tmpout(m_ncoeffs);
365
366 returnval =
368
369 for (i = 0; i < nq; ++i)
370 {
371 Vmath::Zero(nq, tmpin, 1);
372 tmpin[i] = 1.0;
373
374 IProductWRTDerivBase_SumFac(1, tmpin, tmpout);
375
376 Vmath::Vcopy(m_ncoeffs, tmpout.data(), 1,
377 returnval->GetRawPtr() + i * m_ncoeffs, 1);
378 }
379 }
380 break;
382 {
383 int nq = GetTotPoints();
384 Array<OneD, NekDouble> tmpin(nq);
385 Array<OneD, NekDouble> tmpout(m_ncoeffs);
386
387 returnval =
389
390 for (i = 0; i < nq; ++i)
391 {
392 Vmath::Zero(nq, tmpin, 1);
393 tmpin[i] = 1.0;
394
395 IProductWRTDerivBase_SumFac(2, tmpin, tmpout);
396
397 Vmath::Vcopy(m_ncoeffs, tmpout.data(), 1,
398 returnval->GetRawPtr() + i * m_ncoeffs, 1);
399 }
400 }
401 break;
402 case eDerivBase0:
403 {
404 int nq = GetTotPoints();
405 returnval =
407 GenStdMatBwdDeriv(0, returnval);
408 }
409 break;
410 case eDerivBase1:
411 {
412 int nq = GetTotPoints();
413 returnval =
415 GenStdMatBwdDeriv(1, returnval);
416 }
417 break;
418 case eDerivBase2:
419 {
420 int nq = GetTotPoints();
421 returnval =
423 GenStdMatBwdDeriv(2, returnval);
424 }
425 break;
427 {
428 // check to see if equispaced basis
429 int nummodes = m_base[0]->GetNumModes();
430 bool equispaced = true;
431 for (i = 1; i < m_base.size(); ++i)
432 {
433 if (m_base[i]->GetNumModes() != nummodes)
434 {
435 equispaced = false;
436 }
437 }
438
439 ASSERTL0(equispaced,
440 "Currently need to have same num modes in all "
441 "directionmodes to use EquiSpacedToCoeff method");
442
443 int ntot = GetTotPoints();
444 Array<OneD, NekDouble> qmode(ntot);
445 Array<OneD, NekDouble> emode(m_ncoeffs);
446
447 returnval =
449 for (i = 0; i < m_ncoeffs; ++i)
450 {
451 // Get mode at quadrature points
452 FillMode(i, qmode);
453
454 // interpolate to equi spaced
455 PhysInterpToSimplexEquiSpaced(qmode, emode, nummodes);
456
457 // fill matrix
458 Vmath::Vcopy(m_ncoeffs, &emode[0], 1,
459 returnval->GetRawPtr() + i * m_ncoeffs, 1);
460 }
461 // invert matrix
462 returnval->Invert();
463 }
464 break;
465 case eMass:
466 case eHelmholtz:
467 case eLaplacian:
468 case eLaplacian00:
469 case eLaplacian01:
470 case eLaplacian02:
471 case eLaplacian10:
472 case eLaplacian11:
473 case eLaplacian12:
474 case eLaplacian20:
475 case eLaplacian21:
476 case eLaplacian22:
477 case eWeakDeriv0:
478 case eWeakDeriv1:
479 case eWeakDeriv2:
482 case eLinearAdvection:
485 {
486 Array<OneD, NekDouble> tmp(m_ncoeffs);
487 returnval =
489 DNekMat &Mat = *returnval;
490
491 for (i = 0; i < m_ncoeffs; ++i)
492 {
493 Vmath::Zero(m_ncoeffs, tmp, 1);
494 tmp[i] = 1.0;
495
496 GeneralMatrixOp_MatFree(tmp, tmp, mkey);
497
498 Vmath::Vcopy(m_ncoeffs, &tmp[0], 1,
499 &(Mat.GetPtr())[0] + i * m_ncoeffs, 1);
500 }
501 }
502 break;
503 default:
504 {
506 "This type of matrix, " +
507 static_cast<std::string>(
508 MatrixTypeMap[mkey.GetMatrixType()]) +
509 ", can not be created using a general approach");
510 }
511 break;
512 }
513
514 return returnval;
515}
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:208
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:202
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:134
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:500
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:612
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:370
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:139
static ConstFactorMap NullConstFactorMap
Definition: StdRegions.hpp:431
static VarCoeffMap NullVarCoeffMap
Definition: StdRegions.hpp:376
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:50
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.hpp:273
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.hpp:825

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::eLaplacian10, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian20, Nektar::StdRegions::eLaplacian21, Nektar::StdRegions::eLaplacian22, Nektar::StdRegions::eLinearAdvection, 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 1202 of file StdExpansion.h.

1203 {
1204 return v_CreateStdMatrix(mkey);
1205 }
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 172 of file StdExpansion.cpp.

174{
175 DNekBlkMatSharedPtr returnval;
176
177 DNekMatSharedPtr mat = GetStdMatrix(mkey);
178 int nbdry = NumBndryCoeffs(); // also checks to see if this is a boundary
179 // interior decomposed expansion
180 int nint = m_ncoeffs - nbdry;
186
187 int i, j;
188
189 Array<OneD, unsigned int> bmap(nbdry);
190 Array<OneD, unsigned int> imap(nint);
191 GetBoundaryMap(bmap);
192 GetInteriorMap(imap);
193
194 for (i = 0; i < nbdry; ++i)
195 {
196 for (j = 0; j < nbdry; ++j)
197 {
198 (*A)(i, j) = (*mat)(bmap[i], bmap[j]);
199 }
200
201 for (j = 0; j < nint; ++j)
202 {
203 (*B)(i, j) = (*mat)(bmap[i], imap[j]);
204 }
205 }
206
207 for (i = 0; i < nint; ++i)
208 {
209 for (j = 0; j < nbdry; ++j)
210 {
211 (*C)(i, j) = (*mat)(imap[i], bmap[j]);
212 }
213
214 for (j = 0; j < nint; ++j)
215 {
216 (*D)(i, j) = (*mat)(imap[i], imap[j]);
217 }
218 }
219
220 // Calculate static condensed system
221 if (nint)
222 {
223 D->Invert();
224 (*B) = (*B) * (*D);
225 (*A) = (*A) - (*B) * (*C);
226 }
227
228 // set up block matrix system
229 Array<OneD, unsigned int> exp_size(2);
230 exp_size[0] = nbdry;
231 exp_size[1] = nint;
232 returnval =
234
235 returnval->SetBlock(0, 0, A);
236 returnval->SetBlock(0, 1, B);
237 returnval->SetBlock(1, 0, C);
238 returnval->SetBlock(1, 1, D);
239
240 return returnval;
241}
void GetBoundaryMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:678
void GetInteriorMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:683
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 370 of file StdExpansion.h.

371 {
372 return v_DetShapeType();
373 }
virtual LibUtilities::ShapeType v_DetShapeType() const =0

References v_DetShapeType().

Referenced by Nektar::LocalRegions::Expansion3D::AddFaceBoundaryInt(), Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::Expansion3D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), EquiSpacedToCoeffs(), Nektar::MultiRegions::ExpListHomogeneous1D::GenHomogeneous1DBlockMatrix(), Nektar::MultiRegions::ExpListHomogeneous2D::GenHomogeneous2DBlockMatrix(), Nektar::LocalRegions::QuadExp::GetEdgeInterpVals(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::SolverUtils::FileFieldInterpolator::GetFloquetBlockMatrix(), Nektar::LocalRegions::Expansion::GetLocMatrix(), HelmholtzMatrixOp_MatFree_GenericImpl(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), PhysInterpToSimplexEquiSpaced(), Nektar::LocalRegions::Expansion3D::SetFaceToGeomOrientation(), Nektar::MultiRegions::ExpListHomogeneous2D::SetPaddingBase(), Nektar::MultiRegions::PreconditionerLowEnergy::SetupBlockTransformationMatrix(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddFaceNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::NodalTriExp::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::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdExpansion2D::v_GetElmtTraceToTraceMap(), v_GetSimplexEquiSpacedConnectivity(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), Nektar::StdRegions::StdNodalTriExp::v_NodalToModal(), v_PhysEvalFirstDeriv(), and v_PhysEvalFirstSecondDeriv().

◆ DropLocStaticCondMatrix()

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

Definition at line 656 of file StdExpansion.h.

658 {
659 return v_DropLocStaticCondMatrix(mkey);
660 }
virtual void v_DropLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)

References v_DropLocStaticCondMatrix().

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

◆ 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 1669 of file StdExpansion.cpp.

1672{
1674
1675 // inarray has to be consistent with NumModes definition
1676 // There is also a check in GetStdMatrix to see if all
1677 // modes are of the same size
1678 ConstFactorMap cmap;
1679
1680 cmap[eFactorConst] = m_base[0]->GetNumModes();
1681 StdMatrixKey Ikey(eEquiSpacedToCoeffs, shape, *this, cmap);
1682 DNekMatSharedPtr intmat = GetStdMatrix(Ikey);
1683
1684 NekVector<NekDouble> in(m_ncoeffs, inarray, eWrapper);
1685 NekVector<NekDouble> out(m_ncoeffs, outarray, eWrapper);
1686 out = (*intmat) * in;
1687}
std::map< ConstFactorType, NekDouble > ConstFactorMap
Definition: StdRegions.hpp:430

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 181 of file StdExpansion.h.

182 {
183 int returnval = 0;
184
185 for (size_t i = 0; i < m_base.size(); ++i)
186 {
187 returnval = std::max(returnval, m_base[i]->GetNumModes());
188 }
189
190 return returnval;
191 }

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 788 of file StdExpansion.h.

790 {
791 v_ExponentialFilter(array, alpha, exponent, cutoff);
792 }
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 500 of file StdExpansion.h.

501 {
502 v_FillMode(mode, outarray);
503 }
virtual void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray)

References v_FillMode().

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), and Nektar::LocalRegions::Expansion3D::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 1825 of file StdExpansion.h.

1827{
1828 v_FwdTrans(inarray, outarray);
1829}
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::LocalRegions::Expansion3D::GetPhysFaceVarCoeffsFromElement(), 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 446 of file StdExpansion.h.

448 {
449 v_FwdTransBndConstrained(inarray, outarray);
450 }
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 517 of file StdExpansion.cpp.

520{
521 switch (mkey.GetMatrixType())
522 {
523 case eMass:
524 MassMatrixOp(inarray, outarray, mkey);
525 break;
526 case eWeakDeriv0:
527 WeakDerivMatrixOp(0, inarray, outarray, mkey);
528 break;
529 case eWeakDeriv1:
530 WeakDerivMatrixOp(1, inarray, outarray, mkey);
531 break;
532 case eWeakDeriv2:
533 WeakDerivMatrixOp(2, inarray, outarray, mkey);
534 break;
536 WeakDirectionalDerivMatrixOp(inarray, outarray, mkey);
537 break;
539 MassLevelCurvatureMatrixOp(inarray, outarray, mkey);
540 break;
541 case eLinearAdvection:
542 LinearAdvectionMatrixOp(inarray, outarray, mkey);
543 break;
545 LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey,
546 false);
547 break;
549 LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey);
550 break;
551 case eLaplacian:
552 LaplacianMatrixOp(inarray, outarray, mkey);
553 break;
554 case eLaplacian00:
555 LaplacianMatrixOp(0, 0, inarray, outarray, mkey);
556 break;
557 case eLaplacian01:
558 LaplacianMatrixOp(0, 1, inarray, outarray, mkey);
559 break;
560 case eLaplacian02:
561 LaplacianMatrixOp(0, 2, inarray, outarray, mkey);
562 break;
563 case eLaplacian10:
564 LaplacianMatrixOp(1, 0, inarray, outarray, mkey);
565 break;
566 case eLaplacian11:
567 LaplacianMatrixOp(1, 1, inarray, outarray, mkey);
568 break;
569 case eLaplacian12:
570 LaplacianMatrixOp(1, 2, inarray, outarray, mkey);
571 break;
572 case eLaplacian20:
573 LaplacianMatrixOp(2, 0, inarray, outarray, mkey);
574 break;
575 case eLaplacian21:
576 LaplacianMatrixOp(2, 1, inarray, outarray, mkey);
577 break;
578 case eLaplacian22:
579 LaplacianMatrixOp(2, 2, inarray, outarray, mkey);
580 break;
581 case eHelmholtz:
582 HelmholtzMatrixOp(inarray, outarray, mkey);
583 break;
584 default:
586 "This matrix does not have an operator");
587 break;
588 }
589}
void WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:810
void MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:817
void WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:802
void MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:761
void LinearAdvectionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:824
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:768
void LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
Definition: StdExpansion.h:831
void HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:846

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::eLinearAdvection, 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(), LinearAdvectionMatrixOp(), 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 591 of file StdExpansion.cpp.

594{
595 switch (mkey.GetMatrixType())
596 {
597 case eMass:
598 MassMatrixOp_MatFree(inarray, outarray, mkey);
599 break;
600 case eWeakDeriv0:
601 WeakDerivMatrixOp_MatFree(0, inarray, outarray, mkey);
602 break;
603 case eWeakDeriv1:
604 WeakDerivMatrixOp_MatFree(1, inarray, outarray, mkey);
605 break;
606 case eWeakDeriv2:
607 WeakDerivMatrixOp_MatFree(2, inarray, outarray, mkey);
608 break;
610 WeakDirectionalDerivMatrixOp_MatFree(inarray, outarray, mkey);
611 break;
613 MassLevelCurvatureMatrixOp_MatFree(inarray, outarray, mkey);
614 break;
615 case eLinearAdvection:
616 LinearAdvectionMatrixOp_MatFree(inarray, outarray, mkey);
617 break;
620 mkey, false);
621 break;
624 mkey);
625 break;
626 case eLaplacian:
627 LaplacianMatrixOp_MatFree(inarray, outarray, mkey);
628 break;
629 case eLaplacian00:
630 LaplacianMatrixOp_MatFree(0, 0, inarray, outarray, mkey);
631 break;
632 case eLaplacian01:
633 LaplacianMatrixOp_MatFree(0, 1, inarray, outarray, mkey);
634 break;
635 case eLaplacian02:
636 LaplacianMatrixOp_MatFree(0, 2, inarray, outarray, mkey);
637 break;
638 case eLaplacian10:
639 LaplacianMatrixOp_MatFree(1, 0, inarray, outarray, mkey);
640 break;
641 case eLaplacian11:
642 LaplacianMatrixOp_MatFree(1, 1, inarray, outarray, mkey);
643 break;
644 case eLaplacian12:
645 LaplacianMatrixOp_MatFree(1, 2, inarray, outarray, mkey);
646 break;
647 case eLaplacian20:
648 LaplacianMatrixOp_MatFree(2, 0, inarray, outarray, mkey);
649 break;
650 case eLaplacian21:
651 LaplacianMatrixOp_MatFree(2, 1, inarray, outarray, mkey);
652 break;
653 case eLaplacian22:
654 LaplacianMatrixOp_MatFree(2, 2, inarray, outarray, mkey);
655 break;
656 case eHelmholtz:
657 HelmholtzMatrixOp_MatFree(inarray, outarray, mkey);
658 break;
659 default:
661 "This matrix does not have an operator");
662 break;
663 }
664}
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 LinearAdvectionMatrixOp_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::eLinearAdvection, 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(), LinearAdvectionMatrixOp_MatFree(), MassLevelCurvatureMatrixOp_MatFree(), MassMatrixOp_MatFree(), NEKERROR, WeakDerivMatrixOp_MatFree(), and WeakDirectionalDerivMatrixOp_MatFree().

Referenced by CreateGeneralMatrix().

◆ GenMatrix()

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

◆ GenStdMatBwdDeriv()

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

Definition at line 1185 of file StdExpansion.h.

1187 {
1188 v_GenStdMatBwdDeriv(dir, mat);
1189 }
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 100 of file StdExpansion.h.

102 {
103 return (m_base);
104 }

References m_base.

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

◆ 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 112 of file StdExpansion.h.

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

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), and Nektar::StdRegions::StdQuadExp::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 169 of file StdExpansion.h.

170 {
171 ASSERTL1(dir < m_base.size(), "dir is larger than m_numbases");
172 return (m_base[dir]->GetNumModes());
173 }

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion3D::AddFaceBoundaryInt(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), Nektar::LocalRegions::Expansion3D::SetFaceToGeomOrientation(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddFaceNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::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(), Nektar::LocalRegions::Expansion2D::v_TraceNormLen(), and Nektar::LocalRegions::Expansion3D::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 156 of file StdExpansion.h.

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

References ASSERTL1, GetBasisType(), and m_base.

Referenced by GetBasisType(), 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::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPyrExp::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 606 of file StdExpansion.h.

608 {
609 v_GetCoord(Lcoord, coord);
610 }
virtual void v_GetCoord(const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)

References v_GetCoord().

◆ GetCoordim()

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

Definition at line 673 of file StdExpansion.h.

674 {
675 return v_GetCoordim();
676 }

References v_GetCoordim().

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion::ComputeGmatcdotMF(), Nektar::LocalRegions::Expansion::GetMF(), Nektar::LocalRegions::Expansion2D::GetnEdgecdotMF(), Nektar::LocalRegions::Expansion3D::GetnFacecdotMF(), LaplacianMatrixOp_MatFree(), LaplacianMatrixOp_MatFree_GenericImpl(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), LinearAdvectionMatrixOp_MatFree(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), 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::Expansion1D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), and Nektar::LocalRegions::PointExp::v_GetCoords().

◆ 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 588 of file StdExpansion.h.

591 {
592 v_GetCoords(coords_1, coords_2, coords_3);
593 }
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 567 of file StdExpansion.h.

568 {
569 return m_elmt_id;
570 }

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 708 of file StdExpansion.h.

713 {
714 v_GetElmtTraceToTraceMap(tid, maparray, signarray, traceOrient, P, Q);
715 }
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)
@ P
Monomial polynomials .
Definition: BasisType.h:62

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 380 of file StdExpansion.h.

381 {
382 return v_GetLinStdExp();
383 }
virtual std::shared_ptr< StdExpansion > v_GetLinStdExp(void) const

References v_GetLinStdExp().

Referenced by Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix().

◆ GetLocStaticCondMatrix()

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

Definition at line 650 of file StdExpansion.h.

652 {
653 return v_GetLocStaticCondMatrix(mkey);
654 }
virtual DNekScalBlkMatSharedPtr v_GetLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)

References v_GetLocStaticCondMatrix().

Referenced by Nektar::LocalRegions::Expansion2D::CreateMatrix(), and Nektar::LocalRegions::Expansion3D::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 124 of file StdExpansion.h.

125 {
126 return (m_ncoeffs);
127 }

References m_ncoeffs.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LocalRegions::Expansion2D::GetPhysEdgeVarCoeffsFromElement(), Nektar::LocalRegions::Expansion3D::GetPhysFaceVarCoeffsFromElement(), LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion1D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion2D::v_DGDeriv(), Nektar::LocalRegions::Expansion3D::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::Expansion1D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::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 342 of file StdExpansion.h.

343 {
344 return v_GetNodalPointsKey();
345 };
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 91 of file StdExpansion.h.

92 {
93 return m_base.size();
94 }

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 218 of file StdExpansion.h.

219 {
220 ASSERTL1(dir < m_base.size() || dir == 0,
221 "dir is larger than m_numbases");
222 return (m_base.size() > 0 ? m_base[dir]->GetNumPoints() : 1);
223 }

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), 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::Expansion1D::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

◆ 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 232 of file StdExpansion.h.

233 {
234 return m_base[dir]->GetZ();
235 }

References m_base.

◆ GetPointsKeys()

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

Definition at line 1115 of file StdExpansion.h.

1116 {
1118 p.reserve(m_base.size());
1119 for (size_t i = 0; i < m_base.size(); ++i)
1120 {
1121 p.push_back(m_base[i]->GetPointsKey());
1122 }
1123 return p;
1124 }
std::vector< PointsKey > PointsKeyVector
Definition: Points.h:231

References m_base, and CellMLToNektar.cellml_metadata::p.

Referenced by Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::Expansion3D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), 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::NodalTriExp::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::Expansion1D::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::NodalTriExp::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 205 of file StdExpansion.h.

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

References ASSERTL1, GetPointsType(), and m_base.

Referenced by GetPointsType(), 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 385 of file StdExpansion.h.

386 {
387 return v_GetShapeDimension();
388 }
virtual int v_GetShapeDimension() const =0

References v_GetShapeDimension().

Referenced by 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 1154 of file StdExpansion.h.

1156 {
1157 v_GetSimplexEquiSpacedConnectivity(conn, standard);
1158 }
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 375 of file StdExpansion.h.

376 {
377 return v_GetStdExp();
378 }
virtual std::shared_ptr< StdExpansion > v_GetStdExp() const

References v_GetStdExp().

◆ GetStdMatrix()

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

Definition at line 612 of file StdExpansion.h.

613 {
614 return m_stdMatrixManager[mkey];
615 }

References m_stdMatrixManager.

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion2D::CreateMatrix(), Nektar::LocalRegions::Expansion3D::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), CreateStdStaticCondMatrix(), EquiSpacedToCoeffs(), Nektar::MultiRegions::ExpListHomogeneous1D::GenHomogeneous1DBlockMatrix(), Nektar::MultiRegions::ExpListHomogeneous2D::GenHomogeneous2DBlockMatrix(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::SolverUtils::FileFieldInterpolator::GetFloquetBlockMatrix(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTetExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTetExp::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(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), and Nektar::StdRegions::StdNodalTriExp::v_NodalToModal().

◆ GetStdStaticCondMatrix()

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

Definition at line 617 of file StdExpansion.h.

618 {
619 return m_stdStaticCondMatrixManager[mkey];
620 }

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 134 of file StdExpansion.h.

135 {
136 int nqtot = 1;
137
138 for (size_t i = 0; i < m_base.size(); ++i)
139 {
140 nqtot *= m_base[i]->GetNumPoints();
141 }
142
143 return nqtot;
144 }

References m_base.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), CreateGeneralMatrix(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), H1(), L2(), LaplacianMatrixOp_MatFree(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), LinearAdvectionMatrixOp_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::LocalRegions::Expansion3D::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_PhysEvalFirstDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysEvalFirstDeriv(), Nektar::StdRegions::StdTetExp::v_PhysEvalFirstDeriv(), Nektar::StdRegions::StdTriExp::v_PhysEvalFirstDeriv(), 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,
bool  UseGLL = false 
) 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
UseGlluse GLL quadrature points in Trace Expansion (defaulted to false)
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 301 of file StdExpansion.h.

303 {
304 return v_GetTraceBasisKey(i, k, UseGLL);
305 }
virtual const LibUtilities::BasisKey v_GetTraceBasisKey(const int i, const int k, bool UseGLL=false) const

References v_GetTraceBasisKey().

Referenced by 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::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenTraceExp(), and Nektar::LocalRegions::Expansion3D::v_GenTraceExp().

◆ GetTraceCoeffMap()

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

Definition at line 702 of file StdExpansion.h.

704 {
705 v_GetTraceCoeffMap(traceid, maparray);
706 }
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 717 of file StdExpansion.h.

721 {
722 v_GetTraceInteriorToElementMap(tid, maparray, signarray, traceOrient);
723 }
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::Expansion3D::GetInverseBoundaryMaps(), Nektar::LocalRegions::Expansion2D::GetTraceInverseBoundaryMap(), Nektar::LocalRegions::Expansion3D::GetTraceInverseBoundaryMap(), and Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap().

◆ GetTraceIntNcoeffs()

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

◆ GetTraceNcoeffs()

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

This function returns the number of expansion coefficients belonging to the i-th trace.

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

Parameters
ispecifies which trace
Returns
returns the number of expansion coefficients belonging to the i-th trace

Definition at line 261 of file StdExpansion.h.

262 {
263 return v_GetTraceNcoeffs(i);
264 }
virtual int v_GetTraceNcoeffs(const int i) const =0

References v_GetTraceNcoeffs().

Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), Nektar::LocalRegions::Expansion2D::GetTraceInverseBoundaryMap(), Nektar::LocalRegions::Expansion3D::SetFaceToGeomOrientation(), Nektar::LocalRegions::Expansion2D::SetTraceToGeomOrientation(), Nektar::LocalRegions::Expansion3D::SetTraceToGeomOrientation(), Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPyrExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdNodalTriExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdQuadExp::v_GetTraceInteriorToElementMap(), Nektar::StdRegions::StdTriExp::v_GetTraceInteriorToElementMap(), and Nektar::StdRegions::StdNodalTriExp::v_GetTraceToElementMap().

◆ GetTraceNumModes()

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

Definition at line 725 of file StdExpansion.h.

728 {
729 v_GetTraceNumModes(tid, numModes0, numModes1, traceOrient);
730 }
virtual void v_GetTraceNumModes(const int fid, int &numModes0, int &numModes1, Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)

References v_GetTraceNumModes().

Referenced by Nektar::LocalRegions::Expansion3D::GetTraceInverseBoundaryMap().

◆ 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 281 of file StdExpansion.h.

282 {
283 return v_GetTraceNumPoints(i);
284 }
virtual int v_GetTraceNumPoints(const int i) const =0

References v_GetTraceNumPoints().

Referenced by Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), and Nektar::LocalRegions::Expansion3D::v_GetTracePhysVals().

◆ 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 320 of file StdExpansion.h.

321 {
322 return v_GetTracePointsKey(i, k);
323 }
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 139 of file StdExpansion.cpp.

141{
142 int i;
143 NekDouble val;
144 int ntot = GetTotPoints();
145 int coordim = v_GetCoordim();
146 Array<OneD, NekDouble> wsp(3 * ntot);
147 Array<OneD, NekDouble> wsp_deriv = wsp + ntot;
148 Array<OneD, NekDouble> sum = wsp_deriv + ntot;
149
150 if (sol == NullNekDouble1DArray)
151 {
152 Vmath::Vcopy(ntot, phys, 1, wsp, 1);
153 Vmath::Vmul(ntot, phys, 1, phys, 1, sum, 1);
154 }
155 else
156 {
157 Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
158 Vmath::Vmul(ntot, wsp, 1, wsp, 1, sum, 1);
159 }
160
161 for (i = 0; i < coordim; ++i)
162 {
163 v_PhysDeriv(i, wsp, wsp_deriv);
164 Vmath::Vvtvp(ntot, wsp_deriv, 1, wsp_deriv, 1, sum, 1, sum, 1);
165 }
166
167 val = sqrt(v_Integral(sum));
168
169 return val;
170}
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.hpp:72
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.hpp:366
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.hpp:220
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:285

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 846 of file StdExpansion.h.

849 {
850 v_HelmholtzMatrixOp(inarray, outarray, mkey);
851 }
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 1304 of file StdExpansion.h.

1307 {
1308 v_HelmholtzMatrixOp_MatFree(inarray, outarray, mkey);
1309 }
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 986 of file StdExpansion.cpp.

989{
990 NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
991 Array<OneD, NekDouble> tmp(m_ncoeffs);
992 StdMatrixKey mkeymass(eMass, DetShapeType(), *this);
993 StdMatrixKey mkeylap(eLaplacian, DetShapeType(), *this,
994 mkey.GetConstFactors(), mkey.GetVarCoeffs(),
995 mkey.GetNodalPointsType());
996
997 MassMatrixOp(inarray, tmp, mkeymass);
998 LaplacianMatrixOp(inarray, outarray, mkeylap);
999
1000 Blas::Daxpy(m_ncoeffs, lambda, tmp, 1, outarray, 1);
1001}
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:135

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 482 of file StdExpansion.h.

483 {
484 return v_Integral(inarray);
485 }

References v_Integral().

Referenced by Nektar::LocalRegions::Expansion1D::v_VectorFlux().

◆ 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 543 of file StdExpansion.h.

546 {
547 v_IProductWRTBase(base, inarray, outarray, coll_check);
548 }
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 537 of file StdExpansion.h.

539 {
540 v_IProductWRTBase(inarray, outarray);
541 }

References v_IProductWRTBase().

Referenced by Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::NodalTriExp::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::Expansion3D::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 1178 of file StdExpansion.h.

1181 {
1182 v_IProductWRTBase_SumFac(inarray, outarray, multiplybyweights);
1183 }
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 550 of file StdExpansion.h.

553 {
554 v_IProductWRTDerivBase(dir, inarray, outarray);
555 }
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 1229 of file StdExpansion.h.

1232 {
1233 v_IProductWRTDerivBase_SumFac(dir, inarray, outarray);
1234 }
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 557 of file StdExpansion.h.

561 {
562 v_IProductWRTDirectionalDerivBase(direction, inarray, outarray);
563 }
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 1236 of file StdExpansion.h.

1240 {
1241 v_IProductWRTDirectionalDerivBase_SumFac(direction, inarray, outarray);
1242 }
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 395 of file StdExpansion.h.

396 {
398 }

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 117 of file StdExpansion.cpp.

119{
120 NekDouble val;
121 int ntot = GetTotPoints();
122 Array<OneD, NekDouble> wsp(ntot);
123
124 if (sol.size() == 0)
125 {
126 Vmath::Vmul(ntot, phys, 1, phys, 1, wsp, 1);
127 }
128 else
129 {
130 Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
131 Vmath::Vmul(ntot, wsp, 1, wsp, 1, wsp, 1);
132 }
133
134 val = v_Integral(wsp);
135
136 return (val < 0.0) ? 0.0 : sqrt(val);
137}

References GetTotPoints(), 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 768 of file StdExpansion.h.

771 {
772 v_LaplacianMatrixOp(inarray, outarray, mkey);
773 }
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 794 of file StdExpansion.h.

798 {
799 v_LaplacianMatrixOp(k1, k2, inarray, outarray, mkey);
800 }

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 683 of file StdExpansion.cpp.

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

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::eVarCoeffD10, Nektar::StdRegions::eVarCoeffD11, Nektar::StdRegions::eVarCoeffD12, Nektar::StdRegions::eVarCoeffD20, Nektar::StdRegions::eVarCoeffD21, 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 780 of file StdExpansion.cpp.

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

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::eLaplacian10, Nektar::StdRegions::eLaplacian11, Nektar::StdRegions::eLaplacian12, Nektar::StdRegions::eLaplacian20, Nektar::StdRegions::eLaplacian21, 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

◆ 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 831 of file StdExpansion.h.

835 {
836 v_LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey,
837 addDiffusionTerm);
838 }
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 916 of file StdExpansion.cpp.

920{
921 int i, ndir = 0;
922
923 VarCoeffType varcoefftypes[] = {eVarCoeffVelX, eVarCoeffVelY,
925 // Count advection velocities
926 for (auto &x : varcoefftypes)
927 {
928 if (mkey.HasVarCoeff(x))
929 {
930 ndir++;
931 }
932 }
933
934 ASSERTL0(ndir, "Must define at least one advection velocity");
935 ASSERTL1(ndir <= GetCoordim(),
936 "Number of constants is larger than coordinate dimensions");
937
938 NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
939 int totpts = GetTotPoints();
940 Array<OneD, NekDouble> tmp(3 * totpts);
941 Array<OneD, NekDouble> tmp_deriv = tmp + totpts;
942 Array<OneD, NekDouble> tmp_adv = tmp_deriv + totpts;
943
944 v_BwdTrans(inarray, tmp); // transform this mode \phi_i into PhysSpace
945
946 // calculate advection u dx + v dy + ..
947 Vmath::Zero(totpts, tmp_adv, 1);
948 for (i = 0; i < ndir; ++i)
949 {
950 v_PhysDeriv(i, tmp, tmp_deriv);
951 Vmath::Vvtvp(totpts, mkey.GetVarCoeff(varcoefftypes[i]), 1, tmp_deriv,
952 1, tmp_adv, 1, tmp_adv, 1);
953 }
954
955 // Add reaction term if lambda != 0.0
956 if (lambda)
957 {
958 // Add mass varcoeff
959 if (mkey.HasVarCoeff(eVarCoeffMass))
960 {
961 Vmath::Vmul(totpts, mkey.GetVarCoeff(eVarCoeffMass), 1, tmp, 1, tmp,
962 1);
963 }
964
965 Vmath::Svtvp(totpts, -lambda, tmp, 1, tmp_adv, 1, tmp_adv, 1);
966 }
967
968 // Create mass matrix = Advection - Reaction
969 v_IProductWRTBase(tmp_adv,
970 outarray); // Create mass matrix of Advection - Reaction
971
972 // Add Laplacian matrix
973 if (addDiffusionTerm)
974 {
975 Array<OneD, NekDouble> lap(m_ncoeffs);
976 StdMatrixKey mkeylap(eLaplacian, DetShapeType(), *this,
977 mkey.GetConstFactors(), mkey.GetVarCoeffs(),
978 mkey.GetNodalPointsType());
979 LaplacianMatrixOp(inarray, lap, mkeylap);
980
981 Vmath::Vadd(m_ncoeffs, lap, 1, outarray, 1, outarray,
982 1); // += Laplacian
983 }
984}
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.hpp:396

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

Referenced by GeneralMatrixOp_MatFree(), and v_LinearAdvectionDiffusionReactionMatrixOp().

◆ LinearAdvectionMatrixOp()

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

Definition at line 824 of file StdExpansion.h.

827 {
828 v_LinearAdvectionMatrixOp(inarray, outarray, mkey);
829 }
virtual void v_LinearAdvectionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References v_LinearAdvectionMatrixOp().

Referenced by GeneralMatrixOp().

◆ LinearAdvectionMatrixOp_MatFree()

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

Definition at line 876 of file StdExpansion.cpp.

879{
880 int i, ndir = 0;
881
882 VarCoeffType varcoefftypes[] = {eVarCoeffVelX, eVarCoeffVelY,
884 // Count advection velocities
885 for (auto &x : varcoefftypes)
886 {
887 if (mkey.HasVarCoeff(x))
888 {
889 ndir++;
890 }
891 }
892
893 ASSERTL0(ndir, "Must define at least one advection velocity");
894 ASSERTL1(ndir <= GetCoordim(),
895 "Number of constants is larger than coordinate dimensions");
896
897 int totpts = GetTotPoints();
898 Array<OneD, NekDouble> tmp(3 * totpts);
899 Array<OneD, NekDouble> tmp_deriv = tmp + totpts;
900 Array<OneD, NekDouble> tmp_adv = tmp_deriv + totpts;
901
902 v_BwdTrans(inarray, tmp); // transform to PhysSpace
903
904 // Evaluate advection (u dx + v dy + w dz)
905 Vmath::Zero(totpts, tmp_adv, 1);
906 for (i = 0; i < ndir; ++i)
907 {
908 v_PhysDeriv(i, tmp, tmp_deriv);
909 Vmath::Vvtvp(totpts, mkey.GetVarCoeff(varcoefftypes[i]), 1, tmp_deriv,
910 1, tmp_adv, 1, tmp_adv, 1);
911 }
912
913 v_IProductWRTBase(tmp_adv, outarray);
914}

References ASSERTL0, ASSERTL1, Nektar::StdRegions::eVarCoeffVelX, Nektar::StdRegions::eVarCoeffVelY, Nektar::StdRegions::eVarCoeffVelZ, GetCoordim(), GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::HasVarCoeff(), v_BwdTrans(), v_IProductWRTBase(), v_PhysDeriv(), Vmath::Vvtvp(), and Vmath::Zero().

Referenced by GeneralMatrixOp_MatFree(), and v_LinearAdvectionMatrixOp().

◆ 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 96 of file StdExpansion.cpp.

98{
99 NekDouble val;
100 int ntot = GetTotPoints();
101 Array<OneD, NekDouble> wsp(ntot);
102
103 if (sol == NullNekDouble1DArray)
104 {
105 Vmath::Vabs(ntot, phys, 1, wsp, 1);
106 }
107 else
108 {
109 Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
110 Vmath::Vabs(ntot, wsp, 1, wsp, 1);
111 }
112
113 val = Vmath::Vamax(ntot, wsp, 1);
114 return val;
115}
void Vabs(int n, const T *x, const int incx, T *y, const int incy)
vabs: y = |x|
Definition: Vmath.hpp:352
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.hpp:685

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 1021 of file StdExpansion.h.

1023 {
1024 v_LocCollapsedToLocCoord(eta, xi);
1025 }
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 817 of file StdExpansion.h.

820 {
821 v_MassLevelCurvatureMatrixOp(inarray, outarray, mkey);
822 }
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 869 of file StdExpansion.cpp.

873{
874}

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 732 of file StdExpansion.h.

734 {
735 v_MultiplyByQuadratureMetric(inarray, outarray);
736 }
virtual void v_MultiplyByQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_MultiplyByQuadratureMetric().

Referenced by 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::NodalTriExp::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::NodalTriExp::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 738 of file StdExpansion.h.

741 {
742 v_MultiplyByStdQuadratureMetric(inarray, outarray);
743 }
virtual void v_MultiplyByStdQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_MultiplyByStdQuadratureMetric().

◆ NodalToModal()

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

Definition at line 400 of file StdExpansion.h.

402 {
403 v_NodalToModal(inarray, outarray);
404 }
virtual void v_NodalToModal(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_NodalToModal().

◆ NormVectorIProductWRTBase() [1/4]

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

Definition at line 643 of file StdExpansion.h.

646 {
647 v_NormVectorIProductWRTBase(Fvec, outarray);
648 }
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 635 of file StdExpansion.h.

639 {
640 v_NormVectorIProductWRTBase(Fx, Fy, Fz, outarray);
641 }

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 628 of file StdExpansion.h.

631 {
632 v_NormVectorIProductWRTBase(Fx, Fy, outarray);
633 }

References v_NormVectorIProductWRTBase().

◆ NumBndryCoeffs()

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

Definition at line 325 of file StdExpansion.h.

326 {
327 return v_NumBndryCoeffs();
328 }
virtual int v_NumBndryCoeffs() const =0

References v_NumBndryCoeffs().

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), Nektar::LocalRegions::Expansion3D::GetEdgeInverseBoundaryMap(), Nektar::LocalRegions::Expansion3D::GetInverseBoundaryMaps(), Nektar::LocalRegions::Expansion2D::GetTraceInverseBoundaryMap(), Nektar::LocalRegions::Expansion3D::GetTraceInverseBoundaryMap(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion1D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_BuildInverseTransformationMatrix(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), Nektar::LocalRegions::Expansion3D::v_BuildTransformationMatrix(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::Expansion1D::v_GenMatrix(), 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 866 of file StdExpansion.h.

868 {
869 v_PhysDeriv(dir, inarray, outarray);
870 }

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 878 of file StdExpansion.h.

880 {
881 v_PhysDeriv_n(inarray, out_dn);
882 }
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 872 of file StdExpansion.h.

874 {
875 v_PhysDeriv_s(inarray, out_ds);
876 }
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 884 of file StdExpansion.h.

887 {
888 v_PhysDirectionalDeriv(inarray, direction, outarray);
889 }
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 928 of file StdExpansion.h.

930 {
931 return v_PhysEvaluate(coords, physvals);
932 }
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_PhysEvalFirstDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysEvalFirstDeriv(), Nektar::StdRegions::StdTetExp::v_PhysEvalFirstDeriv(), and Nektar::StdRegions::StdTriExp::v_PhysEvalFirstDeriv().

◆ 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 983 of file StdExpansion.h.

985 {
986 return v_PhysEvaluateInterp(I, physvals);
987 }
virtual NekDouble v_PhysEvaluateInterp(const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals)

References v_PhysEvaluateInterp().

◆ 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 945 of file StdExpansion.h.

949 {
950 return v_PhysEvalFirstDeriv(coord, inarray, firstOrderDerivs);
951 }
virtual NekDouble v_PhysEvalFirstDeriv(const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs)

References v_PhysEvalFirstDeriv().

◆ 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 953 of file StdExpansion.h.

958 {
959 return v_PhysEvalFirstSecondDeriv(coord, inarray, firstOrderDerivs,
960 secondOrderDerivs);
961 }
virtual NekDouble v_PhysEvalFirstSecondDeriv(const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs, std::array< NekDouble, 6 > &secondOrderDerivs)

References v_PhysEvalFirstSecondDeriv().

◆ 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 1001 of file StdExpansion.h.

1003 {
1004 return v_PhysEvaluateBasis(coords, mode);
1005 }
virtual NekDouble v_PhysEvaluateBasis(const Array< OneD, const NekDouble > &coords, int mode)

References v_PhysEvaluateBasis().

◆ PhysInterp()

void Nektar::StdRegions::StdExpansion::PhysInterp ( std::shared_ptr< StdExpansion fromExp,
const Array< OneD, const NekDouble > &  fromData,
Array< OneD, NekDouble > &  toData 
)
inline

interpolate from one set of quadrature points available from FromExp to the set of quadrature points in the current expansion. If the points are the same this routine will just copy the data

Definition at line 1031 of file StdExpansion.h.

1034 {
1035 v_PhysInterp(fromExp, fromData, toData);
1036 }
virtual void v_PhysInterp(std::shared_ptr< StdExpansion > FromExp, const Array< OneD, const NekDouble > &fromData, Array< OneD, NekDouble > &toData)

References v_PhysInterp().

◆ 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 1621 of file StdExpansion.cpp.

1624{
1626 DNekMatSharedPtr intmat;
1627
1628 int nqtot = GetTotPoints();
1629 int np = 0;
1630 if (npset == -1) // use values from basis num points()
1631 {
1632 int nqbase;
1633 for (int i = 0; i < m_base.size(); ++i)
1634 {
1635 nqbase = m_base[i]->GetNumPoints();
1636 np = std::max(np, nqbase);
1637 }
1638
1639 StdMatrixKey Ikey(ePhysInterpToEquiSpaced, shape, *this);
1640 intmat = GetStdMatrix(Ikey);
1641 }
1642 else
1643 {
1644 np = npset;
1645
1646 ConstFactorMap cmap;
1647 cmap[eFactorConst] = np;
1648 StdMatrixKey Ikey(ePhysInterpToEquiSpaced, shape, *this, cmap);
1649 intmat = GetStdMatrix(Ikey);
1650 }
1651
1652 NekVector<NekDouble> in(nqtot, inarray, eWrapper);
1653 NekVector<NekDouble> out(
1654 LibUtilities::GetNumberOfCoefficients(shape, np, np, np), outarray,
1655 eWrapper);
1656 out = (*intmat) * in;
1657}
int GetNumberOfCoefficients(ShapeType shape, std::vector< unsigned int > &modes, int offset=0)
Definition: ShapeType.hpp:305

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 775 of file StdExpansion.h.

778 {
779 v_ReduceOrderCoeffs(numMin, inarray, outarray);
780 }
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 574 of file StdExpansion.h.

575 {
576 m_elmt_id = id;
577 }

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 891 of file StdExpansion.h.

895 {
896 v_StdPhysDeriv(inarray, out_d0, out_d1, out_d2);
897 }
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 899 of file StdExpansion.h.

902 {
903 v_StdPhysDeriv(dir, inarray, outarray);
904 }

References v_StdPhysDeriv().

◆ StdPhysEvaluate()

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

Definition at line 1004 of file StdExpansion.cpp.

1007{
1008 return v_StdPhysEvaluate(Lcoord, physvals);
1009}
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 782 of file StdExpansion.h.

784 {
785 v_SVVLaplacianFilter(array, mkey);
786 }
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 1614 of file StdExpansion.cpp.

1616{
1617 NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1618 return NullDNekMatSharedPtr;
1619}
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

◆ 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

◆ 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::StdHexExp, Nektar::StdRegions::StdQuadExp, and Nektar::StdRegions::StdSegExp.

Definition at line 1506 of file StdExpansion.cpp.

1511{
1512 ASSERTL0(false, "This function is not defined in StdExpansion.");
1513}

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

◆ 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::StdExpansion2D, and Nektar::StdRegions::StdExpansion3D.

Definition at line 1323 of file StdExpansion.h.

1325 {
1326 NEKERROR(ErrorUtil::efatal, "not defined");
1327 }

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 1355 of file StdExpansion.cpp.

1356{
1357 return GetShapeDimension();
1358}

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

◆ 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::HexExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::TetExp, and Nektar::LocalRegions::TriExp.

Definition at line 1131 of file StdExpansion.cpp.

1132{
1133 ASSERTL0(false, "This method is not defined for this expansion");
1134 StdExpansionSharedPtr returnval;
1135 return returnval;
1136}
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::StdNodalPrismExp, Nektar::StdRegions::StdNodalTetExp, and Nektar::StdRegions::StdNodalTriExp.

Definition at line 1117 of file StdExpansion.cpp.

1118{
1119 ASSERTL0(false, "This function is not valid or not defined");
1120
1122}
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::LocalRegions::PrismExp, Nektar::StdRegions::StdHexExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdTetExp, and Nektar::StdRegions::StdTriExp.

Definition at line 1659 of file StdExpansion.cpp.

1661{
1663 "GetSimplexEquiSpacedConnectivity not"
1664 " implemented for " +
1665 static_cast<std::string>(
1667}
const char *const ShapeTypeMap[SIZE_ShapeType]
Definition: ShapeType.hpp:75

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::HexExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::TetExp, and Nektar::LocalRegions::TriExp.

Definition at line 1124 of file StdExpansion.cpp.

1125{
1126 ASSERTL0(false, "This method is not defined for this expansion");
1127 StdExpansionSharedPtr returnval;
1128 return returnval;
1129}

References ASSERTL0.

Referenced by GetStdExp().

◆ v_GetTraceBasisKey()

const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::v_GetTraceBasisKey ( const int  i,
const int  k,
bool  UseGLL = false 
) const
privatevirtual

◆ 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

◆ 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::StdHexExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdPyrExp, and Nektar::StdRegions::StdTetExp.

Definition at line 1415 of file StdExpansion.cpp.

1419{
1420 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1421}

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::StdHexExp, Nektar::StdRegions::StdPrismExp, and Nektar::StdRegions::StdTetExp.

Definition at line 1110 of file StdExpansion.cpp.

1112{
1113 ASSERTL0(false, "This function is not valid or not defined");
1115}

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::StdExpansion2D, Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdSegExp, and Nektar::StdRegions::StdExpansion3D.

Definition at line 1379 of file StdExpansion.cpp.

1385{
1386 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1387}

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

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 1423 of file StdExpansion.cpp.

1427{
1428 NEKERROR(ErrorUtil::efatal, "Method does not exist for "
1429 "this shape or library");
1430}

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::StdExpansion2D, and Nektar::StdRegions::StdExpansion3D.

Definition at line 1605 of file StdExpansion.cpp.

1608{
1609 // If this function is not reimplemented on shape level, the function
1610 // below will be called
1611 HelmholtzMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1612}
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

◆ 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::LocalRegions::SegExp, Nektar::StdRegions::StdPointExp, and Nektar::StdRegions::StdSegExp.

Definition at line 1563 of file StdExpansion.h.

1568 {
1569 NEKERROR(ErrorUtil::efatal, "StdExpansion::v_IProductWRTBase has no "
1570 "(and should have no) implementation");
1571 }

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::HexExp, and Nektar::LocalRegions::TriExp.

Definition at line 1160 of file StdExpansion.cpp.

1164{
1165 NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1166}

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::HexExp, and Nektar::LocalRegions::TriExp.

Definition at line 1465 of file StdExpansion.cpp.

1469{
1470 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1471}

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

Referenced by IProductWRTDirectionalDerivBase_SumFac().

◆ v_IsBoundaryInteriorExpansion()

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

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

Definition at line 1138 of file StdExpansion.cpp.

1139{
1140 ASSERTL0(false, "This function has not been defined for this expansion");
1141 return false;
1142}

References ASSERTL0.

Referenced by IsBoundaryInteriorExpansion().

◆ v_IsNodalNonTensorialExp()

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

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

Definition at line 1144 of file StdExpansion.cpp.

1145{
1146 return false;
1147}

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

◆ 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::StdExpansion2D, and Nektar::StdRegions::StdExpansion3D.

Definition at line 1588 of file StdExpansion.cpp.

1591{
1592 // If this function is not reimplemented on shape level, the function
1593 // below will be called
1594 LaplacianMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1595}
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

◆ 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 1568 of file StdExpansion.cpp.

1572{
1573 // If this function is not reimplemented on shape level, the function
1574 // below will be called
1576 addDiffusionTerm);
1577}

References LinearAdvectionDiffusionReactionMatrixOp_MatFree().

Referenced by LinearAdvectionDiffusionReactionMatrixOp().

◆ v_LinearAdvectionMatrixOp()

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

Definition at line 1559 of file StdExpansion.cpp.

1562{
1563 // If this function is not reimplemented on shape level, the function
1564 // below will be called
1565 LinearAdvectionMatrixOp_MatFree(inarray, outarray, mkey);
1566}

References LinearAdvectionMatrixOp_MatFree().

Referenced by LinearAdvectionMatrixOp().

◆ v_LocCollapsedToLocCoord()

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

◆ v_LocCoordToLocCollapsed()

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

◆ 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::HexExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::TriExp.

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 MassLevelCurvatureMatrixOp_MatFree(inarray, outarray, mkey);
1557}

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::StdRegions::StdHexExp, Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdTriExp, Nektar::LocalRegions::HexExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1481 of file StdExpansion.cpp.

1484{
1485 // If this function is not reimplemented on shape level, the function
1486 // below will be called
1487 MassMatrixOp_MatFree(inarray, outarray, mkey);
1488}

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 1432 of file StdExpansion.cpp.

1435{
1436 v_MultiplyByStdQuadratureMetric(inarray, outarray);
1437}

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_NodalToModal()

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

Reimplemented in Nektar::StdRegions::StdNodalTriExp.

Definition at line 1538 of file StdExpansion.h.

1540 {};

Referenced by NodalToModal().

◆ 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::Expansion3D, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::SegExp, and Nektar::LocalRegions::TriExp.

Definition at line 1043 of file StdExpansion.cpp.

1046{
1047 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1048}

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 1019 of file StdExpansion.cpp.

1022{
1023 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1024}

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 1026 of file StdExpansion.cpp.

1030{
1031 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1032}

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::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1034 of file StdExpansion.cpp.

1039{
1040 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1041}

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

◆ 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 1211 of file StdExpansion.cpp.

1214{
1215 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1216 "local expansions");
1217}

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 1204 of file StdExpansion.cpp.

1207{
1208 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1209 "local expansions");
1210}

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::HexExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1238 of file StdExpansion.cpp.

1242{
1243 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1244 "specific element types");
1245}

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

Referenced by PhysDirectionalDeriv(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ v_PhysEvalFirstDeriv()

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

◆ v_PhysEvalFirstSecondDeriv()

NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvalFirstSecondDeriv ( 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::LocalRegions::SegExp, and Nektar::StdRegions::StdSegExp.

Definition at line 1301 of file StdExpansion.cpp.

1306{
1308 "PhysEvaluate second order derivative method does not exist"
1309 " for this shape type: " +
1310 static_cast<std::string>(
1312 return 0;
1313}

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

Referenced by PhysEvaluate().

◆ v_PhysEvaluate()

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

◆ v_PhysEvaluateBasis()

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

◆ v_PhysEvaluateInterp()

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

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

Definition at line 1280 of file StdExpansion.cpp.

1283{
1284 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1285 return 0;
1286}

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

Referenced by PhysEvaluate().

◆ v_PhysInterp()

void Nektar::StdRegions::StdExpansion::v_PhysInterp ( std::shared_ptr< StdExpansion FromExp,
const Array< OneD, const NekDouble > &  fromData,
Array< OneD, NekDouble > &  toData 
)
privatevirtual

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

Definition at line 1094 of file StdExpansion.cpp.

1098{
1099 ASSERTL0(false, "This function is not valid or not defined");
1100}

References ASSERTL0.

Referenced by PhysInterp().

◆ v_ReduceOrderCoeffs()

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

◆ v_SetCoeffsToOrientation()

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

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

Definition at line 1063 of file StdExpansion.cpp.

1067{
1068 NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1069}

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

◆ v_StdPhysDeriv() [2/2]

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

◆ v_StdPhysEvaluate()

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

◆ 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::StdRegions::StdHexExp, Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdTriExp, Nektar::LocalRegions::HexExp, Nektar::LocalRegions::NodalTriExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1532 of file StdExpansion.cpp.

1535{
1536 // If this function is not reimplemented on shape level, the function
1537 // below will be called
1538 WeakDerivMatrixOp_MatFree(i, inarray, outarray, mkey);
1539}

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::HexExp, Nektar::LocalRegions::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1541 of file StdExpansion.cpp.

1544{
1545 // If this function is not reimplemented on shape level, the function
1546 // below will be called
1547 WeakDirectionalDerivMatrixOp_MatFree(inarray, outarray, mkey);
1548}

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 802 of file StdExpansion.h.

806 {
807 v_WeakDerivMatrixOp(i, inarray, outarray, mkey);
808 }
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 810 of file StdExpansion.h.

813 {
814 v_WeakDirectionalDerivMatrixOp(inarray, outarray, mkey);
815 }
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 845 of file StdExpansion.cpp.

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

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 1193 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(), 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(), Nektar::LocalRegions::Expansion3D::GetnFacecdotMF(), GetNumBases(), GetNumPoints(), GetPoints(), GetPointsKeys(), GetPointsType(), GetTotPoints(), Nektar::StdRegions::StdExpansion2D::Integral(), 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::Expansion3D::v_AddFaceNormBoundaryInt(), 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::HexExp::v_CreateStdMatrix(), Nektar::LocalRegions::NodalTriExp::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::NodalTriExp::v_GetTracePhysVals(), Nektar::LocalRegions::QuadExp::v_GetTracePhysVals(), Nektar::LocalRegions::TriExp::v_GetTracePhysVals(), Nektar::LocalRegions::Expansion3D::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::NodalTriExp::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::NodalTriExp::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::NodalTriExp::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::NodalTriExp::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::StdHexExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTetExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTriExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdQuadExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdExpansion2D::v_PhysEvaluateInterp(), Nektar::StdRegions::StdExpansion3D::v_PhysEvaluateInterp(), Nektar::StdRegions::StdExpansion1D::v_PhysInterp(), Nektar::StdRegions::StdExpansion2D::v_PhysInterp(), Nektar::StdRegions::StdExpansion3D::v_PhysInterp(), 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(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), and Nektar::LocalRegions::Expansion1D::v_VectorFlux().

◆ m_elmt_id

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

Definition at line 1194 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 1195 of file StdExpansion.h.

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), EquiSpacedToCoeffs(), Nektar::LocalRegions::TetExp::GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), GetNcoeffs(), HelmholtzMatrixOp_MatFree_GenericImpl(), 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::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::NodalTriExp::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::NodalTriExp::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::LocalRegions::Expansion3D::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::NodalTriExp::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::StdNodalTriExp::v_NodalToModal(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::Expansion1D::v_TraceNormLen(), 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