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

The base class for all shapes. More...

#include <StdExpansion.h>

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

Public Member Functions

 StdExpansion ()
 Default Constructor. More...
 
 StdExpansion (const int numcoeffs, const int numbases, const LibUtilities::BasisKey &Ba=LibUtilities::NullBasisKey, const LibUtilities::BasisKey &Bb=LibUtilities::NullBasisKey, const LibUtilities::BasisKey &Bc=LibUtilities::NullBasisKey)
 Constructor. More...
 
 StdExpansion (const StdExpansion &T)
 Copy Constructor. More...
 
virtual ~StdExpansion ()
 Destructor. More...
 
int GetNumBases () const
 This function returns the number of 1D bases used in the expansion. More...
 
const Array< OneD, const LibUtilities::BasisSharedPtr > & GetBase () const
 This function gets the shared point to basis. More...
 
const LibUtilities::BasisSharedPtrGetBasis (int dir) const
 This function gets the shared point to basis in the dir direction. More...
 
int GetNcoeffs (void) const
 This function returns the total number of coefficients used in the expansion. More...
 
int GetTotPoints () const
 This function returns the total number of quadrature points used in the element. More...
 
LibUtilities::BasisType GetBasisType (const int dir) const
 This function returns the type of basis used in the dir direction. More...
 
int GetBasisNumModes (const int dir) const
 This function returns the number of expansion modes in the dir direction. More...
 
int EvalBasisNumModesMax (void) const
 This function returns the maximum number of expansion modes over all local directions. More...
 
LibUtilities::PointsType GetPointsType (const int dir) const
 This function returns the type of quadrature points used in the dir direction. More...
 
int GetNumPoints (const int dir) const
 This function returns the number of quadrature points in the dir direction. More...
 
const Array< OneD, const NekDouble > & GetPoints (const int dir) const
 This function returns a pointer to the array containing the quadrature points in dir direction. More...
 
int GetNverts () const
 This function returns the number of vertices of the expansion domain. More...
 
int GetTraceNcoeffs (const int i) const
 This function returns the number of expansion coefficients belonging to the i-th trace. More...
 
int GetTraceIntNcoeffs (const int i) const
 
int GetTraceNumPoints (const int i) const
 This function returns the number of quadrature points belonging to the i-th trace. More...
 
const LibUtilities::BasisKey GetTraceBasisKey (const int i, int k=-1) const
 This function returns the basis key belonging to the i-th trace. More...
 
LibUtilities::PointsKey GetTracePointsKey (const int i, int k=-1) const
 This function returns the basis key belonging to the i-th trace. More...
 
int NumBndryCoeffs (void) const
 
int NumDGBndryCoeffs (void) const
 
const LibUtilities::PointsKey GetNodalPointsKey () const
 This function returns the type of expansion Nodal point type if defined. More...
 
int GetNtraces () const
 Returns the number of trace elements connected to this element. More...
 
LibUtilities::ShapeType DetShapeType () const
 This function returns the shape of the expansion domain. More...
 
std::shared_ptr< StdExpansionGetStdExp () const
 
std::shared_ptr< StdExpansionGetLinStdExp (void) const
 
int GetShapeDimension () const
 
bool IsBoundaryInteriorExpansion () const
 
bool IsNodalNonTensorialExp ()
 
void BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 This function performs the Backward transformation from coefficient space to physical space. More...
 
void FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 This function performs the Forward transformation from physical space to coefficient space. More...
 
void FwdTransBndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
NekDouble Integral (const Array< OneD, const NekDouble > &inarray)
 This function integrates the specified function over the domain. More...
 
void FillMode (const int mode, Array< OneD, NekDouble > &outarray)
 This function fills the array outarray with the mode-th mode of the expansion. More...
 
void IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 this function calculates the inner product of a given function f with the different modes of the expansion More...
 
void IProductWRTBase (const Array< OneD, const NekDouble > &base, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int coll_check)
 
void IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
int GetElmtId ()
 Get the element id of this expansion when used in a list by returning value of m_elmt_id. More...
 
void SetElmtId (const int id)
 Set the element id of this expansion when used in a list by returning value of m_elmt_id. More...
 
void GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2=NullNekDouble1DArray, Array< OneD, NekDouble > &coords_3=NullNekDouble1DArray)
 this function returns the physical coordinates of the quadrature points of the expansion More...
 
void GetCoord (const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)
 given the coordinates of a point of the element in the local collapsed coordinate system, this function calculates the physical coordinates of the point More...
 
DNekMatSharedPtr GetStdMatrix (const StdMatrixKey &mkey)
 
DNekBlkMatSharedPtr GetStdStaticCondMatrix (const StdMatrixKey &mkey)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray)
 
void NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray)
 
DNekScalBlkMatSharedPtr GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
void DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
int CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset)
 
NekDouble StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
 
int GetCoordim ()
 
void GetBoundaryMap (Array< OneD, unsigned int > &outarray)
 
void GetInteriorMap (Array< OneD, unsigned int > &outarray)
 
int GetVertexMap (const int localVertexId, bool useCoeffPacking=false)
 
void GetTraceToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
 
void GetTraceCoeffMap (const unsigned int traceid, Array< OneD, unsigned int > &maparray)
 
void GetElmtTraceToTraceMap (const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
 
void GetTraceInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards)
 
void GetTraceNumModes (const int tid, int &numModes0, int &numModes1, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2)
 
void MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
DNekMatSharedPtr CreateGeneralMatrix (const StdMatrixKey &mkey)
 this function generates the mass matrix \(\mathbf{M}[i][j] = \int \phi_i(\mathbf{x}) \phi_j(\mathbf{x}) d\mathbf{x}\) More...
 
void GeneralMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
 
void ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff)
 
void LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void 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...
 
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 void v_SetCoeffsToOrientation (Array< OneD, NekDouble > &coeffs, StdRegions::Orientation dir)
 
virtual NekDouble v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
 
virtual void v_GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat)
 
virtual void v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv, NekDouble &deriv2)
 This function performs the barycentric interpolation of the polynomial stored in coord at a point physvals using barycentric interpolation weights in direction. More...
 
template<int DIR>
NekDouble BaryEvaluateBasis (const NekDouble &coord, const int &mode)
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals)
 Helper function to pass an unused value by reference into BaryEvaluate. More...
 
template<int DIR, bool DERIV = false, bool DERIV2 = false>
NekDouble BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv)
 

Protected Attributes

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

Private Member Functions

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

Constructor & Destructor Documentation

◆ StdExpansion() [1/3]

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

Default Constructor.

Default constructor.

Definition at line 46 of file StdExpansion.cpp.

47{
48}

◆ StdExpansion() [2/3]

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

Constructor.

Definition at line 50 of file StdExpansion.cpp.

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

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

◆ StdExpansion() [3/3]

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

Copy Constructor.

Definition at line 87 of file StdExpansion.cpp.

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

◆ ~StdExpansion()

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

Destructor.

Definition at line 96 of file StdExpansion.cpp.

97{
98}

Member Function Documentation

◆ as()

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

Definition at line 1159 of file StdExpansion.h.

1160 {
1161 return std::dynamic_pointer_cast<T>(shared_from_this());
1162 }

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

1477 {
1478 NekDouble unusedValue = 0.0;
1479 return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, unusedValue,
1480 unusedValue);
1481 }
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 1484 of file StdExpansion.h.

1486 {
1487 NekDouble unusedValue = 0.0;
1488 return BaryEvaluate<DIR, DERIV, DERIV2>(coord, physvals, deriv,
1489 unusedValue);
1490 }

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

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

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

1457 {
1458 const int nquad = m_base[DIR]->GetNumPoints();
1459 return BaryEvaluate<DIR>(coord,
1460 &(m_base[DIR]->GetBdata())[0] + nquad * mode);
1461 }

References m_base.

◆ BuildInverseTransformationMatrix()

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

Definition at line 1112 of file StdExpansion.h.

1114 {
1115 return v_BuildInverseTransformationMatrix(m_transformationmatrix);
1116 }
virtual DNekMatSharedPtr v_BuildInverseTransformationMatrix(const DNekScalMatSharedPtr &m_transformationmatrix)

References v_BuildInverseTransformationMatrix().

◆ BwdTrans()

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

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

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

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

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

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

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

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

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

Definition at line 430 of file StdExpansion.h.

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

References v_BwdTrans().

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

◆ BwdTrans_SumFac()

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

Definition at line 1209 of file StdExpansion.h.

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

References v_BwdTrans_SumFac().

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

◆ CalcNumberOfCoefficients()

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

Definition at line 659 of file StdExpansion.h.

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

References v_CalcNumberOfCoefficients().

◆ CreateGeneralMatrix()

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

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

Returns
returns the mass matrix

Definition at line 247 of file StdExpansion.cpp.

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

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

1189 {
1190 return v_CreateStdMatrix(mkey);
1191 }
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 176 of file StdExpansion.cpp.

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

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

◆ DetShapeType()

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

This function returns the shape of the expansion domain.

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

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

Returns
returns the shape of the expansion domain

Definition at line 373 of file StdExpansion.h.

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

References v_DetShapeType().

Referenced by Nektar::LocalRegions::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::LocalRegions::NodalTriExp::FwdTrans(), Nektar::MultiRegions::ExpListHomogeneous1D::GenHomogeneous1DBlockMatrix(), Nektar::MultiRegions::ExpListHomogeneous2D::GenHomogeneous2DBlockMatrix(), Nektar::LocalRegions::QuadExp::GetEdgeInterpVals(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::LocalRegions::Expansion::GetLocMatrix(), HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), PhysInterpToSimplexEquiSpaced(), Nektar::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::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(), and v_PhysEvaluate().

◆ DropLocStaticCondMatrix()

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

Definition at line 653 of file StdExpansion.h.

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

References v_DropLocStaticCondMatrix().

◆ EquiSpacedToCoeffs()

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

This function performs a projection/interpolation from the equispaced points sometimes used in post-processing onto the coefficient space.

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

Definition at line 1679 of file StdExpansion.cpp.

1682{
1684
1685 // inarray has to be consistent with NumModes definition
1686 // There is also a check in GetStdMatrix to see if all
1687 // modes are of the same size
1688 ConstFactorMap cmap;
1689
1690 cmap[eFactorConst] = m_base[0]->GetNumModes();
1691 StdMatrixKey Ikey(eEquiSpacedToCoeffs, shape, *this, cmap);
1692 DNekMatSharedPtr intmat = GetStdMatrix(Ikey);
1693
1694 NekVector<NekDouble> in(m_ncoeffs, inarray, eWrapper);
1695 NekVector<NekDouble> out(m_ncoeffs, outarray, eWrapper);
1696 out = (*intmat) * in;
1697}
std::map< ConstFactorType, NekDouble > ConstFactorMap
Definition: StdRegions.hpp:408

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

◆ EvalBasisNumModesMax()

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

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

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

Definition at line 187 of file StdExpansion.h.

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

References m_base.

◆ ExponentialFilter()

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

Definition at line 785 of file StdExpansion.h.

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

References v_ExponentialFilter().

◆ FillMode()

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

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

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

The requested mode is evaluated at the quadrature points

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

Definition at line 497 of file StdExpansion.h.

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

References v_FillMode().

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

1808{
1809 v_FwdTrans(inarray, outarray);
1810}
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 443 of file StdExpansion.h.

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

References v_FwdTransBndConstrained().

◆ GeneralMatrixOp()

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

Definition at line 521 of file StdExpansion.cpp.

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

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

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

1173 {
1174 v_GenStdMatBwdDeriv(dir, mat);
1175 }
virtual void v_GenStdMatBwdDeriv(const int dir, DNekMatSharedPtr &mat)

References v_GenStdMatBwdDeriv().

Referenced by CreateGeneralMatrix().

◆ GetBase()

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

This function gets the shared point to basis.

Returns
returns the shared pointer to the bases

Definition at line 106 of file StdExpansion.h.

108 {
109 return (m_base);
110 }

References m_base.

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

◆ GetBasis()

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

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

Returns
returns the shared pointer to the basis in directin dir

Definition at line 118 of file StdExpansion.h.

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

References ASSERTL1, and m_base.

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

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

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::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 162 of file StdExpansion.h.

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

References ASSERTL1, 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::StdPyrExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTetExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTriExp::v_PhysEvaluateBasis(), Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::TriExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdSegExp::v_ReduceOrderCoeffs(), and Nektar::StdRegions::StdTriExp::v_ReduceOrderCoeffs().

◆ GetBoundaryMap()

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

◆ GetCoord()

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

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

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

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

Definition at line 603 of file StdExpansion.h.

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

References v_GetCoord().

◆ GetCoordim()

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

Definition at line 670 of file StdExpansion.h.

671 {
672 return v_GetCoordim();
673 }

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

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

References v_GetCoords().

Referenced by main().

◆ GetElmtId()

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

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

Definition at line 564 of file StdExpansion.h.

565 {
566 return m_elmt_id;
567 }

References m_elmt_id.

◆ GetElmtTraceToTraceMap()

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

Definition at line 705 of file StdExpansion.h.

710 {
711 v_GetElmtTraceToTraceMap(tid, maparray, signarray, traceOrient, P, Q);
712 }
virtual void v_GetElmtTraceToTraceMap(const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1)
@ P
Monomial polynomials .
Definition: BasisType.h:64

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

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

◆ GetInteriorMap()

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

◆ GetLinStdExp()

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

Definition at line 383 of file StdExpansion.h.

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

References v_GetLinStdExp().

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

◆ GetLocStaticCondMatrix()

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

Definition at line 647 of file StdExpansion.h.

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

References v_GetLocStaticCondMatrix().

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

131 {
132 return (m_ncoeffs);
133 }

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

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

References v_GetNodalPointsKey().

◆ GetNtraces()

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

◆ GetNumBases()

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

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

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

Definition at line 97 of file StdExpansion.h.

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

References m_base.

◆ GetNumPoints()

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

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

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

Definition at line 224 of file StdExpansion.h.

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

References ASSERTL1, and m_base.

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

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

References m_base.

◆ GetPointsKeys()

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

Definition at line 1101 of file StdExpansion.h.

1102 {
1104 p.reserve(m_base.size());
1105 for (size_t i = 0; i < m_base.size(); ++i)
1106 {
1107 p.push_back(m_base[i]->GetPointsKey());
1108 }
1109 return p;
1110 }
std::vector< PointsKey > PointsKeyVector
Definition: Points.h:236

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::NodalTriExp::Integral(), Nektar::LocalRegions::NodalTriExp::PhysDeriv(), Nektar::LocalRegions::HexExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::NodalTriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PrismExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PyrExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::QuadExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TetExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::NodalTriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::LocalRegions::SegExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::HexExp::v_Integral(), Nektar::LocalRegions::PrismExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_Integral(), Nektar::LocalRegions::QuadExp::v_Integral(), Nektar::LocalRegions::SegExp::v_Integral(), Nektar::LocalRegions::TetExp::v_Integral(), Nektar::LocalRegions::TriExp::v_Integral(), Nektar::LocalRegions::SegExp::v_IProductWRTBase(), Nektar::LocalRegions::SegExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_NormalTraceDerivFactors(), Nektar::LocalRegions::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::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv_n(), Nektar::LocalRegions::SegExp::v_PhysDeriv_s(), Nektar::LocalRegions::HexExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::TriExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PyrExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), and Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter().

◆ GetPointsType()

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

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

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

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

Definition at line 211 of file StdExpansion.h.

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

References ASSERTL1, 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 388 of file StdExpansion.h.

389 {
390 return v_GetShapeDimension();
391 }
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 1140 of file StdExpansion.h.

1142 {
1143 v_GetSimplexEquiSpacedConnectivity(conn, standard);
1144 }
virtual void v_GetSimplexEquiSpacedConnectivity(Array< OneD, int > &conn, bool standard=true)

References v_GetSimplexEquiSpacedConnectivity().

◆ GetStdExp()

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

Definition at line 378 of file StdExpansion.h.

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

References v_GetStdExp().

◆ GetStdMatrix()

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

Definition at line 609 of file StdExpansion.h.

610 {
611 return m_stdMatrixManager[mkey];
612 }

References m_stdMatrixManager.

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

◆ GetStdStaticCondMatrix()

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

Definition at line 614 of file StdExpansion.h.

615 {
616 return m_stdStaticCondMatrixManager[mkey];
617 }

References m_stdStaticCondMatrixManager.

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

◆ GetTotPoints()

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

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

Returns
returns the total number of quadrature points

Definition at line 140 of file StdExpansion.h.

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

References m_base.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), CreateGeneralMatrix(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), Nektar::CFLtester::GetStdVelocity(), H1(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), L2(), LaplacianMatrixOp_MatFree(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), 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_PhysEvaluate(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluate(), Nektar::StdRegions::StdTetExp::v_PhysEvaluate(), Nektar::StdRegions::StdTriExp::v_PhysEvaluate(), Nektar::FieldUtils::ProcessJacobianEnergy::v_Process(), Nektar::FieldUtils::ProcessScalGrad::v_Process(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PyrExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::Expansion2D::v_VectorFlux(), WeakDerivMatrixOp_MatFree(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ GetTraceBasisKey()

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

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

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

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

Definition at line 305 of file StdExpansion.h.

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

References v_GetTraceBasisKey().

Referenced by Nektar::LocalRegions::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 699 of file StdExpansion.h.

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

References v_GetTraceCoeffMap().

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

◆ GetTraceInteriorToElementMap()

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

Definition at line 714 of file StdExpansion.h.

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

References v_GetTraceInteriorToElementMap().

Referenced by Nektar::LocalRegions::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 267 of file StdExpansion.h.

268 {
269 return v_GetTraceNcoeffs(i);
270 }
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 722 of file StdExpansion.h.

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

References v_GetTraceNumModes().

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

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

References v_GetTraceNumPoints().

Referenced by Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), 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 323 of file StdExpansion.h.

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

References v_GetTracePointsKey().

◆ GetTraceToElementMap()

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

◆ GetVertexMap()

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

◆ H1()

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

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

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

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

Definition at line 143 of file StdExpansion.cpp.

145{
146 int i;
147 NekDouble val;
148 int ntot = GetTotPoints();
149 int coordim = v_GetCoordim();
150 Array<OneD, NekDouble> wsp(3 * ntot);
151 Array<OneD, NekDouble> wsp_deriv = wsp + ntot;
152 Array<OneD, NekDouble> sum = wsp_deriv + ntot;
153
154 if (sol == NullNekDouble1DArray)
155 {
156 Vmath::Vcopy(ntot, phys, 1, wsp, 1);
157 Vmath::Vmul(ntot, phys, 1, phys, 1, sum, 1);
158 }
159 else
160 {
161 Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
162 Vmath::Vmul(ntot, wsp, 1, wsp, 1, sum, 1);
163 }
164
165 for (i = 0; i < coordim; ++i)
166 {
167 v_PhysDeriv(i, wsp, wsp_deriv);
168 Vmath::Vvtvp(ntot, wsp_deriv, 1, wsp_deriv, 1, sum, 1, sum, 1);
169 }
170
171 val = sqrt(v_Integral(sum));
172
173 return val;
174}
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
virtual void v_PhysDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2, Array< OneD, NekDouble > &out_d3)
Calculate the derivative of the physical points.
static Array< OneD, NekDouble > NullNekDouble1DArray
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
Definition: Vmath.cpp:207
void Vvtvp(int n, const T *w, const int incw, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
vvtvp (vector times vector plus vector): z = w*x + y
Definition: Vmath.cpp:569
void Vsub(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Subtract vector z = x-y.
Definition: Vmath.cpp:414
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:294

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

◆ HelmholtzMatrixOp()

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

Definition at line 843 of file StdExpansion.h.

846 {
847 v_HelmholtzMatrixOp(inarray, outarray, mkey);
848 }
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 1290 of file StdExpansion.h.

1293 {
1294 v_HelmholtzMatrixOp_MatFree(inarray, outarray, mkey);
1295 }
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 983 of file StdExpansion.cpp.

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

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

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

◆ Integral()

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

This function integrates the specified function over the domain.

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

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

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

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

Outputs:

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

Definition at line 479 of file StdExpansion.h.

480 {
481 return v_Integral(inarray);
482 }

References v_Integral().

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

543 {
544 v_IProductWRTBase(base, inarray, outarray, coll_check);
545 }
virtual void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Calculates the inner product of a given function f with the different modes of the expansion.

References v_IProductWRTBase().

◆ IProductWRTBase() [2/2]

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

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

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

This is equivalent to the numerical evaluation of

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

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

where

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

which can be implemented as

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

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

Definition at line 534 of file StdExpansion.h.

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

References v_IProductWRTBase().

Referenced by Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::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 1164 of file StdExpansion.h.

1167 {
1168 v_IProductWRTBase_SumFac(inarray, outarray, multiplybyweights);
1169 }
virtual void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)

References v_IProductWRTBase_SumFac().

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

◆ IProductWRTDerivBase()

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

Definition at line 547 of file StdExpansion.h.

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

References v_IProductWRTDerivBase().

◆ IProductWRTDerivBase_SumFac()

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

Definition at line 1215 of file StdExpansion.h.

1218 {
1219 v_IProductWRTDerivBase_SumFac(dir, inarray, outarray);
1220 }
virtual void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDerivBase_SumFac().

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

◆ IProductWRTDirectionalDerivBase()

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

Definition at line 554 of file StdExpansion.h.

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

References v_IProductWRTDirectionalDerivBase().

◆ IProductWRTDirectionalDerivBase_SumFac()

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

Definition at line 1222 of file StdExpansion.h.

1226 {
1227 v_IProductWRTDirectionalDerivBase_SumFac(direction, inarray, outarray);
1228 }
virtual void v_IProductWRTDirectionalDerivBase_SumFac(const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)

References v_IProductWRTDirectionalDerivBase_SumFac().

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

◆ IsBoundaryInteriorExpansion()

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

◆ IsNodalNonTensorialExp()

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

Definition at line 398 of file StdExpansion.h.

399 {
401 }

References v_IsNodalNonTensorialExp().

◆ L2()

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

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

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

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

Definition at line 121 of file StdExpansion.cpp.

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

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

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

References v_LaplacianMatrixOp().

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

◆ LaplacianMatrixOp() [2/2]

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

Definition at line 791 of file StdExpansion.h.

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

References v_LaplacianMatrixOp().

◆ LaplacianMatrixOp_MatFree() [1/2]

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

◆ LaplacianMatrixOp_MatFree() [2/2]

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

Definition at line 687 of file StdExpansion.cpp.

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

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

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

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

832 {
833 v_LinearAdvectionDiffusionReactionMatrixOp(inarray, outarray, mkey,
834 addDiffusionTerm);
835 }
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 920 of file StdExpansion.cpp.

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

References ASSERTL0, ASSERTL1, DetShapeType(), Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eVarCoeffVelX, Nektar::StdRegions::eVarCoeffVelY, Nektar::StdRegions::eVarCoeffVelZ, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), Nektar::StdRegions::StdMatrixKey::GetConstFactors(), GetCoordim(), Nektar::StdRegions::StdMatrixKey::GetNodalPointsType(), 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::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 821 of file StdExpansion.h.

824 {
825 v_LinearAdvectionMatrixOp(inarray, outarray, mkey);
826 }
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 880 of file StdExpansion.cpp.

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

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

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

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

1020 {
1021 v_LocCollapsedToLocCoord(eta, xi);
1022 }
virtual void v_LocCollapsedToLocCoord(const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi)

References v_LocCollapsedToLocCoord().

◆ LocCoordToLocCollapsed()

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

◆ MassLevelCurvatureMatrixOp()

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

Definition at line 814 of file StdExpansion.h.

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

References v_MassLevelCurvatureMatrixOp().

Referenced by GeneralMatrixOp().

◆ MassLevelCurvatureMatrixOp_MatFree()

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

Definition at line 873 of file StdExpansion.cpp.

876{
877 boost::ignore_unused(inarray, outarray, mkey);
878}

Referenced by GeneralMatrixOp_MatFree(), and v_MassLevelCurvatureMatrixOp().

◆ MassMatrixOp()

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

◆ MassMatrixOp_MatFree()

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

◆ MultiplyByQuadratureMetric()

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

Definition at line 729 of file StdExpansion.h.

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

References v_MultiplyByQuadratureMetric().

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

◆ MultiplyByStdQuadratureMetric()

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

Definition at line 735 of file StdExpansion.h.

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

References v_MultiplyByStdQuadratureMetric().

◆ NormVectorIProductWRTBase() [1/4]

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

Definition at line 640 of file StdExpansion.h.

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

References v_NormVectorIProductWRTBase().

◆ NormVectorIProductWRTBase() [2/4]

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

◆ NormVectorIProductWRTBase() [3/4]

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

Definition at line 632 of file StdExpansion.h.

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

References v_NormVectorIProductWRTBase().

◆ NormVectorIProductWRTBase() [4/4]

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

Definition at line 625 of file StdExpansion.h.

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

References v_NormVectorIProductWRTBase().

◆ NumBndryCoeffs()

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

Definition at line 328 of file StdExpansion.h.

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

References v_NumBndryCoeffs().

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

865 {
866 v_PhysDeriv(dir, inarray, outarray);
867 }

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

877 {
878 v_PhysDeriv_n(inarray, out_dn);
879 }
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 869 of file StdExpansion.h.

871 {
872 v_PhysDeriv_s(inarray, out_ds);
873 }
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 881 of file StdExpansion.h.

884 {
885 v_PhysDirectionalDeriv(inarray, direction, outarray);
886 }
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 925 of file StdExpansion.h.

927 {
928 return v_PhysEvaluate(coords, physvals);
929 }
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)

References v_PhysEvaluate().

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

◆ PhysEvaluate() [2/4]

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

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

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

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

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

Definition at line 980 of file StdExpansion.h.

982 {
983 return v_PhysEvaluate(I, physvals);
984 }

References v_PhysEvaluate().

◆ PhysEvaluate() [3/4]

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

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

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

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

Definition at line 942 of file StdExpansion.h.

946 {
947 return v_PhysEvaluate(coord, inarray, firstOrderDerivs);
948 }

References v_PhysEvaluate().

◆ PhysEvaluate() [4/4]

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

Definition at line 950 of file StdExpansion.h.

955 {
956 return v_PhysEvaluate(coord, inarray, firstOrderDerivs,
957 secondOrderDerivs);
958 }

References v_PhysEvaluate().

◆ PhysEvaluateBasis()

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

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

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

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

Definition at line 998 of file StdExpansion.h.

1000 {
1001 return v_PhysEvaluateBasis(coords, mode);
1002 }
virtual NekDouble v_PhysEvaluateBasis(const Array< OneD, const NekDouble > &coords, int mode)

References v_PhysEvaluateBasis().

◆ PhysInterpToSimplexEquiSpaced()

void Nektar::StdRegions::StdExpansion::PhysInterpToSimplexEquiSpaced ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
int  npset = -1 
)

This function performs an interpolation from the physical space points provided at input into an array of equispaced points which are not the collapsed coordinate. So for a tetrahedron you will only get a tetrahedral number of values.

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

Definition at line 1630 of file StdExpansion.cpp.

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

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

Referenced by CreateGeneralMatrix().

◆ ReduceOrderCoeffs()

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

Definition at line 772 of file StdExpansion.h.

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

References v_ReduceOrderCoeffs().

◆ SetElmtId()

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

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

Definition at line 571 of file StdExpansion.h.

572 {
573 m_elmt_id = id;
574 }

References m_elmt_id.

◆ StdPhysDeriv() [1/2]

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

Definition at line 888 of file StdExpansion.h.

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

899 {
900 v_StdPhysDeriv(dir, inarray, outarray);
901 }

References v_StdPhysDeriv().

◆ StdPhysEvaluate()

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

Definition at line 1001 of file StdExpansion.cpp.

1004{
1005 return v_StdPhysEvaluate(Lcoord, physvals);
1006}
virtual NekDouble v_StdPhysEvaluate(const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)

References v_StdPhysEvaluate().

◆ SVVLaplacianFilter()

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

Definition at line 779 of file StdExpansion.h.

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

References v_SVVLaplacianFilter().

Referenced by LaplacianMatrixOp_MatFree().

◆ v_BuildInverseTransformationMatrix()

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

Reimplemented in Nektar::LocalRegions::Expansion3D.

Definition at line 1622 of file StdExpansion.cpp.

1624{
1625 boost::ignore_unused(m_transformationmatrix);
1626 NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1627 return NullDNekMatSharedPtr;
1628}
static DNekMatSharedPtr NullDNekMatSharedPtr
Definition: NekTypeDefs.hpp:83

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

Referenced by BuildInverseTransformationMatrix().

◆ v_BwdTrans()

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

◆ v_BwdTrans_SumFac()

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

◆ v_CalcNumberOfCoefficients()

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

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

Definition at line 1008 of file StdExpansion.cpp.

1010{
1011 boost::ignore_unused(nummodes, modes_offset);
1012 NEKERROR(ErrorUtil::efatal, "This function is not defined for this class");
1013 return 0;
1014}

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

Referenced by CalcNumberOfCoefficients().

◆ v_CreateStdMatrix()

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

◆ v_DetShapeType()

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

◆ v_DropLocStaticCondMatrix()

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

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

Definition at line 1056 of file StdExpansion.cpp.

1058{
1059 boost::ignore_unused(mkey);
1060 NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1061}

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

Referenced by DropLocStaticCondMatrix().

◆ v_ExponentialFilter()

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

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

Definition at line 1514 of file StdExpansion.cpp.

1518{
1519 boost::ignore_unused(array, alpha, exponent, cutoff);
1520 ASSERTL0(false, "This function is not defined in StdExpansion.");
1521}

References ASSERTL0.

Referenced by ExponentialFilter().

◆ v_FillMode()

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

◆ v_FwdTrans()

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

◆ v_FwdTransBndConstrained()

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

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

Definition at line 1173 of file StdExpansion.cpp.

1176{
1177 boost::ignore_unused(inarray, outarray);
1178 NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1179}

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

Referenced by FwdTransBndConstrained().

◆ v_GenMatrix()

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

◆ v_GenStdMatBwdDeriv()

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

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

Definition at line 1312 of file StdExpansion.h.

1314 {
1315 boost::ignore_unused(dir, mat);
1316 NEKERROR(ErrorUtil::efatal, "not defined");
1317 }

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

1364{
1365 return GetShapeDimension();
1366}

References GetShapeDimension().

Referenced by GetCoordim(), and H1().

◆ v_GetCoords()

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

◆ v_GetElmtTraceToTraceMap()

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

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

Definition at line 1403 of file StdExpansion.cpp.

1408{
1409 boost::ignore_unused(tid, maparray, signarray, traceOrient, P, Q);
1410 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1411}

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

Referenced by GetElmtTraceToTraceMap().

◆ v_GetInteriorMap()

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

◆ v_GetLinStdExp()

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

Reimplemented in Nektar::LocalRegions::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 1132 of file StdExpansion.cpp.

1133{
1134 ASSERTL0(false, "This method is not defined for this expansion");
1135 StdExpansionSharedPtr returnval;
1136 return returnval;
1137}
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 1118 of file StdExpansion.cpp.

1119{
1120 ASSERTL0(false, "This function is not valid or not defined");
1121
1123}
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 1668 of file StdExpansion.cpp.

1670{
1671 boost::ignore_unused(conn, standard);
1673 "GetSimplexEquiSpacedConnectivity not"
1674 " implemented for " +
1675 static_cast<std::string>(
1677}
const char *const ShapeTypeMap[SIZE_ShapeType]
Definition: ShapeType.hpp:79

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

Referenced by GetSimplexEquiSpacedConnectivity().

◆ v_GetStdExp()

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

Reimplemented in Nektar::LocalRegions::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 1125 of file StdExpansion.cpp.

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

References ASSERTL0.

Referenced by GetStdExp().

◆ v_GetTraceBasisKey()

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

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

Definition at line 1102 of file StdExpansion.cpp.

1104{
1105 boost::ignore_unused(i, k);
1106 ASSERTL0(false, "This function is not valid or not defined");
1108}

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

Referenced by GetTraceBasisKey().

◆ v_GetTraceCoeffMap()

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

◆ v_GetTraceInteriorToElementMap()

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

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

Definition at line 1413 of file StdExpansion.cpp.

1416{
1417 boost::ignore_unused(tid, maparray, signarray, traceOrient);
1418 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1419}

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

Referenced by GetTraceInteriorToElementMap().

◆ v_GetTraceIntNcoeffs()

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

◆ v_GetTraceNcoeffs()

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

◆ v_GetTraceNumModes()

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

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

Definition at line 1421 of file StdExpansion.cpp.

1423{
1424 boost::ignore_unused(tid, traceOrient, numModes0, numModes1);
1425 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1426}

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 boost::ignore_unused(i, j);
1114 ASSERTL0(false, "This function is not valid or not defined");
1116}

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

1391{
1392 boost::ignore_unused(tid, maparray, signarray, traceOrient, P, Q);
1393 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1394}

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

Referenced by GetTraceToElementMap().

◆ v_GetVertexMap()

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

◆ v_GetVertexPhysVals()

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

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1428 of file StdExpansion.cpp.

1431{
1432 boost::ignore_unused(vertex, inarray, outarray);
1433 NEKERROR(ErrorUtil::efatal, "Method does not exist for "
1434 "this shape or library");
1435}

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

1616{
1617 // If this function is not reimplemented on shape level, the function
1618 // below will be called
1619 HelmholtzMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1620}
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 1549 of file StdExpansion.h.

1553 {
1554 boost::ignore_unused(base, inarray, outarray, coll_check);
1555 NEKERROR(ErrorUtil::efatal, "StdExpansion::v_IProductWRTBase has no "
1556 "(and should have no) implementation");
1557 }

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

1165{
1166 boost::ignore_unused(direction, inarray, outarray);
1167 NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1168}

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

1476{
1477 boost::ignore_unused(direction, inarray, outarray);
1478 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1479}

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

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

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

1146{
1147 return false;
1148}

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

1599{
1600 // If this function is not reimplemented on shape level, the function
1601 // below will be called
1602 LaplacianMatrixOp_MatFree_GenericImpl(inarray, outarray, mkey);
1603}
void LaplacianMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)

References LaplacianMatrixOp_MatFree_GenericImpl().

Referenced by LaplacianMatrixOp_MatFree().

◆ v_LaplacianMatrixOp_MatFree_Kernel()

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

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

Definition at line 1605 of file StdExpansion.cpp.

1608{
1609 boost::ignore_unused(inarray, outarray, wsp);
1610 ASSERTL0(false, "Not implemented.");
1611}

References ASSERTL0.

Referenced by LaplacianMatrixOp_MatFree_Kernel().

◆ v_LinearAdvectionDiffusionReactionMatrixOp()

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

Definition at line 1576 of file StdExpansion.cpp.

1580{
1581 // If this function is not reimplemented on shape level, the function
1582 // below will be called
1584 addDiffusionTerm);
1585}

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

1570{
1571 // If this function is not reimplemented on shape level, the function
1572 // below will be called
1573 LinearAdvectionMatrixOp_MatFree(inarray, outarray, mkey);
1574}

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

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

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

1492{
1493 // If this function is not reimplemented on shape level, the function
1494 // below will be called
1495 MassMatrixOp_MatFree(inarray, outarray, mkey);
1496}

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

1440{
1441 v_MultiplyByStdQuadratureMetric(inarray, outarray);
1442}

References v_MultiplyByStdQuadratureMetric().

Referenced by MultiplyByQuadratureMetric().

◆ v_MultiplyByStdQuadratureMetric()

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

◆ v_NormVectorIProductWRTBase() [1/4]

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

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

Definition at line 1040 of file StdExpansion.cpp.

1043{
1044 boost::ignore_unused(Fvec, outarray);
1045 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1046}

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

1018{
1019 boost::ignore_unused(Fx, outarray);
1020 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1021}

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

1026{
1027 boost::ignore_unused(Fx, Fy, outarray);
1028 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1029}

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

1035{
1036 boost::ignore_unused(Fx, Fy, Fz, outarray);
1037 NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
1038}

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

◆ v_NumBndryCoeffs()

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

◆ v_NumDGBndryCoeffs()

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

◆ v_PhysDeriv() [1/2]

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

◆ v_PhysDeriv() [2/2]

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

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

See also
StdRegions::StdExpansion::PhysDeriv

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

Definition at line 1227 of file StdExpansion.cpp.

1231{
1232 boost::ignore_unused(dir, inarray, out_d0);
1233 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1234 "specific element types");
1235}

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

◆ v_PhysDeriv_n()

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

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1214 of file StdExpansion.cpp.

1216{
1217 boost::ignore_unused(inarray, out_dn);
1218 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1219 "local expansions");
1220}

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

1209{
1210 boost::ignore_unused(inarray, out_ds);
1211 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1212 "local expansions");
1213}

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

1245{
1246 boost::ignore_unused(inarray, direction, outarray);
1247 NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1248 "specific element types");
1249}

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

Referenced by PhysDirectionalDeriv(), and WeakDirectionalDerivMatrixOp_MatFree().

◆ v_PhysEvaluate() [1/4]

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

◆ v_PhysEvaluate() [2/4]

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

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

Definition at line 1277 of file StdExpansion.cpp.

1280{
1281 boost::ignore_unused(I, physvals);
1282 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1283 return 0;
1284}

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

◆ v_PhysEvaluate() [3/4]

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

◆ v_PhysEvaluate() [4/4]

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

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

Definition at line 1308 of file StdExpansion.cpp.

1313{
1314 boost::ignore_unused(coord, inarray, firstOrderDerivs, secondOrderDerivs);
1316 "PhysEvaluate second order derivative method does not exist"
1317 " for this shape type: " +
1318 static_cast<std::string>(
1320 return 0;
1321}

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

◆ v_PhysEvaluateBasis()

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

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

Definition at line 1286 of file StdExpansion.cpp.

1288{
1289 boost::ignore_unused(coords, mode);
1290 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1291 return 0;
1292}

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

Referenced by PhysEvaluateBasis().

◆ v_ReduceOrderCoeffs()

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

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

Definition at line 1523 of file StdExpansion.cpp.

1526{
1527 boost::ignore_unused(numMin, inarray, outarray);
1528 ASSERTL0(false, "This function is not defined in StdExpansion.");
1529}

References ASSERTL0.

Referenced by ReduceOrderCoeffs().

◆ v_SetCoeffsToOrientation() [1/2]

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

Definition at line 1071 of file StdExpansion.cpp.

1073{
1074 boost::ignore_unused(coeffs, dir);
1075 NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1076}

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

◆ v_SetCoeffsToOrientation() [2/2]

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

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

Definition at line 1063 of file StdExpansion.cpp.

1066{
1067 boost::ignore_unused(dir, inarray, outarray);
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

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

Definition at line 1251 of file StdExpansion.cpp.

1255{
1256 boost::ignore_unused(inarray, out_d1, out_d2, out_d3);
1257 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1258}

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

Referenced by StdPhysDeriv().

◆ v_StdPhysDeriv() [2/2]

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

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

Definition at line 1260 of file StdExpansion.cpp.

1263{
1264 boost::ignore_unused(dir, inarray, outarray);
1265 NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1266}

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

◆ v_StdPhysEvaluate()

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

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

Definition at line 1078 of file StdExpansion.cpp.

1082{
1083 boost::ignore_unused(Lcoord, physvals);
1084 NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1085 return 0;
1086}

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

Referenced by StdPhysEvaluate().

◆ v_SVVLaplacianFilter()

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

◆ v_WeakDerivMatrixOp()

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

Reimplemented in Nektar::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 1540 of file StdExpansion.cpp.

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

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

1552{
1553 // If this function is not reimplemented on shape level, the function
1554 // below will be called
1555 WeakDirectionalDerivMatrixOp_MatFree(inarray, outarray, mkey);
1556}

References WeakDirectionalDerivMatrixOp_MatFree().

Referenced by WeakDirectionalDerivMatrixOp().

◆ WeakDerivMatrixOp()

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

Definition at line 799 of file StdExpansion.h.

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

References v_WeakDerivMatrixOp().

Referenced by GeneralMatrixOp().

◆ WeakDerivMatrixOp_MatFree()

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

◆ WeakDirectionalDerivMatrixOp()

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

Definition at line 807 of file StdExpansion.h.

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

References v_WeakDirectionalDerivMatrixOp().

Referenced by GeneralMatrixOp().

◆ WeakDirectionalDerivMatrixOp_MatFree()

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

Definition at line 849 of file StdExpansion.cpp.

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

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

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

Referenced by CreateGeneralMatrix(), Nektar::LocalRegions::Expansion::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), EquiSpacedToCoeffs(), Nektar::LocalRegions::NodalTriExp::FwdTrans(), Nektar::LocalRegions::NodalTriExp::GeneralMatrixOp_MatOp(), Nektar::LocalRegions::TetExp::GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdNodalPrismExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTetExp::GenNBasisTransMatrix(), Nektar::StdRegions::StdNodalTriExp::GenNBasisTransMatrix(), GetNcoeffs(), HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), LaplacianMatrixOp_MatFree_GenericImpl(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTetExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTetExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTetExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), Nektar::LocalRegions::PointExp::PointExp(), Nektar::LocalRegions::SegExp::ReverseCoeffsAndSign(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::LocalRegions::NodalTriExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::PrismExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::QuadExp::v_AlignVectorToCollapsedDir(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::StdRegions::StdNodalPrismExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalTetExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdQuadExp::v_FillMode(), Nektar::StdRegions::StdHexExp::v_FillMode(), Nektar::StdRegions::StdNodalPrismExp::v_FillMode(), Nektar::StdRegions::StdNodalTetExp::v_FillMode(), Nektar::StdRegions::StdNodalTriExp::v_FillMode(), Nektar::StdRegions::StdPrismExp::v_FillMode(), Nektar::StdRegions::StdPyrExp::v_FillMode(), Nektar::StdRegions::StdSegExp::v_FillMode(), Nektar::StdRegions::StdTetExp::v_FillMode(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdTetExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::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::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDirectionalDerivBase_SumFac(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::HexExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), 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