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:
Inheritance graph
[legend]
Collaboration diagram for Nektar::StdRegions::StdExpansion:
Collaboration graph
[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 GetNedges () const
 This function returns the number of edges of the expansion domain. More...
 
int GetEdgeNcoeffs (const int i) const
 This function returns the number of expansion coefficients belonging to the i-th edge. More...
 
int GetTotalEdgeIntNcoeffs () const
 
int GetEdgeNumPoints (const int i) const
 This function returns the number of quadrature points belonging to the i-th edge. More...
 
int DetCartesianDirOfEdge (const int edge)
 
const LibUtilities::BasisKey DetEdgeBasisKey (const int i) const
 
const LibUtilities::BasisKey DetFaceBasisKey (const int i, const int k) const
 
int GetFaceNumPoints (const int i) const
 This function returns the number of quadrature points belonging to the i-th face. More...
 
int GetFaceNcoeffs (const int i) const
 This function returns the number of expansion coefficients belonging to the i-th face. More...
 
int GetFaceIntNcoeffs (const int i) const
 
int GetTotalFaceIntNcoeffs () const
 
LibUtilities::PointsKey GetFacePointsKey (const int i, const int j) const
 
int NumBndryCoeffs (void) const
 
int NumDGBndryCoeffs (void) const
 
LibUtilities::BasisType GetEdgeBasisType (const int i) const
 This function returns the type of expansion basis on the i-th edge. More...
 
const LibUtilities::PointsKey GetNodalPointsKey () const
 This function returns the type of expansion Nodal point type if defined. More...
 
int GetNfaces () const
 This function returns the number of faces of the expansion domain. More...
 
int GetNtrace () 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...
 
boost::shared_ptr< StdExpansionGetStdExp (void) const
 
int GetShapeDimension () const
 
bool IsBoundaryInteriorExpansion ()
 
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 FwdTrans_BndConstrained (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)
 
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)
 
IndexMapValuesSharedPtr GetIndexMap (const IndexMapKey &ikey)
 
const Array< OneD, const NekDouble > & GetPhysNormals (void)
 
void SetPhysNormals (Array< OneD, const NekDouble > &normal)
 
virtual void SetUpPhysNormals (const int edge)
 
void NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const 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)
 
DNekScalBlkMatSharedPtr GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
void DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
StdRegions::Orientation GetForient (int face)
 
StdRegions::Orientation GetEorient (int edge)
 
StdRegions::Orientation GetPorient (int point)
 
StdRegions::Orientation GetCartesianEorient (int edge)
 
void SetCoeffsToOrientation (Array< OneD, NekDouble > &coeffs, StdRegions::Orientation dir)
 
void SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
int CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset)
 
void ExtractDataToCoeffs (const NekDouble *data, const std::vector< unsigned int > &nummodes, const int nmodes_offset, NekDouble *coeffs)
 
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 GetEdgeInteriorMap (const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
void GetFaceInteriorMap (const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
void GetEdgeToElementMap (const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
void GetFaceToElementMap (const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, int nummodesA=-1, int nummodesB=-1)
 
void GetEdgePhysVals (const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 Extract the physical values along edge edge from inarray into outarray following the local edge orientation and point distribution defined by defined in EdgeExp. More...
 
void GetEdgePhysVals (const int edge, const boost::shared_ptr< StdExpansion > &EdgeExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void GetTracePhysVals (const int edge, const boost::shared_ptr< StdExpansion > &EdgeExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void GetVertexPhysVals (const int vertex, const Array< OneD, const NekDouble > &inarray, NekDouble &outarray)
 
void GetEdgeInterpVals (const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void GetEdgeQFactors (const int edge, Array< OneD, NekDouble > &outarray)
 Extract the metric factors to compute the contravariant fluxes along edge edge and stores them into outarray following the local edge orientation (i.e. anticlockwise convention). More...
 
void GetFacePhysVals (const int face, const boost::shared_ptr< StdExpansion > &FaceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient=eNoOrientation)
 
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 LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LinearAdvectionDiffusionReactionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
 
void HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
DNekMatSharedPtr GenMatrix (const StdMatrixKey &mkey)
 
void PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray)
 
void PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void PhysDeriv_s (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)
 
void PhysDeriv_n (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)
 
void PhysDirectionalDeriv (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &outarray)
 
void StdPhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray)
 
void StdPhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
void AddRobinMassMatrix (const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat)
 
void AddRobinEdgeContribution (const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, Array< OneD, NekDouble > &coeffs)
 
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, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals)
 This function evaluates the expansion at a single (arbitrary) point 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...
 
const boost::shared_ptr< SpatialDomains::GeomFactors > & GetMetricInfo (void) const
 
virtual int v_GetElmtId ()
 Get the element id of this expansion when used in a list by returning value of m_elmt_id. More...
 
virtual const Array< OneD, const NekDouble > & v_GetPhysNormals (void)
 
virtual void v_SetPhysNormals (Array< OneD, const NekDouble > &normal)
 
virtual void v_SetUpPhysNormals (const int edge)
 
virtual int v_CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset)
 
virtual void v_ExtractDataToCoeffs (const NekDouble *data, const std::vector< unsigned int > &nummodes, const int nmode_offset, NekDouble *coeffs)
 Unpack data from input file assuming it comes from the same expansion type. More...
 
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 DNekScalBlkMatSharedPtr v_GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
virtual void v_DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey)
 
virtual StdRegions::Orientation v_GetForient (int face)
 
virtual StdRegions::Orientation v_GetEorient (int edge)
 
virtual StdRegions::Orientation v_GetCartesianEorient (int edge)
 
virtual StdRegions::Orientation v_GetPorient (int point)
 
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 NormalVectorGetEdgeNormal (const int edge) const
 
void ComputeEdgeNormal (const int edge)
 
void NegateEdgeNormal (const int edge)
 
bool EdgeNormalNegated (const int edge)
 
void ComputeFaceNormal (const int face)
 
void NegateFaceNormal (const int face)
 
void ComputeVertexNormal (const int vertex)
 
const NormalVectorGetFaceNormal (const int face) const
 
const NormalVectorGetVertexNormal (const int vertex) const
 
const NormalVectorGetSurfaceNormal (const int id) const
 
const LibUtilities::PointsKeyVector GetPointsKeys () const
 
Array< OneD, unsigned int > GetEdgeInverseBoundaryMap (int eid)
 
Array< OneD, unsigned int > GetFaceInverseBoundaryMap (int fid, StdRegions::Orientation faceOrient=eNoOrientation)
 
DNekMatSharedPtr BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &m_transformationmatrix)
 
void PhysInterpToSimplexEquiSpaced (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 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...
 
template<class T >
boost::shared_ptr< T > as ()
 
void IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
 

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...
 
IndexMapValuesSharedPtr CreateIndexMap (const IndexMapKey &ikey)
 Create an IndexMap which contains mapping information linking any specific element shape with either its boundaries, edges, faces, verteces, etc. More...
 
void BwdTrans_MatOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
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 GeneralMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
 
void LaplacianMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LaplacianMatrixOp_MatFree (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDerivMatrixOp_MatFree (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void WeakDirectionalDerivMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void MassLevelCurvatureMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void LinearAdvectionDiffusionReactionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
 
void HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
void HelmholtzMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_SetCoeffsToOrientation (Array< OneD, NekDouble > &coeffs, StdRegions::Orientation dir)
 
virtual NekDouble v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
 

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
 
LibUtilities::NekManager< IndexMapKey, IndexMapValues, IndexMapKey::opLessm_IndexMapManager
 

Private Member Functions

virtual int v_GetNverts () const =0
 
virtual int v_GetNedges () const
 
virtual int v_GetNfaces () const
 
virtual int v_NumBndryCoeffs () const
 
virtual int v_NumDGBndryCoeffs () const
 
virtual int v_GetEdgeNcoeffs (const int i) const
 
virtual int v_GetTotalEdgeIntNcoeffs () const
 
virtual int v_GetEdgeNumPoints (const int i) const
 
virtual int v_DetCartesianDirOfEdge (const int edge)
 
virtual const LibUtilities::BasisKey v_DetEdgeBasisKey (const int i) const
 
virtual const LibUtilities::BasisKey v_DetFaceBasisKey (const int i, const int k) const
 
virtual int v_GetFaceNumPoints (const int i) const
 
virtual int v_GetFaceNcoeffs (const int i) const
 
virtual int v_GetFaceIntNcoeffs (const int i) const
 
virtual int v_GetTotalFaceIntNcoeffs () const
 
virtual LibUtilities::PointsKey v_GetFacePointsKey (const int i, const int j) const
 
virtual LibUtilities::BasisType v_GetEdgeBasisType (const int i) const
 
virtual const LibUtilities::PointsKey v_GetNodalPointsKey () const
 
virtual LibUtilities::ShapeType v_DetShapeType () const
 
virtual boost::shared_ptr< StdExpansionv_GetStdExp (void) const
 
virtual int v_GetShapeDimension () const
 
virtual bool v_IsBoundaryInteriorExpansion ()
 
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_FwdTrans_BndConstrained (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 void v_AddRobinMassMatrix (const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat)
 
virtual void v_AddRobinEdgeContribution (const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, Array< OneD, NekDouble > &coeffs)
 
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 void v_LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
 
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 (void)
 
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_GetEdgeInteriorMap (const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
virtual void v_GetFaceInteriorMap (const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
virtual void v_GetEdgeToElementMap (const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
 
virtual void v_GetFaceToElementMap (const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, int nummodesA=-1, int nummodesB=-1)
 
virtual void v_GetEdgePhysVals (const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 Extract the physical values along edge edge from inarray into outarray following the local edge orientation and point distribution defined by defined in EdgeExp. More...
 
virtual void v_GetEdgePhysVals (const int edge, const boost::shared_ptr< StdExpansion > &EdgeExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_GetTracePhysVals (const int edge, const boost::shared_ptr< StdExpansion > &EdgeExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient=eNoOrientation)
 
virtual void v_GetVertexPhysVals (const int vertex, const Array< OneD, const NekDouble > &inarray, NekDouble &outarray)
 
virtual void v_GetEdgeInterpVals (const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_GetEdgeQFactors (const int edge, Array< OneD, NekDouble > &outarray)
 
virtual void v_GetFacePhysVals (const int face, const boost::shared_ptr< StdExpansion > &FaceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient)
 
virtual void v_MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual const boost::shared_ptr< SpatialDomains::GeomFactors > & v_GetMetricInfo () const
 
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_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_ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual void v_LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LinearAdvectionDiffusionReactionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
 
virtual void v_HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual void v_LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
 
virtual void v_HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
 
virtual const NormalVectorv_GetEdgeNormal (const int edge) const
 
virtual void v_ComputeEdgeNormal (const int edge)
 
virtual void v_NegateEdgeNormal (const int edge)
 
virtual bool v_EdgeNormalNegated (const int edge)
 
virtual void v_ComputeFaceNormal (const int face)
 
virtual void v_NegateFaceNormal (const int face)
 
virtual const NormalVectorv_GetVertexNormal (const int vertex) const
 
virtual void v_ComputeVertexNormal (const int vertex)
 
virtual const NormalVectorv_GetFaceNormal (const int face) const
 
virtual const NormalVectorv_GetSurfaceNormal (const int id) const
 
virtual Array< OneD, unsigned int > v_GetEdgeInverseBoundaryMap (int eid)
 
virtual Array< OneD, unsigned int > v_GetFaceInverseBoundaryMap (int fid, StdRegions::Orientation faceOrient=eNoOrientation)
 
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 69 of file StdExpansion.h.

Constructor & Destructor Documentation

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

Default Constructor.

Definition at line 44 of file StdExpansion.cpp.

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.

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

53  :
54  m_base(numbases),
55  m_elmt_id(0),
56  m_ncoeffs(numcoeffs),
58  boost::bind(&StdExpansion::CreateStdMatrix, this, _1),
59  std::string("StdExpansionStdMatrix")),
61  boost::bind(&StdExpansion::CreateStdStaticCondMatrix, this, _1),
62  std::string("StdExpansionStdStaticCondMatrix")),
64  boost::bind(&StdExpansion::CreateIndexMap,this, _1),
65  std::string("StdExpansionIndexMap"))
66  {
67  switch(m_base.num_elements())
68  {
69  case 3:
71  "NULL Basis attempting to be used.");
73 
74  case 2:
76  "NULL Basis attempting to be used.");
77 
79  case 1:
81  "NULL Basis attempting to be used.");
83  break;
84  default:
85  break;
86 // ASSERTL0(false, "numbases incorrectly specified");
87  };
88 
89  } //end constructor
DNekMatSharedPtr CreateStdMatrix(const StdMatrixKey &mkey)
LibUtilities::NekManager< IndexMapKey, IndexMapValues, IndexMapKey::opLess > m_IndexMapManager
LibUtilities::NekManager< StdMatrixKey, DNekBlkMat, StdMatrixKey::opLess > m_stdStaticCondMatrixManager
BasisManagerT & BasisManager(void)
IndexMapValuesSharedPtr CreateIndexMap(const IndexMapKey &ikey)
Create an IndexMap which contains mapping information linking any specific element shape with either ...
#define ASSERTL2(condition, msg)
Assert Level 2 – Debugging which is used FULLDEBUG compilation mode. This level assert is designed t...
Definition: ErrorUtil.hpp:213
DNekBlkMatSharedPtr CreateStdStaticCondMatrix(const StdMatrixKey &mkey)
Create the static condensation of a matrix when using a boundary interior decomposition.
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLess > m_stdMatrixManager
Array< OneD, LibUtilities::BasisSharedPtr > m_base
Nektar::StdRegions::StdExpansion::StdExpansion ( const StdExpansion T)

Copy Constructor.

Definition at line 92 of file StdExpansion.cpp.

92  :
93  m_base(T.m_base),
94  m_elmt_id(T.m_elmt_id),
95  m_ncoeffs(T.m_ncoeffs),
96  m_stdMatrixManager(T.m_stdMatrixManager),
97  m_stdStaticCondMatrixManager(T.m_stdStaticCondMatrixManager),
98  m_IndexMapManager(T.m_IndexMapManager)
99  {
100  }
LibUtilities::NekManager< IndexMapKey, IndexMapValues, IndexMapKey::opLess > m_IndexMapManager
LibUtilities::NekManager< StdMatrixKey, DNekBlkMat, StdMatrixKey::opLess > m_stdStaticCondMatrixManager
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLess > m_stdMatrixManager
Array< OneD, LibUtilities::BasisSharedPtr > m_base
Nektar::StdRegions::StdExpansion::~StdExpansion ( )
virtual

Destructor.

Definition at line 102 of file StdExpansion.cpp.

103  {
104  }

Member Function Documentation

void Nektar::StdRegions::StdExpansion::AddRobinEdgeContribution ( const int  edgeid,
const Array< OneD, const NekDouble > &  primCoeffs,
Array< OneD, NekDouble > &  coeffs 
)
inline

Definition at line 1068 of file StdExpansion.h.

References v_AddRobinEdgeContribution().

1069  {
1070  v_AddRobinEdgeContribution(edgeid, primCoeffs, coeffs);
1071  }
virtual void v_AddRobinEdgeContribution(const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, Array< OneD, NekDouble > &coeffs)
void Nektar::StdRegions::StdExpansion::AddRobinMassMatrix ( const int  edgeid,
const Array< OneD, const NekDouble > &  primCoeffs,
DNekMatSharedPtr inoutmat 
)
inline

Definition at line 1063 of file StdExpansion.h.

References v_AddRobinMassMatrix().

1064  {
1065  v_AddRobinMassMatrix(edgeid,primCoeffs,inoutmat);
1066  }
virtual void v_AddRobinMassMatrix(const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat)
template<class T >
boost::shared_ptr<T> Nektar::StdRegions::StdExpansion::as ( )
inline

Definition at line 1336 of file StdExpansion.h.

References ASSERTL1.

Referenced by Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner().

1337  {
1338 #if defined __INTEL_COMPILER && BOOST_VERSION > 105200
1339  typedef typename boost::shared_ptr<T>::element_type E;
1340  E * p = dynamic_cast< E* >( shared_from_this().get() );
1341  ASSERTL1(p, "Cannot perform cast");
1342  return boost::shared_ptr<T>( shared_from_this(), p );
1343 #else
1344  return boost::dynamic_pointer_cast<T>( shared_from_this() );
1345 #endif
1346  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::BuildInverseTransformationMatrix ( const DNekScalMatSharedPtr m_transformationmatrix)
inline

Definition at line 1298 of file StdExpansion.h.

References v_BuildInverseTransformationMatrix().

1300  {
1302  m_transformationmatrix);
1303  }
virtual DNekMatSharedPtr v_BuildInverseTransformationMatrix(const DNekScalMatSharedPtr &m_transformationmatrix)
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 509 of file StdExpansion.h.

References v_BwdTrans().

Referenced by Extractlayerdata(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter().

511  {
512  v_BwdTrans (inarray, outarray);
513  }
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
void Nektar::StdRegions::StdExpansion::BwdTrans_MatOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
protected

Definition at line 909 of file StdExpansion.cpp.

References DetShapeType(), Nektar::StdRegions::eBwdTrans, GetStdMatrix(), GetTotPoints(), and m_ncoeffs.

911  {
912  int nq = GetTotPoints();
913  StdMatrixKey bwdtransmatkey(eBwdTrans,DetShapeType(),*this);
914  DNekMatSharedPtr bwdtransmat = GetStdMatrix(bwdtransmatkey);
915 
916  Blas::Dgemv('N',nq,m_ncoeffs,1.0,bwdtransmat->GetPtr().get(),
917  nq, inarray.get(), 1, 0.0, outarray.get(), 1);
918  }
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
Definition: StdExpansion.h:454
boost::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:70
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
Definition: StdExpansion.h:684
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
void Nektar::StdRegions::StdExpansion::BwdTrans_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inlineprotected

Definition at line 1394 of file StdExpansion.h.

References v_BwdTrans_SumFac().

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

1396  {
1397  v_BwdTrans_SumFac(inarray,outarray);
1398  }
virtual void v_BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
int Nektar::StdRegions::StdExpansion::CalcNumberOfCoefficients ( const std::vector< unsigned int > &  nummodes,
int &  modes_offset 
)
inline

Definition at line 766 of file StdExpansion.h.

References v_CalcNumberOfCoefficients().

767  {
768  return v_CalcNumberOfCoefficients(nummodes,modes_offset);
769  }
virtual int v_CalcNumberOfCoefficients(const std::vector< unsigned int > &nummodes, int &modes_offset)
void Nektar::StdRegions::StdExpansion::ComputeEdgeNormal ( const int  edge)
inline

Definition at line 1231 of file StdExpansion.h.

References v_ComputeEdgeNormal().

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

1232  {
1233  v_ComputeEdgeNormal(edge);
1234  }
virtual void v_ComputeEdgeNormal(const int edge)
void Nektar::StdRegions::StdExpansion::ComputeFaceNormal ( const int  face)
inline

Definition at line 1246 of file StdExpansion.h.

References v_ComputeFaceNormal().

1247  {
1248  v_ComputeFaceNormal(face);
1249  }
virtual void v_ComputeFaceNormal(const int face)
void Nektar::StdRegions::StdExpansion::ComputeVertexNormal ( const int  vertex)
inline

Definition at line 1256 of file StdExpansion.h.

References v_ComputeVertexNormal().

Referenced by Nektar::StdRegions::StdExpansion1D::v_SetUpPhysNormals().

1257  {
1258  v_ComputeVertexNormal(vertex);
1259  }
virtual void v_ComputeVertexNormal(const int vertex)
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 322 of file StdExpansion.cpp.

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

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

323  {
324  int i;
325  DNekMatSharedPtr returnval;
326 
327  switch(mkey.GetMatrixType())
328  {
329  case eInvMass:
330  {
331  StdMatrixKey masskey(eMass,mkey.GetShapeType(),*this,NullConstFactorMap,NullVarCoeffMap,mkey.GetNodalPointsType());
332  DNekMatSharedPtr mmat = GetStdMatrix(masskey);
333 
334  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(*mmat); //Populate standard mass matrix.
335  returnval->Invert();
336  }
337  break;
338  case eInvNBasisTrans:
339  {
340  StdMatrixKey tmpkey(eNBasisTrans,mkey.GetShapeType(),*this,NullConstFactorMap,NullVarCoeffMap,mkey.GetNodalPointsType());
341  DNekMatSharedPtr tmpmat = GetStdMatrix(tmpkey);
342  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(*tmpmat); //Populate matrix.
343  returnval->Invert();
344  }
345  break;
346  case eBwdTrans:
347  {
348  int nq = GetTotPoints();
349  Array<OneD, NekDouble> tmpin(m_ncoeffs);
350  Array<OneD, NekDouble> tmpout(nq);
351 
353 
354  for(int i=0; i<m_ncoeffs; ++i)
355  {
356  Vmath::Zero(m_ncoeffs, tmpin, 1);
357  tmpin[i] = 1.0;
358 
359  BwdTrans_SumFac(tmpin,tmpout);
360 
361  Vmath::Vcopy(nq,tmpout.get(),1,
362  returnval->GetRawPtr()+i*nq,1);
363  }
364  }
365  break;
366  case eIProductWRTBase:
367  {
368  int nq = GetTotPoints();
369  Array<OneD, NekDouble> tmpin(nq);
370  Array<OneD, NekDouble> tmpout(m_ncoeffs);
371 
372  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(m_ncoeffs,nq);
373 
374  for(i=0; i < nq; ++i)
375  {
376  Vmath::Zero(nq, tmpin, 1);
377  tmpin[i] = 1.0;
378 
379  IProductWRTBase_SumFac(tmpin,tmpout);
380 
381  Vmath::Vcopy(m_ncoeffs,tmpout.get(),1,
382  returnval->GetRawPtr()+i*m_ncoeffs,1);
383  }
384  }
385  break;
387  {
388  int nq = GetTotPoints();
389  Array<OneD, NekDouble> tmpin(nq);
390  Array<OneD, NekDouble> tmpout(m_ncoeffs);
391 
392  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(nq,m_ncoeffs);
393 
394  for(i=0; i < nq; ++i)
395  {
396  Vmath::Zero(nq, tmpin, 1);
397  tmpin[i] = 1.0;
398 
399  IProductWRTDerivBase_SumFac(0,tmpin,tmpout);
400 
401  Vmath::Vcopy(m_ncoeffs,tmpout.get(),1,
402  returnval->GetRawPtr()+i*m_ncoeffs,1);
403  }
404  }
405  break;
407  {
408  int nq = GetTotPoints();
409  Array<OneD, NekDouble> tmpin(nq);
410  Array<OneD, NekDouble> tmpout(m_ncoeffs);
411 
412  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(nq,m_ncoeffs);
413 
414  for(i=0; i < nq; ++i)
415  {
416  Vmath::Zero(nq, tmpin, 1);
417  tmpin[i] = 1.0;
418 
419  IProductWRTDerivBase_SumFac(1,tmpin,tmpout);
420 
421  Vmath::Vcopy(m_ncoeffs,tmpout.get(),1,
422  returnval->GetRawPtr()+i*m_ncoeffs,1);
423  }
424  }
425  break;
427  {
428  int nq = GetTotPoints();
429  Array<OneD, NekDouble> tmpin(nq);
430  Array<OneD, NekDouble> tmpout(m_ncoeffs);
431 
432  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(nq,m_ncoeffs);
433 
434  for(i=0; i < nq; ++i)
435  {
436  Vmath::Zero(nq, tmpin, 1);
437  tmpin[i] = 1.0;
438 
439  IProductWRTDerivBase_SumFac(2,tmpin,tmpout);
440 
441  Vmath::Vcopy(m_ncoeffs,tmpout.get(),1,
442  returnval->GetRawPtr()+i*m_ncoeffs,1);
443  }
444  }
445  break;
446  case eMass:
447  case eHelmholtz:
448  case eLaplacian:
449  case eLaplacian00:
450  case eLaplacian01:
451  case eLaplacian02:
452  case eLaplacian11:
453  case eLaplacian12:
454  case eLaplacian22:
455  case eWeakDeriv0:
456  case eWeakDeriv1:
457  case eWeakDeriv2:
459  case eMassLevelCurvature:
462  {
463  Array<OneD, NekDouble> tmp(m_ncoeffs);
464  returnval = MemoryManager<DNekMat>::AllocateSharedPtr(m_ncoeffs,m_ncoeffs);
465  DNekMat &Mat = *returnval;
466 
467  for(i=0; i < m_ncoeffs; ++i)
468  {
469  Vmath::Zero(m_ncoeffs, tmp, 1);
470  tmp[i] = 1.0;
471 
472  GeneralMatrixOp_MatFree(tmp,tmp,mkey);
473 
474  Vmath::Vcopy(m_ncoeffs,&tmp[0],1,
475  &(Mat.GetPtr())[0]+i*m_ncoeffs,1);
476  }
477  }
478  break;
479  default:
480  {
481  NEKERROR(ErrorUtil::efatal, "This type of matrix can not be created using a general approach");
482  }
483  break;
484  }
485 
486  return returnval;
487  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
void IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
boost::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:70
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
Definition: StdExpansion.h:684
void IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:52
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:359
void GeneralMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1038
void BwdTrans_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
static VarCoeffMap NullVarCoeffMap
Definition: StdRegions.hpp:226
static ConstFactorMap NullConstFactorMap
Definition: StdRegions.hpp:249
IndexMapValuesSharedPtr Nektar::StdRegions::StdExpansion::CreateIndexMap ( const IndexMapKey ikey)
protected

Create an IndexMap which contains mapping information linking any specific element shape with either its boundaries, edges, faces, verteces, etc.

The index member of the IndexMapValue struct gives back an integer associated with an entity index The sign member of the same struct gives back a sign to algebrically apply entities orientation

Definition at line 260 of file StdExpansion.cpp.

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), ASSERTL0, Nektar::StdRegions::eBoundary, Nektar::StdRegions::eEdgeInterior, Nektar::StdRegions::eEdgeToElement, Nektar::StdRegions::eFaceInterior, Nektar::StdRegions::eFaceToElement, Nektar::StdRegions::eVertex, Nektar::StdRegions::IndexMapKey::GetIndexEntity(), Nektar::StdRegions::IndexMapKey::GetIndexMapType(), Nektar::StdRegions::IndexMapKey::GetIndexOrientation(), sign, v_GetEdgeInteriorMap(), v_GetEdgeToElementMap(), v_GetFaceInteriorMap(), and v_GetFaceToElementMap().

261  {
262  IndexMapValuesSharedPtr returnval;
263 
264  IndexMapType itype = ikey.GetIndexMapType();
265 
266  int entity = ikey.GetIndexEntity();
267 
268  Orientation orient = ikey.GetIndexOrientation();
269 
270  Array<OneD,unsigned int> map;
271  Array<OneD,int> sign;
272 
273  switch(itype)
274  {
275  case eEdgeToElement:
276  {
277  v_GetEdgeToElementMap(entity,orient,map,sign);
278  }
279  break;
280  case eFaceToElement:
281  {
282  v_GetFaceToElementMap(entity,orient,map,sign);
283  }
284  break;
285  case eEdgeInterior:
286  {
287  v_GetEdgeInteriorMap(entity,orient,map,sign);
288  }
289  break;
290  case eFaceInterior:
291  {
292  v_GetFaceInteriorMap(entity,orient,map,sign);
293  }
294  break;
295  case eBoundary:
296  {
297  ASSERTL0(false,"Boundary Index Map not implemented yet.");
298  }
299  break;
300  case eVertex:
301  {
302  ASSERTL0(false,"Vertex Index Map not implemented yet.");
303  }
304  break;
305  default:
306  {
307  ASSERTL0(false,"The Index Map you are requiring is not between the possible options.");
308  }
309  }
310 
311  returnval = MemoryManager<IndexMapValues>::AllocateSharedPtr(map.num_elements());
312 
313  for(int i = 0; i < map.num_elements(); i++)
314  {
315  (*returnval)[i].index = map[i];
316  (*returnval)[i].sign = sign[i];
317  }
318 
319  return returnval;
320  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
boost::shared_ptr< IndexMapValues > IndexMapValuesSharedPtr
Definition: IndexMapKey.h:126
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
#define sign(a, b)
return the sign(b)*a
Definition: Polylib.cpp:22
virtual void v_GetFaceInteriorMap(const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
virtual void v_GetEdgeInteriorMap(const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
virtual void v_GetFaceToElementMap(const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, int nummodesA=-1, int nummodesB=-1)
virtual void v_GetEdgeToElementMap(const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::CreateStdMatrix ( const StdMatrixKey mkey)
inlineprotected

Definition at line 1363 of file StdExpansion.h.

References v_CreateStdMatrix().

1364  {
1365  return v_CreateStdMatrix(mkey);
1366  }
virtual DNekMatSharedPtr v_CreateStdMatrix(const StdMatrixKey &mkey)
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 193 of file StdExpansion.cpp.

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

194  {
195  DNekBlkMatSharedPtr returnval;
196 
197  DNekMatSharedPtr mat = GetStdMatrix(mkey);
198  int nbdry = NumBndryCoeffs(); // also checks to see if this is a boundary interior decomposed expansion
199  int nint = m_ncoeffs - nbdry;
204 
205  int i,j;
206 
207  Array<OneD,unsigned int> bmap(nbdry);
208  Array<OneD,unsigned int> imap(nint);
209  GetBoundaryMap(bmap);
210  GetInteriorMap(imap);
211 
212  for(i = 0; i < nbdry; ++i)
213  {
214  for(j = 0; j < nbdry; ++j)
215  {
216  (*A)(i,j) = (*mat)(bmap[i],bmap[j]);
217  }
218 
219  for(j = 0; j < nint; ++j)
220  {
221  (*B)(i,j) = (*mat)(bmap[i],imap[j]);
222  }
223  }
224 
225  for(i = 0; i < nint; ++i)
226  {
227  for(j = 0; j < nbdry; ++j)
228  {
229  (*C)(i,j) = (*mat)(imap[i],bmap[j]);
230  }
231 
232  for(j = 0; j < nint; ++j)
233  {
234  (*D)(i,j) = (*mat)(imap[i],imap[j]);
235  }
236  }
237 
238  // Calculate static condensed system
239  if(nint)
240  {
241  D->Invert();
242  (*B) = (*B)*(*D);
243  (*A) = (*A) - (*B)*(*C);
244  }
245 
246  // set up block matrix system
247  Array<OneD, unsigned int> exp_size(2);
248  exp_size[0] = nbdry;
249  exp_size[1] = nint;
250  returnval = MemoryManager<DNekBlkMat>::AllocateSharedPtr(exp_size,exp_size);
251 
252  returnval->SetBlock(0,0,A);
253  returnval->SetBlock(0,1,B);
254  returnval->SetBlock(1,0,C);
255  returnval->SetBlock(1,1,D);
256 
257  return returnval;
258  }
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
boost::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:70
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
Definition: StdExpansion.h:684
void GetInteriorMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:795
boost::shared_ptr< DNekBlkMat > DNekBlkMatSharedPtr
Definition: NekTypeDefs.hpp:72
void GetBoundaryMap(Array< OneD, unsigned int > &outarray)
Definition: StdExpansion.h:790
int Nektar::StdRegions::StdExpansion::DetCartesianDirOfEdge ( const int  edge)
inline

Definition at line 314 of file StdExpansion.h.

References v_DetCartesianDirOfEdge().

315  {
316  return v_DetCartesianDirOfEdge(edge);
317  }
virtual int v_DetCartesianDirOfEdge(const int edge)
const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::DetEdgeBasisKey ( const int  i) const
inline

Definition at line 319 of file StdExpansion.h.

References v_DetEdgeBasisKey().

320  {
321  return v_DetEdgeBasisKey(i);
322  }
virtual const LibUtilities::BasisKey v_DetEdgeBasisKey(const int i) const
const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::DetFaceBasisKey ( const int  i,
const int  k 
) const
inline
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 454 of file StdExpansion.h.

References v_DetShapeType().

Referenced by Nektar::LocalRegions::Expansion3D::AddFaceBoundaryInt(), Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), BwdTrans_MatOp(), Nektar::LocalRegions::PyrExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::CreateMatrix(), Nektar::LocalRegions::PrismExp::CreateMatrix(), Nektar::LocalRegions::QuadExp::CreateMatrix(), Nektar::LocalRegions::TriExp::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::HexExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::FwdTrans(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::AdjointAdvection::GetFloquetBlockMatrix(), Nektar::LocalRegions::Expansion::GetLocMatrix(), HelmholtzMatrixOp_MatFree_GenericImpl(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_MatOp(), Nektar::LocalRegions::HexExp::IProductWRTDerivBase_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::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddFaceNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::QuadExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::LocalRegions::QuadExp::v_GetEdgeInterpVals(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_MatOp(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_MatOp(), and Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_MatOp().

455  {
456  return v_DetShapeType();
457  }
virtual LibUtilities::ShapeType v_DetShapeType() const
void Nektar::StdRegions::StdExpansion::DropLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
inline

Definition at line 726 of file StdExpansion.h.

References v_DropLocStaticCondMatrix().

727  {
728  return v_DropLocStaticCondMatrix(mkey);
729  }
virtual void v_DropLocStaticCondMatrix(const LocalRegions::MatrixKey &mkey)
bool Nektar::StdRegions::StdExpansion::EdgeNormalNegated ( const int  edge)
inline

Definition at line 1241 of file StdExpansion.h.

References v_EdgeNormalNegated().

1242  {
1243  return v_EdgeNormalNegated(edge);
1244  }
virtual bool v_EdgeNormalNegated(const int edge)
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 191 of file StdExpansion.h.

References m_base.

192  {
193  int i;
194  int returnval = 0;
195 
196  for(i = 0; i < m_base.num_elements(); ++i)
197  {
198  returnval = max(returnval, m_base[i]->GetNumModes());
199  }
200 
201  return returnval;
202  }
Array< OneD, LibUtilities::BasisSharedPtr > m_base
void Nektar::StdRegions::StdExpansion::ExtractDataToCoeffs ( const NekDouble data,
const std::vector< unsigned int > &  nummodes,
const int  nmodes_offset,
NekDouble coeffs 
)
inline

Definition at line 771 of file StdExpansion.h.

References v_ExtractDataToCoeffs().

775  {
776  v_ExtractDataToCoeffs(data,nummodes,nmodes_offset,coeffs);
777  }
virtual void v_ExtractDataToCoeffs(const NekDouble *data, const std::vector< unsigned int > &nummodes, const int nmode_offset, NekDouble *coeffs)
Unpack data from input file assuming it comes from the same expansion type.
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 576 of file StdExpansion.h.

References v_FillMode().

577  {
578  v_FillMode(mode, outarray);
579  }
virtual void v_FillMode(const int mode, Array< OneD, NekDouble > &outarray)
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 1823 of file StdExpansion.h.

References v_FwdTrans().

Referenced by Nektar::Utilities::ProcessEquiSpacedOutput::GenOrthoModes(), Nektar::LocalRegions::Expansion2D::GetPhysEdgeVarCoeffsFromElement(), Nektar::SolverUtils::UpdateGeometry(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter().

1825  {
1826  v_FwdTrans(inarray,outarray);
1827  }
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.
void Nektar::StdRegions::StdExpansion::FwdTrans_BndConstrained ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 522 of file StdExpansion.h.

References v_FwdTrans_BndConstrained().

524  {
525  v_FwdTrans_BndConstrained(inarray,outarray);
526  }
virtual void v_FwdTrans_BndConstrained(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::GeneralMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)

Definition at line 489 of file StdExpansion.cpp.

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

492  {
493  switch(mkey.GetMatrixType())
494  {
495  case eMass:
496  MassMatrixOp(inarray,outarray,mkey);
497  break;
498  case eWeakDeriv0:
499  WeakDerivMatrixOp(0,inarray,outarray,mkey);
500  break;
501  case eWeakDeriv1:
502  WeakDerivMatrixOp(1,inarray,outarray,mkey);
503  break;
504  case eWeakDeriv2:
505  WeakDerivMatrixOp(2,inarray,outarray,mkey);
506  break;
508  WeakDirectionalDerivMatrixOp(inarray,outarray,mkey);
509  break;
510  case eMassLevelCurvature:
511  MassLevelCurvatureMatrixOp(inarray,outarray,mkey);
512  break;
514  LinearAdvectionDiffusionReactionMatrixOp(inarray,outarray,mkey,false);
515  break;
517  LinearAdvectionDiffusionReactionMatrixOp(inarray,outarray,mkey);
518  break;
519  case eLaplacian:
520  LaplacianMatrixOp(inarray,outarray,mkey);
521  break;
522  case eLaplacian00:
523  LaplacianMatrixOp(0,0,inarray,outarray,mkey);
524  break;
525  case eLaplacian01:
526  LaplacianMatrixOp(0,1,inarray,outarray,mkey);
527  break;
528  case eLaplacian02:
529  LaplacianMatrixOp(0,2,inarray,outarray,mkey);
530  break;
531  case eLaplacian10:
532  LaplacianMatrixOp(1,0,inarray,outarray,mkey);
533  break;
534  case eLaplacian11:
535  LaplacianMatrixOp(1,1,inarray,outarray,mkey);
536  break;
537  case eLaplacian12:
538  LaplacianMatrixOp(1,2,inarray,outarray,mkey);
539  break;
540  case eLaplacian20:
541  LaplacianMatrixOp(2,0,inarray,outarray,mkey);
542  break;
543  case eLaplacian21:
544  LaplacianMatrixOp(2,1,inarray,outarray,mkey);
545  break;
546  case eLaplacian22:
547  LaplacianMatrixOp(2,2,inarray,outarray,mkey);
548  break;
549  case eHelmholtz:
550  HelmholtzMatrixOp(inarray,outarray,mkey);
551  break;
552  default:
553  NEKERROR(ErrorUtil::efatal, "This matrix does not have an operator");
554  break;
555  }
556  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:931
void WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:966
void MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:981
void HelmholtzMatrixOp(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)
Definition: StdExpansion.h:938
void WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:974
void LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
Definition: StdExpansion.h:988
void Nektar::StdRegions::StdExpansion::GeneralMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 558 of file StdExpansion.cpp.

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

Referenced by CreateGeneralMatrix().

561  {
562  switch(mkey.GetMatrixType())
563  {
564  case eMass:
565  MassMatrixOp_MatFree(inarray,outarray,mkey);
566  break;
567  case eWeakDeriv0:
568  WeakDerivMatrixOp_MatFree(0,inarray,outarray,mkey);
569  break;
570  case eWeakDeriv1:
571  WeakDerivMatrixOp_MatFree(1,inarray,outarray,mkey);
572  break;
573  case eWeakDeriv2:
574  WeakDerivMatrixOp_MatFree(2,inarray,outarray,mkey);
575  break;
577  WeakDirectionalDerivMatrixOp_MatFree(inarray,outarray,mkey);
578  break;
579  case eMassLevelCurvature:
580  MassLevelCurvatureMatrixOp_MatFree(inarray,outarray,mkey);
581  break;
583  LinearAdvectionDiffusionReactionMatrixOp_MatFree(inarray,outarray,mkey,false);
584  break;
587  break;
588  case eLaplacian:
589  LaplacianMatrixOp_MatFree(inarray,outarray,mkey);
590  break;
591  case eLaplacian00:
592  LaplacianMatrixOp_MatFree(0,0,inarray,outarray,mkey);
593  break;
594  case eLaplacian01:
595  LaplacianMatrixOp_MatFree(0,1,inarray,outarray,mkey);
596  break;
597  case eLaplacian02:
598  LaplacianMatrixOp_MatFree(0,2,inarray,outarray,mkey);
599  break;
600  case eLaplacian10:
601  LaplacianMatrixOp_MatFree(1,0,inarray,outarray,mkey);
602  break;
603  case eLaplacian11:
604  LaplacianMatrixOp_MatFree(1,1,inarray,outarray,mkey);
605  break;
606  case eLaplacian12:
607  LaplacianMatrixOp_MatFree(1,2,inarray,outarray,mkey);
608  break;
609  case eLaplacian20:
610  LaplacianMatrixOp_MatFree(2,0,inarray,outarray,mkey);
611  break;
612  case eLaplacian21:
613  LaplacianMatrixOp_MatFree(2,1,inarray,outarray,mkey);
614  break;
615  case eLaplacian22:
616  LaplacianMatrixOp_MatFree(2,2,inarray,outarray,mkey);
617  break;
618  case eHelmholtz:
619  HelmholtzMatrixOp_MatFree(inarray,outarray,mkey);
620  break;
621  default:
622  NEKERROR(ErrorUtil::efatal, "This matrix does not have an operator");
623  break;
624  }
625  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void WeakDirectionalDerivMatrixOp_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 LinearAdvectionDiffusionReactionMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
void WeakDerivMatrixOp_MatFree(const int i, 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 MassMatrixOp_MatFree(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)
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::GenMatrix ( const StdMatrixKey mkey)
inline
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 107 of file StdExpansion.h.

References m_base.

108  {
109  return(m_base);
110  }
Array< OneD, LibUtilities::BasisSharedPtr > m_base
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.

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), Nektar::StdRegions::StdQuadExp::v_DetEdgeBasisKey(), Nektar::StdRegions::StdTriExp::v_DetEdgeBasisKey(), and Nektar::LocalRegions::SegExp::v_GetBasis().

119  {
120  ASSERTL1(dir < m_base.num_elements(),
121  "dir is larger than number of bases");
122  return(m_base[dir]);
123  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
Array< OneD, LibUtilities::BasisSharedPtr > m_base
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 178 of file StdExpansion.h.

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::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdTriExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdPyrExp::v_GetEdgeNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetFaceIntNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetFaceIntNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetFaceNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetFaceNcoeffs(), Nektar::StdRegions::StdTetExp::v_GetFaceNcoeffs(), Nektar::StdRegions::StdPyrExp::v_GetFaceNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetTotalEdgeIntNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetTotalEdgeIntNcoeffs(), Nektar::StdRegions::StdHexExp::v_GetTotalFaceIntNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetTotalFaceIntNcoeffs(), Nektar::StdRegions::StdNodalTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdQuadExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumDGBndryCoeffs(), and Nektar::StdRegions::StdQuadExp::v_NumDGBndryCoeffs().

179  {
180  ASSERTL1(dir < m_base.num_elements(),"dir is larger than m_numbases");
181  return(m_base[dir]->GetNumModes());
182  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
Array< OneD, LibUtilities::BasisSharedPtr > m_base
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 165 of file StdExpansion.h.

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::SegExp::ReverseCoeffsAndSign(), Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTriExp::v_DetEdgeBasisKey(), Nektar::StdRegions::StdPrismExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdHexExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdTetExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdPyrExp::v_DetFaceBasisKey(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::StdRegions::StdPointExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPyrExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdTriExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdPrismExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdHexExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdTetExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdPyrExp::v_GetEdgeBasisType(), Nektar::StdRegions::StdHexExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetFaceInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetVertexMap(), Nektar::StdRegions::StdQuadExp::v_GetVertexMap(), Nektar::StdRegions::StdHexExp::v_GetVertexMap(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdPrismExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdHexExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdSegExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTetExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTriExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdQuadExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdQuadExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::TriExp::v_ReduceOrderCoeffs(), and Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs().

166  {
167  ASSERTL1(dir < m_base.num_elements(), "dir is larger than m_numbases");
168  return(m_base[dir]->GetBasisType());
169  }
LibUtilities::BasisType GetBasisType(const int dir) const
This function returns the type of basis used in the dir direction.
Definition: StdExpansion.h:165
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
Array< OneD, LibUtilities::BasisSharedPtr > m_base
void Nektar::StdRegions::StdExpansion::GetBoundaryMap ( Array< OneD, unsigned int > &  outarray)
inline
StdRegions::Orientation Nektar::StdRegions::StdExpansion::GetCartesianEorient ( int  edge)
inline

Definition at line 746 of file StdExpansion.h.

References v_GetCartesianEorient().

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

747  {
748  return v_GetCartesianEorient(edge);
749  }
virtual StdRegions::Orientation v_GetCartesianEorient(int edge)
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 678 of file StdExpansion.h.

References v_GetCoord().

680  {
681  v_GetCoord(Lcoord, coord);
682  }
virtual void v_GetCoord(const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord)
int Nektar::StdRegions::StdExpansion::GetCoordim ( )
inline
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 660 of file StdExpansion.h.

References v_GetCoords().

Referenced by main().

663  {
664  v_GetCoords(coords_1,coords_2,coords_3);
665  }
virtual void v_GetCoords(Array< OneD, NekDouble > &coords_0, Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2)
LibUtilities::BasisType Nektar::StdRegions::StdExpansion::GetEdgeBasisType ( const int  i) const
inline

This function returns the type of expansion basis on the i-th edge.

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

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
ispecifies which edge
Returns
returns the expansion basis on the i-th edge

Definition at line 397 of file StdExpansion.h.

References v_GetEdgeBasisType().

Referenced by Nektar::StdRegions::StdQuadExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetEdgeToElementMap(), Nektar::StdRegions::StdQuadExp::v_GetEdgeToElementMap(), Nektar::StdRegions::StdPrismExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdHexExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdPyrExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdTriExp::v_GetVertexMap(), Nektar::StdRegions::StdPrismExp::v_GetVertexMap(), Nektar::StdRegions::StdTetExp::v_GetVertexMap(), and Nektar::StdRegions::StdPyrExp::v_GetVertexMap().

398  {
399  return v_GetEdgeBasisType(i);
400  }
virtual LibUtilities::BasisType v_GetEdgeBasisType(const int i) const
void Nektar::StdRegions::StdExpansion::GetEdgeInteriorMap ( const int  eid,
const Orientation  edgeOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
inline

Definition at line 806 of file StdExpansion.h.

References v_GetEdgeInteriorMap().

Referenced by Nektar::LocalRegions::Expansion3D::v_GetEdgeInverseBoundaryMap(), and Nektar::LocalRegions::Expansion2D::v_GetEdgeInverseBoundaryMap().

809  {
810  v_GetEdgeInteriorMap(eid,edgeOrient,maparray,signarray);
811  }
virtual void v_GetEdgeInteriorMap(const int eid, const Orientation edgeOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
void Nektar::StdRegions::StdExpansion::GetEdgeInterpVals ( const int  edge,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 870 of file StdExpansion.h.

References v_GetEdgeInterpVals().

873  {
874  v_GetEdgeInterpVals(edge, inarray, outarray);
875  }
virtual void v_GetEdgeInterpVals(const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
Array<OneD, unsigned int> Nektar::StdRegions::StdExpansion::GetEdgeInverseBoundaryMap ( int  eid)
inline
int Nektar::StdRegions::StdExpansion::GetEdgeNcoeffs ( const int  i) const
inline
const NormalVector& Nektar::StdRegions::StdExpansion::GetEdgeNormal ( const int  edge) const
inline
int Nektar::StdRegions::StdExpansion::GetEdgeNumPoints ( const int  i) const
inline

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

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

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

Definition at line 308 of file StdExpansion.h.

References v_GetEdgeNumPoints().

309  {
310  return v_GetEdgeNumPoints(i);
311  }
virtual int v_GetEdgeNumPoints(const int i) const
void Nektar::StdRegions::StdExpansion::GetEdgePhysVals ( const int  edge,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Extract the physical values along edge edge from inarray into outarray following the local edge orientation and point distribution defined by defined in EdgeExp.

Definition at line 843 of file StdExpansion.h.

References v_GetEdgePhysVals().

Referenced by Nektar::MultiRegions::DisContField3DHomogeneous1D::GetBCValues().

846  {
847  v_GetEdgePhysVals(edge,inarray,outarray);
848  }
virtual void v_GetEdgePhysVals(const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
Extract the physical values along edge edge from inarray into outarray following the local edge orien...
void Nektar::StdRegions::StdExpansion::GetEdgePhysVals ( const int  edge,
const boost::shared_ptr< StdExpansion > &  EdgeExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 850 of file StdExpansion.h.

References v_GetEdgePhysVals().

854  {
855  v_GetEdgePhysVals(edge,EdgeExp,inarray,outarray);
856  }
virtual void v_GetEdgePhysVals(const int edge, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
Extract the physical values along edge edge from inarray into outarray following the local edge orien...
void Nektar::StdRegions::StdExpansion::GetEdgeQFactors ( const int  edge,
Array< OneD, NekDouble > &  outarray 
)
inline

Extract the metric factors to compute the contravariant fluxes along edge edge and stores them into outarray following the local edge orientation (i.e. anticlockwise convention).

Definition at line 883 of file StdExpansion.h.

References v_GetEdgeQFactors().

886  {
887  v_GetEdgeQFactors(edge, outarray);
888  }
virtual void v_GetEdgeQFactors(const int edge, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::GetEdgeToElementMap ( const int  eid,
const Orientation  edgeOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
inline
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 638 of file StdExpansion.h.

References m_elmt_id.

639  {
640  return m_elmt_id;
641  }
StdRegions::Orientation Nektar::StdRegions::StdExpansion::GetEorient ( int  edge)
inline
void Nektar::StdRegions::StdExpansion::GetFaceInteriorMap ( const int  fid,
const Orientation  faceOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
inline

Definition at line 813 of file StdExpansion.h.

References v_GetFaceInteriorMap().

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

816  {
817  v_GetFaceInteriorMap(fid,faceOrient,maparray,signarray);
818  }
virtual void v_GetFaceInteriorMap(const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray)
int Nektar::StdRegions::StdExpansion::GetFaceIntNcoeffs ( const int  i) const
inline
Array<OneD, unsigned int> Nektar::StdRegions::StdExpansion::GetFaceInverseBoundaryMap ( int  fid,
StdRegions::Orientation  faceOrient = eNoOrientation 
)
inline

Definition at line 1293 of file StdExpansion.h.

References v_GetFaceInverseBoundaryMap().

Referenced by Nektar::LocalRegions::Expansion3D::v_BuildInverseTransformationMatrix(), and Nektar::LocalRegions::Expansion3D::v_BuildTransformationMatrix().

1294  {
1295  return v_GetFaceInverseBoundaryMap(fid,faceOrient);
1296  }
virtual Array< OneD, unsigned int > v_GetFaceInverseBoundaryMap(int fid, StdRegions::Orientation faceOrient=eNoOrientation)
int Nektar::StdRegions::StdExpansion::GetFaceNcoeffs ( const int  i) const
inline

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

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

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

Definition at line 354 of file StdExpansion.h.

References v_GetFaceNcoeffs().

Referenced by Nektar::LocalRegions::Expansion3D::SetFaceToGeomOrientation(), Nektar::LocalRegions::Expansion3D::SetTraceToGeomOrientation(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GetFaceToElementMap(), and Nektar::StdRegions::StdPyrExp::v_GetFaceToElementMap().

355  {
356  return v_GetFaceNcoeffs(i);
357  }
virtual int v_GetFaceNcoeffs(const int i) const
const NormalVector& Nektar::StdRegions::StdExpansion::GetFaceNormal ( const int  face) const
inline

Definition at line 1261 of file StdExpansion.h.

References v_GetFaceNormal().

Referenced by Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), Nektar::LocalRegions::Expansion3D::AddNormTraceInt(), and Nektar::LocalRegions::Expansion3D::v_GenMatrix().

1262  {
1263  return v_GetFaceNormal(face);
1264  }
virtual const NormalVector & v_GetFaceNormal(const int face) const
int Nektar::StdRegions::StdExpansion::GetFaceNumPoints ( const int  i) const
inline

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

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

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

Definition at line 339 of file StdExpansion.h.

References v_GetFaceNumPoints().

Referenced by Nektar::LocalRegions::PyrExp::v_GetFacePhysVals(), Nektar::LocalRegions::TetExp::v_GetFacePhysVals(), Nektar::LocalRegions::PrismExp::v_GetFacePhysVals(), and Nektar::LocalRegions::HexExp::v_GetFacePhysVals().

340  {
341  return v_GetFaceNumPoints(i);
342  }
virtual int v_GetFaceNumPoints(const int i) const
void Nektar::StdRegions::StdExpansion::GetFacePhysVals ( const int  face,
const boost::shared_ptr< StdExpansion > &  FaceExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
StdRegions::Orientation  orient = eNoOrientation 
)
inline

Definition at line 892 of file StdExpansion.h.

References v_GetFacePhysVals().

898  {
899  v_GetFacePhysVals(face, FaceExp, inarray, outarray, orient);
900  }
virtual void v_GetFacePhysVals(const int face, const boost::shared_ptr< StdExpansion > &FaceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient)
LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::GetFacePointsKey ( const int  i,
const int  j 
) const
inline

Definition at line 369 of file StdExpansion.h.

References v_GetFacePointsKey().

370  {
371  return v_GetFacePointsKey(i, j);
372  }
virtual LibUtilities::PointsKey v_GetFacePointsKey(const int i, const int j) const
void Nektar::StdRegions::StdExpansion::GetFaceToElementMap ( const int  fid,
const Orientation  faceOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
int  nummodesA = -1,
int  nummodesB = -1 
)
inline

Definition at line 827 of file StdExpansion.h.

References v_GetFaceToElementMap().

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

831  {
832  v_GetFaceToElementMap(fid,faceOrient,maparray,signarray,
833  nummodesA,nummodesB);
834  }
virtual void v_GetFaceToElementMap(const int fid, const Orientation faceOrient, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, int nummodesA=-1, int nummodesB=-1)
StdRegions::Orientation Nektar::StdRegions::StdExpansion::GetForient ( int  face)
inline
IndexMapValuesSharedPtr Nektar::StdRegions::StdExpansion::GetIndexMap ( const IndexMapKey ikey)
inline

Definition at line 694 of file StdExpansion.h.

References m_IndexMapManager.

695  {
696  return m_IndexMapManager[ikey];
697  }
LibUtilities::NekManager< IndexMapKey, IndexMapValues, IndexMapKey::opLess > m_IndexMapManager
void Nektar::StdRegions::StdExpansion::GetInteriorMap ( Array< OneD, unsigned int > &  outarray)
inline
DNekScalBlkMatSharedPtr Nektar::StdRegions::StdExpansion::GetLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
inline
const boost::shared_ptr<SpatialDomains::GeomFactors>& Nektar::StdRegions::StdExpansion::GetMetricInfo ( void  ) const
inline
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 131 of file StdExpansion.h.

References m_ncoeffs.

Referenced by Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzEdgeTerms(), Nektar::LocalRegions::Expansion3D::AddHDGHelmholtzFaceTerms(), Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LocalRegions::Expansion2D::GetPhysEdgeVarCoeffsFromElement(), LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::Expansion1D::v_AddRobinEdgeContribution(), Nektar::LocalRegions::Expansion2D::v_AddRobinEdgeContribution(), Nektar::LocalRegions::Expansion1D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_DGDeriv(), Nektar::LocalRegions::Expansion2D::v_DGDeriv(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::LocalRegions::Expansion1D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter().

132  {
133  return(m_ncoeffs);
134  }
int Nektar::StdRegions::StdExpansion::GetNedges ( ) const
inline
int Nektar::StdRegions::StdExpansion::GetNfaces ( ) const
inline

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

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

Returns
returns the number of faces of the expansion domain

Definition at line 422 of file StdExpansion.h.

References v_GetNfaces().

Referenced by Nektar::LocalRegions::Expansion3D::AddNormTraceInt(), Nektar::MultiRegions::ExpList2D::ExpList2D(), GetNtrace(), Nektar::LocalRegions::Expansion3D::SetFaceExp(), Nektar::LocalRegions::Expansion3D::SetTraceToGeomOrientation(), Nektar::LocalRegions::Expansion3D::v_AddFaceNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_BuildInverseTransformationMatrix(), and Nektar::LocalRegions::Expansion3D::v_GenMatrix().

423  {
424  return v_GetNfaces();
425  }
virtual int v_GetNfaces() const
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 409 of file StdExpansion.h.

References v_GetNodalPointsKey().

410  {
411  return v_GetNodalPointsKey();
412  };
virtual const LibUtilities::PointsKey v_GetNodalPointsKey() const
int Nektar::StdRegions::StdExpansion::GetNtrace ( ) const
inline

Returns the number of trace elements connected to this element.

For example, a quadrilateral has four edges, so this function would return 4.

Definition at line 434 of file StdExpansion.h.

References GetNedges(), GetNfaces(), and m_base.

435  {
436  const int nBase = m_base.num_elements();
437  return
438  nBase == 1 ? 2 :
439  nBase == 2 ? GetNedges() :
440  nBase == 3 ? GetNfaces() : 0;
441  }
int GetNfaces() const
This function returns the number of faces of the expansion domain.
Definition: StdExpansion.h:422
Array< OneD, LibUtilities::BasisSharedPtr > m_base
int GetNedges() const
This function returns the number of edges of the expansion domain.
Definition: StdExpansion.h:272
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 98 of file StdExpansion.h.

References m_base.

99  {
100  return m_base.num_elements();
101  }
Array< OneD, LibUtilities::BasisSharedPtr > m_base
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 229 of file StdExpansion.h.

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdQuadExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdPyrExp::v_BwdTrans(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_DetEdgeBasisKey(), Nektar::StdRegions::StdPrismExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdHexExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdTetExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdPyrExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdPointExp::v_GetCoords(), Nektar::StdRegions::StdPrismExp::v_GetCoords(), Nektar::StdRegions::StdTetExp::v_GetCoords(), Nektar::StdRegions::StdSegExp::v_GetCoords(), Nektar::StdRegions::StdTriExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetCoords(), Nektar::StdRegions::StdPyrExp::v_GetCoords(), Nektar::StdRegions::StdHexExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetEdgeNumPoints(), Nektar::StdRegions::StdTriExp::v_GetEdgeNumPoints(), Nektar::LocalRegions::SegExp::v_GetNumPoints(), Nektar::LocalRegions::TriExp::v_GetNumPoints(), and Nektar::LocalRegions::QuadExp::v_GetNumPoints().

230  {
231  ASSERTL1(dir < m_base.num_elements() || dir == 0,
232  "dir is larger than m_numbases");
233  return(m_base.num_elements() > 0 ? m_base[dir]->GetNumPoints() : 1);
234  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
Array< OneD, LibUtilities::BasisSharedPtr > m_base
int Nektar::StdRegions::StdExpansion::GetNverts ( ) const
inline

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

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

Returns
returns the number of vertices of the expansion domain

Definition at line 259 of file StdExpansion.h.

References v_GetNverts().

Referenced by Nektar::LocalRegions::Expansion3D::v_BuildInverseTransformationMatrix(), Nektar::LocalRegions::Expansion3D::v_BuildTransformationMatrix(), Nektar::LocalRegions::Expansion3D::v_BuildVertexMatrix(), and Nektar::LocalRegions::Expansion2D::v_BuildVertexMatrix().

260  {
261  return v_GetNverts();
262  }
virtual int v_GetNverts() const =0
const Array<OneD, const NekDouble>& Nektar::StdRegions::StdExpansion::GetPhysNormals ( void  )
inline

Definition at line 699 of file StdExpansion.h.

References v_GetPhysNormals().

700  {
701  return v_GetPhysNormals();
702  }
virtual const Array< OneD, const NekDouble > & v_GetPhysNormals(void)
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 243 of file StdExpansion.h.

References m_base.

244  {
245  return m_base[dir]->GetZ();
246  }
Array< OneD, LibUtilities::BasisSharedPtr > m_base
const LibUtilities::PointsKeyVector Nektar::StdRegions::StdExpansion::GetPointsKeys ( ) const
inline

Definition at line 1276 of file StdExpansion.h.

References m_base.

Referenced by Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), Nektar::LocalRegions::PyrExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::CreateMatrix(), Nektar::LocalRegions::TetExp::CreateMatrix(), Nektar::LocalRegions::PrismExp::CreateMatrix(), Nektar::LocalRegions::QuadExp::CreateMatrix(), Nektar::LocalRegions::TriExp::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::HexExp::CreateMatrix(), Nektar::LocalRegions::QuadExp::CreateStaticCondMatrix(), Nektar::LocalRegions::TriExp::CreateStaticCondMatrix(), Nektar::LocalRegions::NodalTriExp::Integral(), Nektar::LocalRegions::HexExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::NodalTriExp::PhysDeriv(), Nektar::LocalRegions::QuadExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::TriExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::NodalTriExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::PyrExp::v_ComputeFaceNormal(), Nektar::LocalRegions::TetExp::v_ComputeFaceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeFaceNormal(), Nektar::LocalRegions::HexExp::v_ComputeFaceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TetExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::SegExp::v_ComputeVertexNormal(), Nektar::LocalRegions::QuadExp::v_GetEdgeQFactors(), Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_Integral(), Nektar::LocalRegions::PrismExp::v_Integral(), Nektar::LocalRegions::TetExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_Integral(), Nektar::LocalRegions::TriExp::v_Integral(), Nektar::LocalRegions::QuadExp::v_Integral(), Nektar::LocalRegions::HexExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_IProductWRTBase(), Nektar::LocalRegions::SegExp::v_IProductWRTBase(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::SegExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::TetExp::v_PhysDeriv(), Nektar::LocalRegions::PrismExp::v_PhysDeriv(), Nektar::LocalRegions::PyrExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv_n(), Nektar::LocalRegions::SegExp::v_PhysDeriv_s(), Nektar::LocalRegions::TriExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter(), and Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter().

1277  {
1279  for (int i = 0; i < m_base.num_elements(); ++i)
1280  {
1281  p.push_back(m_base[i]->GetPointsKey());
1282  }
1283  return p;
1284  }
std::vector< PointsKey > PointsKeyVector
Definition: Points.h:220
Array< OneD, LibUtilities::BasisSharedPtr > m_base
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 216 of file StdExpansion.h.

References ASSERTL1, and m_base.

Referenced by Nektar::LocalRegions::QuadExp::v_ComputeEdgeNormal(), Nektar::StdRegions::StdTriExp::v_DetEdgeBasisKey(), Nektar::LocalRegions::QuadExp::v_GetEdgePhysVals(), Nektar::LocalRegions::QuadExp::v_GetEdgeQFactors(), Nektar::LocalRegions::SegExp::v_GetVertexPhysVals(), Nektar::StdRegions::StdTriExp::v_Integral(), Nektar::StdRegions::StdPyrExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdPrismExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTetExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTriExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter().

217  {
218  ASSERTL1(dir < m_base.num_elements(), "dir is larger than m_numbases");
219  return(m_base[dir]->GetPointsType());
220  }
LibUtilities::PointsType GetPointsType(const int dir) const
This function returns the type of quadrature points used in the dir direction.
Definition: StdExpansion.h:216
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
Array< OneD, LibUtilities::BasisSharedPtr > m_base
StdRegions::Orientation Nektar::StdRegions::StdExpansion::GetPorient ( int  point)
inline

Definition at line 741 of file StdExpansion.h.

References v_GetPorient().

742  {
743  return v_GetPorient(point);
744  }
virtual StdRegions::Orientation v_GetPorient(int point)
int Nektar::StdRegions::StdExpansion::GetShapeDimension ( ) const
inline

Definition at line 465 of file StdExpansion.h.

References v_GetShapeDimension().

466  {
467  return v_GetShapeDimension();
468  }
virtual int v_GetShapeDimension() const
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 1328 of file StdExpansion.h.

References v_GetSimplexEquiSpacedConnectivity().

1331  {
1332  v_GetSimplexEquiSpacedConnectivity(conn,standard);
1333  }
virtual void v_GetSimplexEquiSpacedConnectivity(Array< OneD, int > &conn, bool standard=true)
boost::shared_ptr<StdExpansion> Nektar::StdRegions::StdExpansion::GetStdExp ( void  ) const
inline

Definition at line 459 of file StdExpansion.h.

References v_GetStdExp().

460  {
461  return v_GetStdExp();
462  }
virtual boost::shared_ptr< StdExpansion > v_GetStdExp(void) const
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::GetStdMatrix ( const StdMatrixKey mkey)
inline

Definition at line 684 of file StdExpansion.h.

References m_stdMatrixManager.

Referenced by BwdTrans_MatOp(), CreateGeneralMatrix(), Nektar::LocalRegions::PyrExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::CreateMatrix(), Nektar::LocalRegions::TetExp::CreateMatrix(), Nektar::LocalRegions::PrismExp::CreateMatrix(), Nektar::LocalRegions::QuadExp::CreateMatrix(), Nektar::LocalRegions::TriExp::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::HexExp::CreateMatrix(), CreateStdStaticCondMatrix(), Nektar::LinearisedAdvection::GetFloquetBlockMatrix(), Nektar::AdjointAdvection::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::StdRegions::StdPointExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdTetExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_MatOp(), and Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_MatOp().

685  {
686  return m_stdMatrixManager[mkey];
687  }
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLess > m_stdMatrixManager
DNekBlkMatSharedPtr Nektar::StdRegions::StdExpansion::GetStdStaticCondMatrix ( const StdMatrixKey mkey)
inline
const NormalVector& Nektar::StdRegions::StdExpansion::GetSurfaceNormal ( const int  id) const
inline

Definition at line 1271 of file StdExpansion.h.

References v_GetSurfaceNormal().

1272  {
1273  return v_GetSurfaceNormal(id);
1274  }
virtual const NormalVector & v_GetSurfaceNormal(const int id) const
int Nektar::StdRegions::StdExpansion::GetTotalEdgeIntNcoeffs ( ) const
inline

Definition at line 293 of file StdExpansion.h.

References v_GetTotalEdgeIntNcoeffs().

294  {
295  return v_GetTotalEdgeIntNcoeffs();
296  }
virtual int v_GetTotalEdgeIntNcoeffs() const
int Nektar::StdRegions::StdExpansion::GetTotalFaceIntNcoeffs ( ) const
inline

Definition at line 364 of file StdExpansion.h.

References v_GetTotalFaceIntNcoeffs().

365  {
366  return v_GetTotalFaceIntNcoeffs();
367  }
virtual int v_GetTotalFaceIntNcoeffs() const
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 141 of file StdExpansion.h.

References m_base.

Referenced by Nektar::SubSteppingExtrapolate::AddDuDt2D(), Nektar::SubSteppingExtrapolate::AddDuDt3D(), Nektar::LocalRegions::Expansion2D::AddHDGHelmholtzTraceTerms(), BwdTrans_MatOp(), 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::HexExp::IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), L2(), LaplacianMatrixOp_MatFree(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Linf(), main(), MassMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv(), Nektar::Utilities::ProcessDisplacement::Process(), Nektar::Utilities::ProcessScalGrad::Process(), Nektar::Utilities::ProcessWSS::Process(), Nektar::StdRegions::StdMatrixKey::StdMatrixKey(), Nektar::FilterMovingBody::UpdateForce(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TetExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdExpansion3D::v_Integral(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_MatOp(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::Expansion::v_MultiplyByQuadratureMetric(), Nektar::LocalRegions::PrismExp::v_PhysDeriv(), Nektar::StdRegions::StdExpansion0D::v_PhysEvaluate(), Nektar::StdRegions::StdExpansion1D::v_PhysEvaluate(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter(), Nektar::SolverUtils::FilterAeroForces::v_Update(), WeakDerivMatrixOp_MatFree(), and WeakDirectionalDerivMatrixOp_MatFree().

142  {
143  int i;
144  int nqtot = 1;
145 
146  for(i=0; i < m_base.num_elements(); ++i)
147  {
148  nqtot *= m_base[i]->GetNumPoints();
149  }
150 
151  return nqtot;
152  }
Array< OneD, LibUtilities::BasisSharedPtr > m_base
void Nektar::StdRegions::StdExpansion::GetTracePhysVals ( const int  edge,
const boost::shared_ptr< StdExpansion > &  EdgeExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 858 of file StdExpansion.h.

References v_GetTracePhysVals().

859  {
860  v_GetTracePhysVals(edge,EdgeExp,inarray,outarray);
861  }
virtual void v_GetTracePhysVals(const int edge, const boost::shared_ptr< StdExpansion > &EdgeExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient=eNoOrientation)
int Nektar::StdRegions::StdExpansion::GetVertexMap ( const int  localVertexId,
bool  useCoeffPacking = false 
)
inline
const NormalVector& Nektar::StdRegions::StdExpansion::GetVertexNormal ( const int  vertex) const
inline

Definition at line 1266 of file StdExpansion.h.

References v_GetVertexNormal().

1267  {
1268  return v_GetVertexNormal(vertex);
1269  }
virtual const NormalVector & v_GetVertexNormal(const int vertex) const
void Nektar::StdRegions::StdExpansion::GetVertexPhysVals ( const int  vertex,
const Array< OneD, const NekDouble > &  inarray,
NekDouble outarray 
)
inline

Definition at line 863 of file StdExpansion.h.

References v_GetVertexPhysVals().

866  {
867  v_GetVertexPhysVals(vertex, inarray, outarray);
868  }
virtual void v_GetVertexPhysVals(const int vertex, const Array< OneD, const NekDouble > &inarray, NekDouble &outarray)
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 158 of file StdExpansion.cpp.

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

160  {
161  int i;
162  NekDouble val;
163  int ntot = GetTotPoints();
164  int coordim = v_GetCoordim();
165  Array<OneD, NekDouble> wsp(3*ntot);
166  Array<OneD, NekDouble> wsp_deriv = wsp + ntot;
167  Array<OneD, NekDouble> sum = wsp_deriv + ntot;
168 
169  if(sol == NullNekDouble1DArray)
170  {
171  Vmath::Vcopy(ntot,phys, 1, wsp, 1);
172  Vmath::Vmul(ntot, phys, 1, phys, 1, sum, 1);
173  }
174  else
175  {
176  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
177  Vmath::Vmul(ntot, wsp, 1, wsp, 1, sum, 1);
178  }
179 
180 
181  for(i = 0; i < coordim; ++i)
182  {
183  v_PhysDeriv(i,wsp,wsp_deriv);
184  Vmath::Vvtvp(ntot,wsp_deriv,1,wsp_deriv,1,sum,1,sum,1);
185  }
186 
187  val = sqrt(v_Integral(sum));
188 
189  return val;
190  }
static Array< OneD, NekDouble > NullNekDouble1DArray
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:428
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.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
double NekDouble
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:329
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1038
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:169
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 1002 of file StdExpansion.h.

References v_HelmholtzMatrixOp().

Referenced by GeneralMatrixOp().

1005  {
1006  v_HelmholtzMatrixOp(inarray,outarray,mkey);
1007  }
virtual void v_HelmholtzMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inlineprotected

Definition at line 1465 of file StdExpansion.h.

References v_HelmholtzMatrixOp_MatFree().

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

1468  {
1469  v_HelmholtzMatrixOp_MatFree(inarray,outarray,mkey);
1470  }
virtual void v_HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::HelmholtzMatrixOp_MatFree_GenericImpl ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 894 of file StdExpansion.cpp.

References DetShapeType(), Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eMass, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), LaplacianMatrixOp(), m_ncoeffs, and MassMatrixOp().

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

897  {
898  NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
899  Array<OneD,NekDouble> tmp(m_ncoeffs);
900  StdMatrixKey mkeymass(eMass,DetShapeType(),*this);
901  StdMatrixKey mkeylap(eLaplacian,DetShapeType(),*this);
902 
903  MassMatrixOp(inarray,tmp,mkeymass);
904  LaplacianMatrixOp(inarray,outarray,mkeylap);
905 
906  Blas::Daxpy(m_ncoeffs, lambda, tmp, 1, outarray, 1);
907  }
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
Definition: StdExpansion.h:454
void MassMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:931
double NekDouble
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:938
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 558 of file StdExpansion.h.

References v_Integral().

559  {
560  return v_Integral(inarray);
561  }
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
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} $

Parameters
inarraycontains the values of the function f evaluated at the quadrature points
outarraycontains the values of the inner product of f with the different modes, i.e. $ outarray[p] = I[p]$ (output of the function)

Definition at line 613 of file StdExpansion.h.

References v_IProductWRTBase().

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

615  {
616  v_IProductWRTBase(inarray, outarray);
617  }
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...
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 619 of file StdExpansion.h.

References v_IProductWRTBase().

624  {
625  v_IProductWRTBase(base, inarray, outarray, coll_check);
626  }
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...
void Nektar::StdRegions::StdExpansion::IProductWRTBase_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
bool  multiplybyweights = true 
)
inline

Definition at line 1348 of file StdExpansion.h.

References v_IProductWRTBase_SumFac().

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

1351  {
1352  v_IProductWRTBase_SumFac(inarray,outarray,multiplybyweights);
1353  }
virtual void v_IProductWRTBase_SumFac(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true)
void Nektar::StdRegions::StdExpansion::IProductWRTDerivBase ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 629 of file StdExpansion.h.

References v_IProductWRTDerivBase().

632  {
633  v_IProductWRTDerivBase(dir,inarray, outarray);
634  }
virtual void v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::IProductWRTDerivBase_SumFac ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inlineprotected

Definition at line 1401 of file StdExpansion.h.

References v_IProductWRTDerivBase_SumFac().

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

1404  {
1405  v_IProductWRTDerivBase_SumFac(dir,inarray,outarray);
1406  }
virtual void v_IProductWRTDerivBase_SumFac(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
bool Nektar::StdRegions::StdExpansion::IsBoundaryInteriorExpansion ( )
inline
bool Nektar::StdRegions::StdExpansion::IsNodalNonTensorialExp ( )
inline

Definition at line 476 of file StdExpansion.h.

References v_IsNodalNonTensorialExp().

477  {
478  return v_IsNodalNonTensorialExp();
479  }
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 128 of file StdExpansion.cpp.

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

130  {
131  NekDouble val;
132  int ntot = GetTotPoints();
133  Array<OneD, NekDouble> wsp(ntot);
134 
135  if (sol.num_elements() == 0)
136  {
137  Vmath::Vmul(ntot, phys, 1, phys, 1, wsp, 1);
138  }
139  else
140  {
141  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
142  Vmath::Vmul(ntot, wsp, 1, wsp, 1, wsp, 1);
143  }
144 
145  val = v_Integral(wsp);
146 
147  // if val too small, sqrt returns nan.
149  {
150  return 0.0;
151  }
152  else
153  {
154  return sqrt(val);
155  }
156  }
static const NekDouble kNekSqrtTol
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual NekDouble v_Integral(const Array< OneD, const NekDouble > &inarray)
Integrates the specified function over the domain.
double NekDouble
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:329
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:169
void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 938 of file StdExpansion.h.

References v_LaplacianMatrixOp().

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

941  {
942  v_LaplacianMatrixOp(inarray,outarray,mkey);
943  }
virtual void v_LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
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 958 of file StdExpansion.h.

References v_LaplacianMatrixOp().

962  {
963  v_LaplacianMatrixOp(k1,k2,inarray,outarray,mkey);
964  }
virtual void v_LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inlineprotected
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 644 of file StdExpansion.cpp.

References ASSERTL1, Nektar::StdRegions::StdMatrixKey::ConstFactorExists(), Nektar::StdRegions::eFactorSVVCutoffRatio, Nektar::StdRegions::eVarCoeffD00, Nektar::StdRegions::eVarCoeffD01, Nektar::StdRegions::eVarCoeffD02, Nektar::StdRegions::eVarCoeffD11, Nektar::StdRegions::eVarCoeffD12, Nektar::StdRegions::eVarCoeffD22, GetCoordim(), GetNcoeffs(), Nektar::StdRegions::StdMatrixKey::GetNVarCoeff(), GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::HasVarCoeff(), SVVLaplacianFilter(), v_BwdTrans(), v_IProductWRTDerivBase(), v_PhysDeriv(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vmul(), and Vmath::Zero().

648  {
649  ASSERTL1(k1 >= 0 && k1 < GetCoordim(),"invalid first argument");
650  ASSERTL1(k2 >= 0 && k2 < GetCoordim(),"invalid second argument");
651 
652  int nq = GetTotPoints();
653  Array<OneD, NekDouble> tmp(nq);
654  Array<OneD, NekDouble> dtmp(nq);
655  VarCoeffType varcoefftypes[3][3]
659  };
660 
661  v_BwdTrans(inarray,tmp);
662  v_PhysDeriv(k2,tmp,dtmp);
663  if (mkey.GetNVarCoeff())
664  {
665  if (k1 == k2)
666  {
667  // By default, k1 == k2 has \sigma = 1 (diagonal entries)
668  if(mkey.HasVarCoeff(varcoefftypes[k1][k1]))
669  {
670  Vmath::Vmul(nq, mkey.GetVarCoeff(varcoefftypes[k1][k1]), 1, dtmp, 1, dtmp, 1);
671  }
672  v_IProductWRTDerivBase(k1, dtmp, outarray);
673  }
674  else
675  {
676  // By default, k1 != k2 has \sigma = 0 (off-diagonal entries)
677  if(mkey.HasVarCoeff(varcoefftypes[k1][k2]))
678  {
679  Vmath::Vmul(nq, mkey.GetVarCoeff(varcoefftypes[k1][k2]), 1, dtmp, 1, dtmp, 1);
680  v_IProductWRTDerivBase(k1, dtmp, outarray);
681  }
682  else
683  {
684  Vmath::Zero(GetNcoeffs(), outarray, 1);
685  }
686  }
687  }
688  else
689  {
690  // Multiply by svv tensor
691  if(mkey.ConstFactorExists(eFactorSVVCutoffRatio))
692  {
693  Vmath::Vcopy(nq, dtmp, 1, tmp, 1);
694  SVVLaplacianFilter(dtmp,mkey);
695  Vmath::Vadd(nq, tmp, 1, dtmp, 1, dtmp, 1);
696  }
697  v_IProductWRTDerivBase(k1, dtmp, outarray);
698  }
699  }
void SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
Definition: StdExpansion.h:952
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.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual void v_IProductWRTDerivBase(const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
int GetNcoeffs(void) const
This function returns the total number of coefficients used in the expansion.
Definition: StdExpansion.h:131
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:359
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1038
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
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:285
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:169
void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree_GenericImpl ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 701 of file StdExpansion.cpp.

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

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

704  {
705  const int dim = GetCoordim();
706 
707  int i,j;
708 
709  Array<OneD,NekDouble> store(m_ncoeffs);
710  Array<OneD,NekDouble> store2(m_ncoeffs,0.0);
711 
712  if(mkey.GetNVarCoeff() == 0)
713  {
714  // just call diagonal matrix form of laplcian operator
715  for(i = 0; i < dim; ++i)
716  {
717  LaplacianMatrixOp(i,i,inarray,store,mkey);
718  Vmath::Vadd(m_ncoeffs, store, 1, store2, 1, store2, 1);
719  }
720  }
721  else
722  {
723  const MatrixType mtype[3][3]
727  StdMatrixKeySharedPtr mkeyij;
728 
729  for(i = 0; i < dim; i++)
730  {
731  for(j = 0; j < dim; j++)
732  {
733  mkeyij = MemoryManager<StdMatrixKey>::AllocateSharedPtr(mkey,mtype[i][j]);
734  LaplacianMatrixOp(i,j,inarray,store,*mkeyij);
735  Vmath::Vadd(m_ncoeffs, store, 1, store2, 1, store2, 1);
736  }
737  }
738  }
739 
740  Vmath::Vcopy(m_ncoeffs,store2.get(),1,outarray.get(),1);
741  }
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:938
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1038
boost::shared_ptr< StdMatrixKey > StdMatrixKeySharedPtr
Definition: StdMatrixKey.h:196
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:285
void Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree_Kernel ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
Array< OneD, NekDouble > &  wsp 
)
inlineprotected

Definition at line 1430 of file StdExpansion.h.

References v_LaplacianMatrixOp_MatFree_Kernel().

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

1434  {
1435  v_LaplacianMatrixOp_MatFree_Kernel(inarray, outarray, wsp);
1436  }
virtual void v_LaplacianMatrixOp_MatFree_Kernel(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp)
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 988 of file StdExpansion.h.

References v_LinearAdvectionDiffusionReactionMatrixOp().

Referenced by GeneralMatrixOp().

992  {
993  v_LinearAdvectionDiffusionReactionMatrixOp(inarray,outarray,mkey,addDiffusionTerm);
994  }
virtual void v_LinearAdvectionDiffusionReactionMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
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 838 of file StdExpansion.cpp.

References ASSERTL0, ASSERTL1, DetShapeType(), Nektar::StdRegions::eFactorLambda, Nektar::StdRegions::eLaplacian, Nektar::StdRegions::eVarCoeffVelX, Nektar::StdRegions::eVarCoeffVelY, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), GetCoordim(), Nektar::StdRegions::StdMatrixKey::GetNVarCoeff(), GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), 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().

842  {
843 
844  int i;
845  int ndir = mkey.GetNVarCoeff(); // assume num.r consts corresponds to directions
846  ASSERTL0(ndir,"Must define at least one advection velocity");
847 
848  NekDouble lambda = mkey.GetConstFactor(eFactorLambda);
849  int totpts = GetTotPoints();
850  Array<OneD, NekDouble> tmp(3*totpts);
851  Array<OneD, NekDouble> tmp_deriv = tmp + totpts;
852  Array<OneD, NekDouble> tmp_adv = tmp_deriv + totpts;
853 
854 
855  ASSERTL1(ndir <= GetCoordim(),"Number of constants is larger than coordinate dimensions");
856 
857  v_BwdTrans(inarray,tmp);
858 
859  VarCoeffType varcoefftypes[] = {eVarCoeffVelX, eVarCoeffVelY};
860 
861  //calculate u dx + v dy + ..
862  Vmath::Zero(totpts,tmp_adv,1);
863  for(i = 0; i < ndir; ++i)
864  {
865  v_PhysDeriv(i,tmp,tmp_deriv);
866  Vmath::Vvtvp(totpts,mkey.GetVarCoeff(varcoefftypes[i]),1,tmp_deriv,1,tmp_adv,1,tmp_adv,1);
867  }
868 
869  if(lambda) // add -lambda*u
870  {
871  Vmath::Svtvp(totpts,-lambda,tmp,1,tmp_adv,1,tmp_adv,1);
872  }
873 
874 
875  if(addDiffusionTerm)
876  {
877  Array<OneD, NekDouble> lap(m_ncoeffs);
878  StdMatrixKey mkeylap(eLaplacian,DetShapeType(),*this);
879  LaplacianMatrixOp(inarray,lap,mkeylap);
880 
881  v_IProductWRTBase(tmp_adv, outarray);
882  // Lap v - u.grad v + lambda*u
883  // => (grad u, grad v) + u.grad v - lambda*u
884  Vmath::Vadd(m_ncoeffs,lap,1,outarray,1,outarray,1);
885  }
886  else
887  {
888  v_IProductWRTBase(tmp_adv, outarray);
889  }
890 
891  }
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
Definition: StdExpansion.h:454
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
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:471
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:428
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.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
double NekDouble
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...
void LaplacianMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
Definition: StdExpansion.h:938
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:359
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
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:285
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 106 of file StdExpansion.cpp.

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

108  {
109  NekDouble val;
110  int ntot = GetTotPoints();
111  Array<OneD, NekDouble> wsp(ntot);
112 
113  if(sol == NullNekDouble1DArray)
114  {
115  Vmath::Vabs(ntot, phys, 1, wsp, 1);
116  }
117  else
118  {
119  Vmath::Vsub(ntot, sol, 1, phys, 1, wsp, 1);
120  Vmath::Vabs(ntot, wsp, 1, wsp, 1);
121  }
122 
123  val = Vmath::Vamax(ntot, wsp, 1);
124 
125  return val;
126  }
static Array< OneD, NekDouble > NullNekDouble1DArray
void Vabs(int n, const T *x, const int incx, T *y, const int incy)
vabs: y = |x|
Definition: Vmath.cpp:410
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
double NekDouble
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:802
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:329
void Nektar::StdRegions::StdExpansion::LocCoordToLocCollapsed ( const Array< OneD, const NekDouble > &  xi,
Array< OneD, NekDouble > &  eta 
)
inline

Convert local cartesian coordinate xi into local collapsed coordinates eta.

Definition at line 1133 of file StdExpansion.h.

References v_LocCoordToLocCollapsed().

Referenced by Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::StdRegions::StdExpansion2D::v_PhysEvaluate(), and Nektar::StdRegions::StdExpansion3D::v_PhysEvaluate().

1135  {
1136  v_LocCoordToLocCollapsed(xi,eta);
1137  }
virtual void v_LocCoordToLocCollapsed(const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta)
void Nektar::StdRegions::StdExpansion::MassLevelCurvatureMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 981 of file StdExpansion.h.

References v_MassLevelCurvatureMatrixOp().

Referenced by GeneralMatrixOp().

984  {
985  v_MassLevelCurvatureMatrixOp(inarray,outarray,mkey);
986  }
virtual void v_MassLevelCurvatureMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::MassLevelCurvatureMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected
Todo:
fix this

Definition at line 787 of file StdExpansion.cpp.

Referenced by GeneralMatrixOp_MatFree(), and v_MassLevelCurvatureMatrixOp().

790  {
791  ///@todo fix this
792  // int nqtot = GetTotPoints();
793  // int matrixid = mkey.GetMatrixID();
794  //
795  // NekDouble checkweight=0.0;
796  // Array<OneD, NekDouble> tmp(nqtot), tan(nqtot), dtan0(nqtot), dtan1(nqtot), weight(nqtot,0.0);
797  //
798  // int gmatnumber = (mkey.GetVariableCoefficient(1)).num_elements();
799  //
800  // v_BwdTrans(inarray,tmp);
801  //
802  // // weight = \grad \cdot tanvec
803  // for(int k = 0; k < GetCoordim(); ++k)
804  // {
805  // Vmath::Vcopy(nqtot, &(mkey.GetVariableCoefficient(0))[k*nqtot],
806  // 1, &tan[0], 1);
807  //
808  // // For Regular mesh ...
809  // if(gmatnumber==1)
810  // {
811  // // D_{/xi} and D_{/eta}
812  // v_PhysDeriv(0,tan,dtan0);
813  // v_PhysDeriv(1,tan,dtan1);
814  //
815  // // d v / d x_i = (d \xi / d x_i)*( d v / d \xi ) + (d \eta / d x_i)*( d v / d \eta )
816  // Vmath::Svtvp(nqtot,(mkey.GetVariableCoefficient(2*k+1))[0],&dtan0[0],1,&weight[0],1,&weight[0],1);
817  // Vmath::Svtvp(nqtot,(mkey.GetVariableCoefficient(2*k+2))[0],&dtan1[0],1,&weight[0],1,&weight[0],1);
818  // }
819  //
820  // // For Curved mesh ...
821  // else if(gmatnumber==nqtot)
822  // {
823  // // D_{x} and D_{y}
824  // v_PhysDeriv(k,tan,dtan0);
825  // Vmath::Vadd(nqtot,&dtan0[0],1,&weight[0],1,&weight[0],1);
826  // }
827  //
828  // else
829  // {
830  // ASSERTL1( ((gmatnumber=1) || (gmatnumber==nqtot) ), "Gmat is not in a right size");
831  // }
832  // }
833  //
834  // Vmath::Vmul(nqtot, &weight[0], 1, &tmp[0], 1, &tmp[0], 1);
835  // v_IProductWRTBase(tmp, outarray);
836  }
void Nektar::StdRegions::StdExpansion::MassMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline
void Nektar::StdRegions::StdExpansion::MassMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 627 of file StdExpansion.cpp.

References Nektar::StdRegions::eVarCoeffMass, GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::HasVarCoeff(), v_BwdTrans(), v_IProductWRTBase(), and Vmath::Vmul().

Referenced by GeneralMatrixOp_MatFree(), Nektar::StdRegions::StdNodalTriExp::v_MassMatrixOp(), Nektar::StdRegions::StdQuadExp::v_MassMatrixOp(), Nektar::StdRegions::StdTriExp::v_MassMatrixOp(), Nektar::StdRegions::StdHexExp::v_MassMatrixOp(), and v_MassMatrixOp().

630  {
631  int nq = GetTotPoints();
632  Array<OneD, NekDouble> tmp(nq);
633 
634  v_BwdTrans(inarray,tmp);
635 
636  if(mkey.HasVarCoeff(eVarCoeffMass))
637  {
638  Vmath::Vmul(nq, mkey.GetVarCoeff(eVarCoeffMass), 1, tmp, 1, tmp, 1);
639  }
640 
641  v_IProductWRTBase(tmp, outarray);
642  }
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Calculates the inner product of a given function f with the different modes of the expansion...
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
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:169
void Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 902 of file StdExpansion.h.

References v_MultiplyByQuadratureMetric().

Referenced by Nektar::LocalRegions::NodalTriExp::IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TetExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::HexExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::QuadExp::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::StdQuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::LocalRegions::TetExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), and Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel().

905  {
906  v_MultiplyByQuadratureMetric(inarray, outarray);
907  }
virtual void v_MultiplyByQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::MultiplyByStdQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline
void Nektar::StdRegions::StdExpansion::NegateEdgeNormal ( const int  edge)
inline

Definition at line 1236 of file StdExpansion.h.

References v_NegateEdgeNormal().

1237  {
1238  v_NegateEdgeNormal(edge);
1239  }
virtual void v_NegateEdgeNormal(const int edge)
void Nektar::StdRegions::StdExpansion::NegateFaceNormal ( const int  face)
inline

Definition at line 1251 of file StdExpansion.h.

References v_NegateFaceNormal().

1252  {
1253  v_NegateFaceNormal(face);
1254  }
virtual void v_NegateFaceNormal(const int face)
void Nektar::StdRegions::StdExpansion::NormVectorIProductWRTBase ( const Array< OneD, const NekDouble > &  Fx,
const Array< OneD, const NekDouble > &  Fy,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 711 of file StdExpansion.h.

References v_NormVectorIProductWRTBase().

Referenced by Nektar::MultiRegions::DisContField3DHomogeneous1D::NormVectorIProductWRTBase().

712  {
713  v_NormVectorIProductWRTBase(Fx,Fy,outarray);
714  }
virtual void v_NormVectorIProductWRTBase(const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
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 716 of file StdExpansion.h.

References v_NormVectorIProductWRTBase().

717  {
718  v_NormVectorIProductWRTBase(Fx,Fy,Fz,outarray);
719  }
virtual void v_NormVectorIProductWRTBase(const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
int Nektar::StdRegions::StdExpansion::NumBndryCoeffs ( void  ) const
inline

Definition at line 374 of file StdExpansion.h.

References v_NumBndryCoeffs().

Referenced by Nektar::LocalRegions::Expansion1D::AddHDGHelmholtzTraceTerms(), Nektar::LocalRegions::Expansion1D::AddNormTraceInt(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LocalRegions::PyrExp::CreateStaticCondMatrix(), Nektar::LocalRegions::NodalTriExp::CreateStaticCondMatrix(), Nektar::LocalRegions::TetExp::CreateStaticCondMatrix(), Nektar::LocalRegions::PrismExp::CreateStaticCondMatrix(), Nektar::LocalRegions::QuadExp::CreateStaticCondMatrix(), Nektar::LocalRegions::TriExp::CreateStaticCondMatrix(), Nektar::LocalRegions::SegExp::CreateStaticCondMatrix(), Nektar::LocalRegions::HexExp::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), Nektar::LocalRegions::Expansion1D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix(), Nektar::LocalRegions::Expansion3D::v_BuildInverseTransformationMatrix(), Nektar::LocalRegions::Expansion3D::v_BuildTransformationMatrix(), Nektar::StdRegions::StdQuadExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::QuadExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::Expansion1D::v_GenMatrix(), Nektar::StdRegions::StdNodalPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdNodalTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::LocalRegions::Expansion3D::v_GetEdgeInverseBoundaryMap(), Nektar::LocalRegions::Expansion2D::v_GetEdgeInverseBoundaryMap(), Nektar::LocalRegions::Expansion3D::v_GetFaceInverseBoundaryMap(), Nektar::StdRegions::StdNodalPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdSegExp::v_GetInteriorMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), and Nektar::StdRegions::StdPyrExp::v_GetInteriorMap().

375  {
376  return v_NumBndryCoeffs();
377  }
virtual int v_NumBndryCoeffs() const
int Nektar::StdRegions::StdExpansion::NumDGBndryCoeffs ( void  ) const
inline
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

Definition at line 1014 of file StdExpansion.h.

References v_PhysDeriv().

Referenced by Nektar::LocalRegions::SegExp::v_HelmholtzMatrixOp(), Nektar::LocalRegions::SegExp::v_LaplacianMatrixOp(), Nektar::StdRegions::StdHexExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), and Nektar::LocalRegions::HexExp::v_PhysDeriv().

1018  {
1019  v_PhysDeriv (inarray, out_d0, out_d1, out_d2);
1020  }
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.
void Nektar::StdRegions::StdExpansion::PhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 1022 of file StdExpansion.h.

References v_PhysDeriv().

1025  {
1026  v_PhysDeriv (dir, inarray, outarray);
1027  }
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.
void Nektar::StdRegions::StdExpansion::PhysDeriv_n ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_dn 
)
inline

Definition at line 1035 of file StdExpansion.h.

References v_PhysDeriv_n().

1037  {
1038  v_PhysDeriv_n(inarray,out_dn);
1039  }
virtual void v_PhysDeriv_n(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn)
void Nektar::StdRegions::StdExpansion::PhysDeriv_s ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  out_ds 
)
inline

Definition at line 1029 of file StdExpansion.h.

References v_PhysDeriv_s().

1031  {
1032  v_PhysDeriv_s(inarray,out_ds);
1033  }
virtual void v_PhysDeriv_s(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds)
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 1041 of file StdExpansion.h.

References v_PhysDirectionalDeriv().

1044  {
1045  v_PhysDirectionalDeriv (inarray, direction, outarray);
1046  }
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.
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 1095 of file StdExpansion.h.

References v_PhysEvaluate().

1097  {
1098  return v_PhysEvaluate(coords,physvals);
1099  }
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
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 1122 of file StdExpansion.h.

References v_PhysEvaluate().

1124  {
1125  return v_PhysEvaluate(I,physvals);
1126  }
virtual NekDouble v_PhysEvaluate(const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals)
void Nektar::StdRegions::StdExpansion::PhysInterpToSimplexEquiSpaced ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)

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

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

1684  {
1686  StdMatrixKey Ikey(ePhysInterpToEquiSpaced, shape, *this);
1687  DNekMatSharedPtr intmat = GetStdMatrix(Ikey);
1688 
1689  int nqtot = 1;
1690  int nqbase;
1691  int np = 0;
1692  for(int i = 0; i < m_base.num_elements(); ++i)
1693  {
1694  nqbase = m_base[i]->GetNumPoints();
1695  nqtot *= nqbase;
1696  np = max(np,nqbase);
1697  }
1698 
1699  NekVector<NekDouble> in (nqtot,inarray,eWrapper);
1700  NekVector<NekDouble> out(LibUtilities::GetNumberOfCoefficients(shape,np,np,np),outarray,eWrapper);
1701  out = (*intmat) * in;
1702  }
LibUtilities::ShapeType DetShapeType() const
This function returns the shape of the expansion domain.
Definition: StdExpansion.h:454
boost::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:70
DNekMatSharedPtr GetStdMatrix(const StdMatrixKey &mkey)
Definition: StdExpansion.h:684
int GetNumberOfCoefficients(ShapeType shape, std::vector< unsigned int > &modes, int offset)
Definition: ShapeType.hpp:312
Array< OneD, LibUtilities::BasisSharedPtr > m_base
void Nektar::StdRegions::StdExpansion::ReduceOrderCoeffs ( int  numMin,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 945 of file StdExpansion.h.

References v_ReduceOrderCoeffs().

948  {
949  v_ReduceOrderCoeffs(numMin,inarray,outarray);
950  }
virtual void v_ReduceOrderCoeffs(int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::SetCoeffsToOrientation ( Array< OneD, NekDouble > &  coeffs,
StdRegions::Orientation  dir 
)
inline

Definition at line 751 of file StdExpansion.h.

References v_SetCoeffsToOrientation().

754  {
755  v_SetCoeffsToOrientation(coeffs, dir);
756  }
virtual void v_SetCoeffsToOrientation(StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::SetCoeffsToOrientation ( StdRegions::Orientation  dir,
Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 758 of file StdExpansion.h.

References v_SetCoeffsToOrientation().

762  {
763  v_SetCoeffsToOrientation(dir,inarray,outarray);
764  }
virtual void v_SetCoeffsToOrientation(StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
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 646 of file StdExpansion.h.

References m_elmt_id.

647  {
648  m_elmt_id = id;
649  }
void Nektar::StdRegions::StdExpansion::SetPhysNormals ( Array< OneD, const NekDouble > &  normal)
inline

Definition at line 704 of file StdExpansion.h.

References v_SetPhysNormals().

705  {
706  v_SetPhysNormals(normal);
707  }
virtual void v_SetPhysNormals(Array< OneD, const NekDouble > &normal)
void Nektar::StdRegions::StdExpansion::SetUpPhysNormals ( const int  edge)
virtual

Definition at line 921 of file StdExpansion.cpp.

References v_SetUpPhysNormals().

922  {
923  v_SetUpPhysNormals(edge);
924  }
virtual void v_SetUpPhysNormals(const int edge)
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 1048 of file StdExpansion.h.

References v_StdPhysDeriv().

1052  {
1053  v_StdPhysDeriv(inarray, out_d0, out_d1, out_d2);
1054  }
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)
void Nektar::StdRegions::StdExpansion::StdPhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
inline

Definition at line 1056 of file StdExpansion.h.

References v_StdPhysDeriv().

1059  {
1060  v_StdPhysDeriv(dir,inarray,outarray);
1061  }
virtual void v_StdPhysDeriv(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2, Array< OneD, NekDouble > &out_d3)
NekDouble Nektar::StdRegions::StdExpansion::StdPhysEvaluate ( const Array< OneD, const NekDouble > &  Lcoord,
const Array< OneD, const NekDouble > &  physvals 
)

Definition at line 926 of file StdExpansion.cpp.

References v_StdPhysEvaluate().

928  {
929  return v_StdPhysEvaluate(Lcoord,physvals);
930  }
virtual NekDouble v_StdPhysEvaluate(const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals)
void Nektar::StdRegions::StdExpansion::SVVLaplacianFilter ( Array< OneD, NekDouble > &  array,
const StdMatrixKey mkey 
)
inline

Definition at line 952 of file StdExpansion.h.

References v_SVVLaplacianFilter().

Referenced by LaplacianMatrixOp_MatFree().

954  {
955  v_SVVLaplacianFilter(array,mkey);
956  }
virtual void v_SVVLaplacianFilter(Array< OneD, NekDouble > &array, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_AddRobinEdgeContribution ( const int  edgeid,
const Array< OneD, const NekDouble > &  primCoeffs,
Array< OneD, NekDouble > &  coeffs 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D, and Nektar::LocalRegions::Expansion1D.

Definition at line 1221 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by AddRobinEdgeContribution().

1222  {
1223  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1224  "specific element types");
1225  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_AddRobinMassMatrix ( const int  edgeid,
const Array< OneD, const NekDouble > &  primCoeffs,
DNekMatSharedPtr inoutmat 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D, Nektar::LocalRegions::Expansion3D, and Nektar::LocalRegions::Expansion1D.

Definition at line 1215 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by AddRobinMassMatrix().

1216  {
1217  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1218  "specific element types");
1219  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_BuildInverseTransformationMatrix ( const DNekScalMatSharedPtr m_transformationmatrix)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion3D.

Definition at line 1674 of file StdExpansion.cpp.

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

Referenced by BuildInverseTransformationMatrix().

1676  {
1677  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1678  return NullDNekMatSharedPtr;
1679  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
static DNekMatSharedPtr NullDNekMatSharedPtr
Definition: NekTypeDefs.hpp:79
virtual void Nektar::StdRegions::StdExpansion::v_BwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual
void Nektar::StdRegions::StdExpansion::v_BwdTrans_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual
int Nektar::StdRegions::StdExpansion::v_CalcNumberOfCoefficients ( const std::vector< unsigned int > &  nummodes,
int &  modes_offset 
)
virtual

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

Definition at line 954 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by CalcNumberOfCoefficients().

955  {
956  NEKERROR(ErrorUtil::efatal, "This function is not defined for this class");
957  return 0;
958  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_ComputeEdgeNormal ( const int  edge)
privatevirtual

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

Definition at line 1604 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by ComputeEdgeNormal().

1605  {
1606  ASSERTL0(false, "Cannot compute edge normal for this expansion.");
1607  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_ComputeFaceNormal ( const int  face)
privatevirtual

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

Definition at line 1620 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by ComputeFaceNormal().

1621  {
1622  ASSERTL0(false, "Cannot compute face normal for this expansion.");
1623  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_ComputeVertexNormal ( const int  vertex)
privatevirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1630 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by ComputeVertexNormal().

1631  {
1632  ASSERTL0(false, "Cannot compute vertex normal for this expansion.");
1633  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_CreateStdMatrix ( const StdMatrixKey mkey)
privatevirtual
int Nektar::StdRegions::StdExpansion::v_DetCartesianDirOfEdge ( const int  edge)
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, and Nektar::StdRegions::StdQuadExp.

Definition at line 1092 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by DetCartesianDirOfEdge().

1093  {
1094  ASSERTL0(false, "This function is not valid or not defined");
1095  return 0;
1096  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::v_DetEdgeBasisKey ( const int  i) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, and Nektar::StdRegions::StdQuadExp.

Definition at line 1098 of file StdExpansion.cpp.

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

Referenced by DetEdgeBasisKey().

1099  {
1100  ASSERTL0(false, "This function is not valid or not defined");
1102  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
const LibUtilities::BasisKey Nektar::StdRegions::StdExpansion::v_DetFaceBasisKey ( const int  i,
const int  k 
) const
privatevirtual

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

Definition at line 1104 of file StdExpansion.cpp.

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

Referenced by DetFaceBasisKey().

1105  {
1106  ASSERTL0(false, "This function is not valid or not defined");
1108  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
static const BasisKey NullBasisKey(eNoBasisType, 0, NullPointsKey)
Defines a null basis with no type or points.
LibUtilities::ShapeType Nektar::StdRegions::StdExpansion::v_DetShapeType ( ) const
privatevirtual
void Nektar::StdRegions::StdExpansion::v_DropLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
virtual

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

Definition at line 990 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by DropLocStaticCondMatrix().

991  {
992  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
993  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
bool Nektar::StdRegions::StdExpansion::v_EdgeNormalNegated ( const int  edge)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D.

Definition at line 1614 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by EdgeNormalNegated().

1615  {
1616  ASSERTL0(false, "Not implemented.");
1617  return false;
1618  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_ExtractDataToCoeffs ( const NekDouble data,
const std::vector< unsigned int > &  nummodes,
const int  nmode_offset,
NekDouble coeffs 
)
virtual

Unpack data from input file assuming it comes from the same expansion type.

See also
StdExpansion::ExtractDataToCoeffs

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

Definition at line 960 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by ExtractDataToCoeffs().

964  {
965  NEKERROR(ErrorUtil::efatal, "This function is not defined for this class");
966  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_FillMode ( const int  mode,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1309 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by FillMode().

1310  {
1311  NEKERROR(ErrorUtil::efatal, "This function has not "
1312  "been defined for this shape");
1313  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
virtual void Nektar::StdRegions::StdExpansion::v_FwdTrans ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual
void Nektar::StdRegions::StdExpansion::v_FwdTrans_BndConstrained ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1196 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by FwdTrans_BndConstrained().

1198  {
1199  NEKERROR(ErrorUtil::efatal, "This method has not been defined");
1200  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
DNekMatSharedPtr Nektar::StdRegions::StdExpansion::v_GenMatrix ( const StdMatrixKey mkey)
privatevirtual
void Nektar::StdRegions::StdExpansion::v_GetBoundaryMap ( Array< OneD, unsigned int > &  outarray)
privatevirtual

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

Definition at line 1350 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetBoundaryMap().

1351  {
1352  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1353  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
StdRegions::Orientation Nektar::StdRegions::StdExpansion::v_GetCartesianEorient ( int  edge)
virtual

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

Definition at line 1015 of file StdExpansion.cpp.

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

Referenced by GetCartesianEorient().

1016  {
1017  NEKERROR(ErrorUtil::efatal, "This function is only valid for two-dimensional LocalRegions");
1018  return eForwards;
1019  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetCoord ( const Array< OneD, const NekDouble > &  Lcoord,
Array< OneD, NekDouble > &  coord 
)
privatevirtual

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

Definition at line 1338 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetCoord().

1340  {
1341  NEKERROR(ErrorUtil::efatal, "Write coordinate definition method");
1342  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_GetCoordim ( void  )
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, Nektar::StdRegions::StdExpansion2D, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::PyrExp, Nektar::StdRegions::StdExpansion1D, and Nektar::StdRegions::StdExpansion0D.

Definition at line 1344 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetCoordim(), and H1().

1345  {
1346  NEKERROR(ErrorUtil::efatal, "Write method");
1347  return -1;
1348  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetCoords ( Array< OneD, NekDouble > &  coords_0,
Array< OneD, NekDouble > &  coords_1,
Array< OneD, NekDouble > &  coords_2 
)
privatevirtual
LibUtilities::BasisType Nektar::StdRegions::StdExpansion::v_GetEdgeBasisType ( const int  i) const
privatevirtual

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

Definition at line 1140 of file StdExpansion.cpp.

References ASSERTL0, and Nektar::LibUtilities::eNoBasisType.

Referenced by GetEdgeBasisType().

1141  {
1142  ASSERTL0(false, "This function is not valid or not defined");
1143 
1145  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetEdgeInteriorMap ( const int  eid,
const Orientation  edgeOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
privatevirtual

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

Definition at line 1367 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by CreateIndexMap(), and GetEdgeInteriorMap().

1370  {
1371  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1372  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetEdgeInterpVals ( const int  edge,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1416 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetEdgeInterpVals().

1417  {
1418  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1419  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
Array< OneD, unsigned int > Nektar::StdRegions::StdExpansion::v_GetEdgeInverseBoundaryMap ( int  eid)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D, and Nektar::LocalRegions::Expansion3D.

Definition at line 1657 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetEdgeInverseBoundaryMap().

1658  {
1659  ASSERTL0(false, "Not implemented.");
1660  Array<OneD, unsigned int> noinversemap(1);
1661  return noinversemap;
1662  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
int Nektar::StdRegions::StdExpansion::v_GetEdgeNcoeffs ( const int  i) const
privatevirtual

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

Definition at line 1074 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetEdgeNcoeffs().

1075  {
1076  ASSERTL0(false, "This function is not valid or not defined");
1077  return 0;
1078  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
const NormalVector & Nektar::StdRegions::StdExpansion::v_GetEdgeNormal ( const int  edge) const
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D.

Definition at line 1597 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetEdgeNormal().

1598  {
1599  ASSERTL0(false, "Cannot get edge normals for this expansion.");
1600  static NormalVector result;
1601  return result;
1602  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
Array< OneD, Array< OneD, NekDouble > > NormalVector
Definition: StdExpansion.h:59
int Nektar::StdRegions::StdExpansion::v_GetEdgeNumPoints ( const int  i) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdTriExp, and Nektar::StdRegions::StdQuadExp.

Definition at line 1086 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetEdgeNumPoints().

1087  {
1088  ASSERTL0(false, "This function is not valid or not defined");
1089  return 0;
1090  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetEdgePhysVals ( const int  edge,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Extract the physical values along edge edge from inarray into outarray following the local edge orientation and point distribution defined by defined in EdgeExp.

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

Definition at line 1396 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetEdgePhysVals().

1397  {
1398  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1399  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetEdgePhysVals ( const int  edge,
const boost::shared_ptr< StdExpansion > &  EdgeExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

Definition at line 1401 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

1402  {
1403  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1404  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetEdgeQFactors ( const int  edge,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1421 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetEdgeQFactors().

1424  {
1426  "Method does not exist for this shape or library");
1427  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetEdgeToElementMap ( const int  eid,
const Orientation  edgeOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdTriExp, and Nektar::StdRegions::StdNodalTriExp.

Definition at line 1381 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by CreateIndexMap(), and GetEdgeToElementMap().

1384  {
1385  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1386  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_GetElmtId ( void  )
virtual

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

Definition at line 932 of file StdExpansion.cpp.

References m_elmt_id.

933  {
934  return m_elmt_id;
935  }
StdRegions::Orientation Nektar::StdRegions::StdExpansion::v_GetEorient ( int  edge)
virtual

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

Definition at line 1002 of file StdExpansion.cpp.

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

Referenced by Nektar::LocalRegions::Expansion2D::AddEdgeBoundaryInt(), GetEorient(), Nektar::LocalRegions::Expansion2D::v_AddRobinEdgeContribution(), and Nektar::LocalRegions::Expansion2D::v_AddRobinMassMatrix().

1003  {
1004  NEKERROR(ErrorUtil::efatal, "This function is only valid for two-dimensional LocalRegions");
1005  return eForwards;
1006  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetFaceInteriorMap ( const int  fid,
const Orientation  faceOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray 
)
privatevirtual

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

Definition at line 1374 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by CreateIndexMap(), and GetFaceInteriorMap().

1377  {
1378  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1379  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_GetFaceIntNcoeffs ( const int  i) const
privatevirtual

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

Definition at line 1122 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetFaceIntNcoeffs().

1123  {
1124  ASSERTL0(false, "This function is not valid or not defined");
1125  return 0;
1126  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
Array< OneD, unsigned int > Nektar::StdRegions::StdExpansion::v_GetFaceInverseBoundaryMap ( int  fid,
StdRegions::Orientation  faceOrient = eNoOrientation 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion3D.

Definition at line 1665 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetFaceInverseBoundaryMap().

1667  {
1668  ASSERTL0(false, "Not implemented.");
1669  Array<OneD, unsigned int> noinversemap(1);
1670  return noinversemap;
1671  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
int Nektar::StdRegions::StdExpansion::v_GetFaceNcoeffs ( const int  i) const
privatevirtual

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

Definition at line 1116 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetFaceNcoeffs().

1117  {
1118  ASSERTL0(false, "This function is not valid or not defined");
1119  return 0;
1120  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
const NormalVector & Nektar::StdRegions::StdExpansion::v_GetFaceNormal ( const int  face) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D.

Definition at line 1635 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetFaceNormal().

1636  {
1637  ASSERTL0(false, "Cannot get face normals for this expansion.");
1638  static NormalVector result;
1639  return result;
1640  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
Array< OneD, Array< OneD, NekDouble > > NormalVector
Definition: StdExpansion.h:59
int Nektar::StdRegions::StdExpansion::v_GetFaceNumPoints ( const int  i) const
privatevirtual

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

Definition at line 1110 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetFaceNumPoints().

1111  {
1112  ASSERTL0(false, "This function is not valid or not defined");
1113  return 0;
1114  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetFacePhysVals ( const int  face,
const boost::shared_ptr< StdExpansion > &  FaceExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
StdRegions::Orientation  orient 
)
privatevirtual

Definition at line 1429 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetFacePhysVals().

1434  {
1435  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1436  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::v_GetFacePointsKey ( const int  i,
const int  j 
) const
privatevirtual

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

Definition at line 1134 of file StdExpansion.cpp.

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

Referenced by GetFacePointsKey().

1135  {
1136  ASSERTL0(false, "This function is not valid or not defined");
1138  }
static const PointsKey NullPointsKey(0, eNoPointsType)
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetFaceToElementMap ( const int  fid,
const Orientation  faceOrient,
Array< OneD, unsigned int > &  maparray,
Array< OneD, int > &  signarray,
int  nummodesA = -1,
int  nummodesB = -1 
)
privatevirtual

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

Definition at line 1388 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by CreateIndexMap(), and GetFaceToElementMap().

1392  {
1393  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1394  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
StdRegions::Orientation Nektar::StdRegions::StdExpansion::v_GetForient ( int  face)
virtual

Reimplemented in Nektar::LocalRegions::Expansion3D.

Definition at line 995 of file StdExpansion.cpp.

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

Referenced by GetForient().

997  {
998  NEKERROR(ErrorUtil::efatal, "This function is only valid for three-dimensional LocalRegions");
1000  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_GetInteriorMap ( Array< OneD, unsigned int > &  outarray)
privatevirtual

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

Definition at line 1355 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetInteriorMap().

1356  {
1357  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1358  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
DNekScalBlkMatSharedPtr Nektar::StdRegions::StdExpansion::v_GetLocStaticCondMatrix ( const LocalRegions::MatrixKey mkey)
virtual

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

Definition at line 984 of file StdExpansion.cpp.

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

Referenced by GetLocStaticCondMatrix().

985  {
986  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
988  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
static DNekScalBlkMatSharedPtr NullDNekScalBlkMatSharedPtr
Definition: NekTypeDefs.hpp:81
const boost::shared_ptr< SpatialDomains::GeomFactors > & Nektar::StdRegions::StdExpansion::v_GetMetricInfo ( ) const
privatevirtual

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

Definition at line 1452 of file StdExpansion.cpp.

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

Referenced by GetMetricInfo().

1453  {
1454  NEKERROR(ErrorUtil::efatal, "This function is only valid for LocalRegions");
1456 
1457  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
static boost::shared_ptr< GeomFactors > NullGeomFactorsSharedPtr
int Nektar::StdRegions::StdExpansion::v_GetNedges ( ) const
privatevirtual

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

Definition at line 1050 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetNedges().

1051  {
1052  ASSERTL0(false, "This function is needs defining for this shape");
1053  return 0;
1054  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
int Nektar::StdRegions::StdExpansion::v_GetNfaces ( ) const
privatevirtual

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

Definition at line 1056 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetNfaces().

1057  {
1058  ASSERTL0(false, "This function is needs defining for this shape");
1059  return 0;
1060  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
const LibUtilities::PointsKey Nektar::StdRegions::StdExpansion::v_GetNodalPointsKey ( ) const
privatevirtual

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

Definition at line 1147 of file StdExpansion.cpp.

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

Referenced by GetNodalPointsKey().

1148  {
1149  ASSERTL0(false, "This function is not valid or not defined");
1150 
1152  }
static const PointsKey NullPointsKey(0, eNoPointsType)
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
virtual int Nektar::StdRegions::StdExpansion::v_GetNverts ( ) const
privatepure virtual
const Array< OneD, const NekDouble > & Nektar::StdRegions::StdExpansion::v_GetPhysNormals ( void  )
virtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 937 of file StdExpansion.cpp.

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

Referenced by GetPhysNormals().

938  {
939  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
940  return NullNekDouble1DArray;
941  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
static Array< OneD, NekDouble > NullNekDouble1DArray
StdRegions::Orientation Nektar::StdRegions::StdExpansion::v_GetPorient ( int  point)
virtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1008 of file StdExpansion.cpp.

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

Referenced by GetPorient().

1009  {
1010  NEKERROR(ErrorUtil::efatal, "This function is only valid for one-dimensional LocalRegions");
1011  return eFwd;
1012  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_GetShapeDimension ( ) const
privatevirtual

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

Definition at line 1168 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetShapeDimension().

1169  {
1170  ASSERTL0(false, "This function is not valid or not defined");
1171  return 0;
1172  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetSimplexEquiSpacedConnectivity ( Array< OneD, int > &  conn,
bool  standard = true 
)
privatevirtual

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

Definition at line 1704 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetSimplexEquiSpacedConnectivity().

1707  {
1708  ASSERTL0(false, "Not implemented.");
1709  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
boost::shared_ptr< StdExpansion > Nektar::StdRegions::StdExpansion::v_GetStdExp ( void  ) const
privatevirtual

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

Definition at line 1161 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetStdExp().

1162  {
1163  ASSERTL0(false,"This method is not defined for this expansion");
1164  StdExpansionSharedPtr returnval;
1165  return returnval;
1166  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
boost::shared_ptr< StdExpansion > StdExpansionSharedPtr
const NormalVector & Nektar::StdRegions::StdExpansion::v_GetSurfaceNormal ( const int  id) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D, Nektar::LocalRegions::Expansion2D, and Nektar::StdRegions::StdExpansion1D.

Definition at line 1649 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetSurfaceNormal().

1650  {
1651  ASSERTL0(false, "Cannot get face normals for this expansion.");
1652  static NormalVector result;
1653  return result;
1654  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
Array< OneD, Array< OneD, NekDouble > > NormalVector
Definition: StdExpansion.h:59
int Nektar::StdRegions::StdExpansion::v_GetTotalEdgeIntNcoeffs ( ) const
privatevirtual

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

Definition at line 1080 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetTotalEdgeIntNcoeffs().

1081  {
1082  ASSERTL0(false, "This function is not valid or not defined");
1083  return 0;
1084  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
int Nektar::StdRegions::StdExpansion::v_GetTotalFaceIntNcoeffs ( ) const
privatevirtual

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

Definition at line 1128 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetTotalFaceIntNcoeffs().

1129  {
1130  ASSERTL0(false, "This function is not valid or not defined");
1131  return 0;
1132  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_GetTracePhysVals ( const int  edge,
const boost::shared_ptr< StdExpansion > &  EdgeExp,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
StdRegions::Orientation  orient = eNoOrientation 
)
privatevirtual

Definition at line 1406 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetTracePhysVals().

1407  {
1408  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1409  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_GetVertexMap ( int  localVertexId,
bool  useCoeffPacking = false 
)
privatevirtual

Reimplemented in Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdHexExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdTriExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdNodalTriExp, Nektar::StdRegions::StdNodalPrismExp, Nektar::StdRegions::StdNodalTetExp, and Nektar::StdRegions::StdPointExp.

Definition at line 1360 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetVertexMap().

1362  {
1363  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape" );
1364  return 0;
1365  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
const NormalVector & Nektar::StdRegions::StdExpansion::v_GetVertexNormal ( const int  vertex) const
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion1D.

Definition at line 1642 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by GetVertexNormal().

1643  {
1644  ASSERTL0(false, "Cannot get vertex normals for this expansion.");
1645  static NormalVector result;
1646  return result;
1647  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
Array< OneD, Array< OneD, NekDouble > > NormalVector
Definition: StdExpansion.h:59
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 1411 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by GetVertexPhysVals().

1412  {
1413  NEKERROR(ErrorUtil::efatal,"Method does not exist for this shape or library" );
1414  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_HelmholtzMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1562 of file StdExpansion.cpp.

References HelmholtzMatrixOp_MatFree().

Referenced by HelmholtzMatrixOp().

1565  {
1566  // If this function is not reimplemented on shape level, the function
1567  // below will be called
1568  HelmholtzMatrixOp_MatFree(inarray,outarray,mkey);
1569  }
void HelmholtzMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_HelmholtzMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1588 of file StdExpansion.cpp.

References HelmholtzMatrixOp_MatFree_GenericImpl().

Referenced by HelmholtzMatrixOp_MatFree().

1591  {
1592  // If this function is not reimplemented on shape level, the function
1593  // below will be called
1594  HelmholtzMatrixOp_MatFree_GenericImpl(inarray,outarray,mkey);
1595  }
void HelmholtzMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
NekDouble Nektar::StdRegions::StdExpansion::v_Integral ( const Array< OneD, const NekDouble > &  inarray)
privatevirtual

Integrates the specified function over the domain.

See also
StdRegions::StdExpansion::Integral.

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

Definition at line 1207 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

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

1208  {
1209  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1210  "local expansions");
1211  return 0;
1212  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
virtual void Nektar::StdRegions::StdExpansion::v_IProductWRTBase ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatepure virtual
virtual void Nektar::StdRegions::StdExpansion::v_IProductWRTBase ( const Array< OneD, const NekDouble > &  base,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
int  coll_check 
)
inlineprivatevirtual

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

Definition at line 1556 of file StdExpansion.h.

References ASSERTL0.

1561  {
1562  ASSERTL0(false, "StdExpansion::v_IProductWRTBase has no (and should have no) implementation");
1563  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_IProductWRTBase_SumFac ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
bool  multiplybyweights = true 
)
privatevirtual
void Nektar::StdRegions::StdExpansion::v_IProductWRTDerivBase ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual
void Nektar::StdRegions::StdExpansion::v_IProductWRTDerivBase_SumFac ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual
bool Nektar::StdRegions::StdExpansion::v_IsBoundaryInteriorExpansion ( )
privatevirtual

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

Definition at line 1174 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by IsBoundaryInteriorExpansion().

1175  {
1176  ASSERTL0(false,"This function has not been defined for this expansion");
1177  return false;
1178  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
bool Nektar::StdRegions::StdExpansion::v_IsNodalNonTensorialExp ( )
privatevirtual

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

Definition at line 1181 of file StdExpansion.cpp.

Referenced by IsNodalNonTensorialExp().

1182  {
1183  return false;
1184  }
void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1488 of file StdExpansion.cpp.

References LaplacianMatrixOp_MatFree().

Referenced by LaplacianMatrixOp().

1491  {
1492  // If this function is not reimplemented on shape level, the function
1493  // below will be called
1494  LaplacianMatrixOp_MatFree(inarray,outarray,mkey);
1495  }
void LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp ( const int  k1,
const int  k2,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1511 of file StdExpansion.cpp.

References LaplacianMatrixOp_MatFree().

1515  {
1516  // If this function is not reimplemented on shape level, the function
1517  // below will be called
1518  LaplacianMatrixOp_MatFree(k1,k2,inarray,outarray,mkey);
1519  }
void LaplacianMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_LaplacianMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1571 of file StdExpansion.cpp.

References LaplacianMatrixOp_MatFree_GenericImpl().

Referenced by LaplacianMatrixOp_MatFree().

1574  {
1575  // If this function is not reimplemented on shape level, the function
1576  // below will be called
1577  LaplacianMatrixOp_MatFree_GenericImpl(inarray,outarray,mkey);
1578  }
void LaplacianMatrixOp_MatFree_GenericImpl(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
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::QuadExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::TetExp, Nektar::LocalRegions::PrismExp, and Nektar::LocalRegions::PyrExp.

Definition at line 1580 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by LaplacianMatrixOp_MatFree_Kernel().

1584  {
1585  ASSERTL0(false, "Not implemented.");
1586  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
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 1551 of file StdExpansion.cpp.

References LinearAdvectionDiffusionReactionMatrixOp_MatFree().

Referenced by LinearAdvectionDiffusionReactionMatrixOp().

1555  {
1556  // If this function is not reimplemented on shape level, the function
1557  // below will be called
1558  LinearAdvectionDiffusionReactionMatrixOp_MatFree(inarray,outarray,mkey,addDiffusionTerm);
1559 
1560  }
void LinearAdvectionDiffusionReactionMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true)
void Nektar::StdRegions::StdExpansion::v_LocCoordToLocCollapsed ( const Array< OneD, const NekDouble > &  xi,
Array< OneD, NekDouble > &  eta 
)
privatevirtual

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

Definition at line 1045 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by LocCoordToLocCollapsed().

1046  {
1047  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1048  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_MassLevelCurvatureMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1542 of file StdExpansion.cpp.

References MassLevelCurvatureMatrixOp_MatFree().

Referenced by MassLevelCurvatureMatrixOp().

1545  {
1546  // If this function is not reimplemented on shape level, the function
1547  // below will be called
1548  MassLevelCurvatureMatrixOp_MatFree(inarray,outarray,mkey);
1549  }
void MassLevelCurvatureMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_MassMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1479 of file StdExpansion.cpp.

References MassMatrixOp_MatFree().

Referenced by MassMatrixOp().

1482  {
1483  // If this function is not reimplemented on shape level, the function
1484  // below will be called
1485  MassMatrixOp_MatFree(inarray,outarray,mkey);
1486  }
void MassMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
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 1438 of file StdExpansion.cpp.

References v_MultiplyByStdQuadratureMetric().

Referenced by MultiplyByQuadratureMetric().

1441  {
1442  v_MultiplyByStdQuadratureMetric(inarray,outarray);
1443  }
virtual void v_MultiplyByStdQuadratureMetric(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)
void Nektar::StdRegions::StdExpansion::v_MultiplyByStdQuadratureMetric ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1445 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by MultiplyByStdQuadratureMetric(), and v_MultiplyByQuadratureMetric().

1448  {
1449  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape or library");
1450  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_NegateEdgeNormal ( const int  edge)
privatevirtual

Reimplemented in Nektar::LocalRegions::Expansion2D.

Definition at line 1609 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by NegateEdgeNormal().

1610  {
1611  ASSERTL0(false, "Not implemented.");
1612  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_NegateFaceNormal ( const int  face)
privatevirtual

Reimplemented in Nektar::StdRegions::StdExpansion3D.

Definition at line 1625 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by NegateFaceNormal().

1626  {
1627  ASSERTL0(false, "Not implemented.");
1628  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
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 970 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by NormVectorIProductWRTBase().

971  {
972  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
973  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
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 975 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

980  {
981  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
982  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
int Nektar::StdRegions::StdExpansion::v_NumBndryCoeffs ( ) const
privatevirtual

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

Definition at line 1062 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by NumBndryCoeffs().

1063  {
1064  ASSERTL0(false, "This function is needs defining for this shape");
1065  return 0;
1066  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
int Nektar::StdRegions::StdExpansion::v_NumDGBndryCoeffs ( ) const
privatevirtual

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

Definition at line 1068 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by NumDGBndryCoeffs().

1069  {
1070  ASSERTL0(false, "This function is needs defining for this shape");
1071  return 0;
1072  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
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
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::NodalTriExp, Nektar::StdRegions::StdPyrExp, Nektar::LocalRegions::HexExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::LocalRegions::QuadExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::SegExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdHexExp, and Nektar::StdRegions::StdTriExp.

Definition at line 1258 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

1262  {
1263  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1264  "specific element types");
1265  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
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 1246 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDeriv_n().

1248  {
1249  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1250  "local expansions");
1251  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
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 1240 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDeriv_s().

1242  {
1243  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1244  "local expansions");
1245  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
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::QuadExp, and Nektar::LocalRegions::TriExp.

Definition at line 1271 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by PhysDirectionalDeriv().

1274  {
1275  NEKERROR(ErrorUtil::efatal, "This function is only valid for "
1276  "specific element types");
1277  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, const NekDouble > &  coords,
const Array< OneD, const NekDouble > &  physvals 
)
privatevirtual

Reimplemented in Nektar::LocalRegions::NodalTriExp, Nektar::StdRegions::StdSegExp, Nektar::LocalRegions::TriExp, Nektar::LocalRegions::QuadExp, Nektar::StdRegions::StdExpansion3D, Nektar::StdRegions::StdExpansion2D, Nektar::LocalRegions::HexExp, Nektar::LocalRegions::SegExp, Nektar::LocalRegions::PrismExp, Nektar::LocalRegions::PyrExp, Nektar::LocalRegions::TetExp, Nektar::StdRegions::StdExpansion1D, and Nektar::StdRegions::StdExpansion0D.

Definition at line 1295 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by PhysEvaluate().

1296  {
1297  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1298  return 0;
1299  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
NekDouble Nektar::StdRegions::StdExpansion::v_PhysEvaluate ( const Array< OneD, DNekMatSharedPtr > &  I,
const Array< OneD, const NekDouble > &  physvals 
)
privatevirtual

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

Definition at line 1302 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

1303  {
1304  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1305  return 0;
1306  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_ReduceOrderCoeffs ( int  numMin,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1504 of file StdExpansion.cpp.

References ASSERTL0.

Referenced by ReduceOrderCoeffs().

1507  {
1508  ASSERTL0(false, "This function is not defined in StdExpansion.");
1509  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:161
void Nektar::StdRegions::StdExpansion::v_SetCoeffsToOrientation ( StdRegions::Orientation  dir,
Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
protectedvirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1022 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by SetCoeffsToOrientation().

1025  {
1026  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1027  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_SetCoeffsToOrientation ( Array< OneD, NekDouble > &  coeffs,
StdRegions::Orientation  dir 
)
protectedvirtual

Reimplemented in Nektar::LocalRegions::SegExp.

Definition at line 1029 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

1032  {
1033  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1034  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_SetPhysNormals ( Array< OneD, const NekDouble > &  normal)
virtual

Definition at line 944 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by SetPhysNormals().

945  {
946  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
947  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_SetUpPhysNormals ( const int  edge)
virtual

Reimplemented in Nektar::LocalRegions::Expansion2D, and Nektar::StdRegions::StdExpansion1D.

Definition at line 949 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by SetUpPhysNormals().

950  {
951  NEKERROR(ErrorUtil::efatal, "This function is not valid for this class");
952  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
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::LocalRegions::NodalTriExp, Nektar::StdRegions::StdPyrExp, Nektar::StdRegions::StdTetExp, Nektar::StdRegions::StdSegExp, Nektar::StdRegions::StdPrismExp, Nektar::StdRegions::StdQuadExp, Nektar::StdRegions::StdHexExp, and Nektar::StdRegions::StdTriExp.

Definition at line 1279 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by StdPhysDeriv().

1283  {
1284  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1285  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_StdPhysDeriv ( const int  dir,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
privatevirtual

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

Definition at line 1287 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

1290  {
1291  NEKERROR(ErrorUtil::efatal, "Method does not exist for this shape");
1292  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
NekDouble Nektar::StdRegions::StdExpansion::v_StdPhysEvaluate ( const Array< OneD, const NekDouble > &  Lcoord,
const Array< OneD, const NekDouble > &  physvals 
)
protectedvirtual

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

Definition at line 1037 of file StdExpansion.cpp.

References ErrorUtil::efatal, and NEKERROR.

Referenced by StdPhysEvaluate().

1040  {
1041  NEKERROR(ErrorUtil::efatal, "This function is not defined for this shape");
1042  return 0;
1043  }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mod...
Definition: ErrorUtil.hpp:158
void Nektar::StdRegions::StdExpansion::v_SVVLaplacianFilter ( Array< OneD, NekDouble > &  array,
const StdMatrixKey mkey 
)
privatevirtual
void Nektar::StdRegions::StdExpansion::v_WeakDerivMatrixOp ( const int  i,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1521 of file StdExpansion.cpp.

References WeakDerivMatrixOp_MatFree().

Referenced by WeakDerivMatrixOp().

1525  {
1526  // If this function is not reimplemented on shape level, the function
1527  // below will be called
1528  WeakDerivMatrixOp_MatFree(i,inarray,outarray,mkey);
1529 
1530  }
void WeakDerivMatrixOp_MatFree(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::v_WeakDirectionalDerivMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
privatevirtual

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

Definition at line 1532 of file StdExpansion.cpp.

References WeakDirectionalDerivMatrixOp_MatFree().

Referenced by WeakDirectionalDerivMatrixOp().

1535  {
1536  // If this function is not reimplemented on shape level, the function
1537  // below will be called
1538  WeakDirectionalDerivMatrixOp_MatFree(inarray,outarray,mkey);
1539 
1540  }
void WeakDirectionalDerivMatrixOp_MatFree(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
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 966 of file StdExpansion.h.

References v_WeakDerivMatrixOp().

Referenced by GeneralMatrixOp().

970  {
971  v_WeakDerivMatrixOp(i,inarray,outarray,mkey);
972  }
virtual void v_WeakDerivMatrixOp(const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::WeakDerivMatrixOp_MatFree ( const int  i,
const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 743 of file StdExpansion.cpp.

References Nektar::StdRegions::eVarCoeffD00, Nektar::StdRegions::eVarCoeffD11, Nektar::StdRegions::eVarCoeffD22, GetTotPoints(), Nektar::StdRegions::StdMatrixKey::GetVarCoeff(), Nektar::StdRegions::StdMatrixKey::HasVarCoeff(), v_BwdTrans(), v_IProductWRTBase(), v_PhysDeriv(), and Vmath::Vmul().

Referenced by GeneralMatrixOp_MatFree(), Nektar::StdRegions::StdNodalTriExp::v_WeakDerivMatrixOp(), Nektar::StdRegions::StdQuadExp::v_WeakDerivMatrixOp(), Nektar::StdRegions::StdTriExp::v_WeakDerivMatrixOp(), Nektar::StdRegions::StdHexExp::v_WeakDerivMatrixOp(), and v_WeakDerivMatrixOp().

747  {
748  Array<OneD, NekDouble> tmp(GetTotPoints());
749  int nq = GetTotPoints();
750 
751  v_BwdTrans(inarray,tmp);
752  v_PhysDeriv(k1,tmp,tmp);
753 
755  if(mkey.HasVarCoeff(keys[k1]))
756  {
757  Vmath::Vmul(nq, &(mkey.GetVarCoeff(keys[k1]))[0], 1, &tmp[0], 1, &tmp[0], 1);
758  }
759 
760  v_IProductWRTBase(tmp, outarray);
761  }
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.
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Calculates the inner product of a given function f with the different modes of the expansion...
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
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:169
void Nektar::StdRegions::StdExpansion::WeakDirectionalDerivMatrixOp ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
inline

Definition at line 974 of file StdExpansion.h.

References v_WeakDirectionalDerivMatrixOp().

Referenced by GeneralMatrixOp().

977  {
978  v_WeakDirectionalDerivMatrixOp(inarray,outarray,mkey);
979  }
virtual void v_WeakDirectionalDerivMatrixOp(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey)
void Nektar::StdRegions::StdExpansion::WeakDirectionalDerivMatrixOp_MatFree ( const Array< OneD, const NekDouble > &  inarray,
Array< OneD, NekDouble > &  outarray,
const StdMatrixKey mkey 
)
protected

Definition at line 763 of file StdExpansion.cpp.

References GetTotPoints(), v_BwdTrans(), and v_IProductWRTBase().

Referenced by GeneralMatrixOp_MatFree(), and v_WeakDirectionalDerivMatrixOp().

766  {
767  int nq = GetTotPoints();
768  // int varsize = ((mkey.GetVariableCoefficient(0)).num_elements())/dim;
769  Array<OneD, NekDouble> tmp(nq);
770 
771  v_BwdTrans(inarray,tmp);
772  // For Deformed mesh ==============
773  // if (varsize==nq)
774  // {
775  // v_PhysDirectionalDeriv(tmp,mkey.GetVariableCoefficient(0),tmp);
776  // }
777  //
778  // // For Regular mesh ==========
779  // else
780  // {
781  // ASSERTL0(false, "Wrong route");
782  // }
783 
784  v_IProductWRTBase(tmp, outarray);
785  }
int GetTotPoints() const
This function returns the total number of quadrature points used in the element.
Definition: StdExpansion.h:141
virtual void v_IProductWRTBase(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0
Calculates the inner product of a given function f with the different modes of the expansion...
virtual void v_BwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray)=0

Member Data Documentation

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

Bases needed for the expansion

Definition at line 1356 of file StdExpansion.h.

Referenced by Nektar::LocalRegions::QuadExp::CreateMatrix(), Nektar::LocalRegions::SegExp::CreateMatrix(), Nektar::LocalRegions::NodalTriExp::CreateStdMatrix(), EvalBasisNumModesMax(), Nektar::LocalRegions::Expansion::Expansion(), GetBase(), GetBasis(), GetBasisNumModes(), GetBasisType(), Nektar::StdRegions::StdPrismExp::GetMode(), Nektar::StdRegions::StdTetExp::GetMode(), GetNtrace(), GetNumBases(), GetNumPoints(), GetPoints(), GetPointsKeys(), GetPointsType(), Nektar::StdRegions::StdPyrExp::GetTetMode(), GetTotPoints(), Nektar::LocalRegions::NodalTriExp::Integral(), Nektar::StdRegions::StdExpansion2D::Integral(), Nektar::LocalRegions::NodalTriExp::IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::IProductWRTDerivBase_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(), StdExpansion(), Nektar::StdRegions::StdNodalTriExp::StdNodalTriExp(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::LocalRegions::Expansion3D::v_AddFaceNormBoundaryInt(), Nektar::StdRegions::StdPointExp::v_BwdTrans(), Nektar::StdRegions::StdHexExp::v_BwdTrans(), Nektar::StdRegions::StdQuadExp::v_BwdTrans(), Nektar::StdRegions::StdPrismExp::v_BwdTrans(), Nektar::StdRegions::StdTetExp::v_BwdTrans(), Nektar::StdRegions::StdSegExp::v_BwdTrans(), Nektar::StdRegions::StdPyrExp::v_BwdTrans(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdTriExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::QuadExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::TriExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::NodalTriExp::v_ComputeEdgeNormal(), Nektar::LocalRegions::HexExp::v_ComputeFaceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TetExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::TriExp::v_ComputeLaplacianMetric(), Nektar::LocalRegions::SegExp::v_ComputeVertexNormal(), Nektar::LocalRegions::PyrExp::v_CreateStdMatrix(), Nektar::LocalRegions::TetExp::v_CreateStdMatrix(), Nektar::LocalRegions::PrismExp::v_CreateStdMatrix(), Nektar::LocalRegions::TriExp::v_CreateStdMatrix(), Nektar::LocalRegions::QuadExp::v_CreateStdMatrix(), Nektar::LocalRegions::SegExp::v_CreateStdMatrix(), Nektar::LocalRegions::HexExp::v_CreateStdMatrix(), Nektar::StdRegions::StdTriExp::v_DetEdgeBasisKey(), Nektar::StdRegions::StdPrismExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdHexExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdTetExp::v_DetFaceBasisKey(), Nektar::StdRegions::StdPyrExp::v_DetFaceBasisKey(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::StdRegions::StdQuadExp::v_FillMode(), Nektar::StdRegions::StdHexExp::v_FillMode(), Nektar::StdRegions::StdSegExp::v_FillMode(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::QuadExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::LocalRegions::TriExp::v_GetBasis(), Nektar::LocalRegions::QuadExp::v_GetBasis(), Nektar::StdRegions::StdSegExp::v_GetBoundaryMap(), Nektar::StdRegions::StdQuadExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTriExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPrismExp::v_GetBoundaryMap(), Nektar::StdRegions::StdTetExp::v_GetBoundaryMap(), Nektar::StdRegions::StdHexExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPointExp::v_GetCoords(), Nektar::LocalRegions::Expansion::v_GetCoords(), Nektar::StdRegions::StdPrismExp::v_GetCoords(), Nektar::StdRegions::StdTetExp::v_GetCoords(), Nektar::StdRegions::StdSegExp::v_GetCoords(), Nektar::StdRegions::StdTriExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetCoords(), Nektar::StdRegions::StdPyrExp::v_GetCoords(), Nektar::StdRegions::StdHexExp::v_GetCoords(), Nektar::StdRegions::StdQuadExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetEdgeInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetEdgeInteriorMap(), Nektar::LocalRegions::QuadExp::v_GetEdgeInterpVals(), Nektar::StdRegions::StdTetExp::v_GetEdgeNcoeffs(), Nektar::LocalRegions::QuadExp::v_GetEdgePhysVals(), Nektar::LocalRegions::TriExp::v_GetEdgePhysVals(), Nektar::LocalRegions::QuadExp::v_GetEdgeQFactors(), Nektar::StdRegions::StdTriExp::v_GetEdgeToElementMap(), Nektar::StdRegions::StdQuadExp::v_GetEdgeToElementMap(), Nektar::StdRegions::StdPrismExp::v_GetFaceInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetFaceInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetFaceInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetFaceInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetFaceIntNcoeffs(), Nektar::StdRegions::StdPyrExp::v_GetFaceIntNcoeffs(), Nektar::StdRegions::StdPrismExp::v_GetFaceNumPoints(), Nektar::StdRegions::StdHexExp::v_GetFaceNumPoints(), Nektar::StdRegions::StdTetExp::v_GetFaceNumPoints(), Nektar::StdRegions::StdPyrExp::v_GetFaceNumPoints(), Nektar::LocalRegions::PyrExp::v_GetFacePhysVals(), Nektar::LocalRegions::TetExp::v_GetFacePhysVals(), Nektar::LocalRegions::PrismExp::v_GetFacePhysVals(), Nektar::LocalRegions::HexExp::v_GetFacePhysVals(), Nektar::StdRegions::StdPrismExp::v_GetFacePointsKey(), Nektar::StdRegions::StdHexExp::v_GetFacePointsKey(), Nektar::StdRegions::StdTetExp::v_GetFacePointsKey(), Nektar::StdRegions::StdPrismExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdHexExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdTetExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdPyrExp::v_GetFaceToElementMap(), Nektar::StdRegions::StdQuadExp::v_GetInteriorMap(), Nektar::StdRegions::StdTriExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::LocalRegions::PrismExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdQuadExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTetExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTriExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::LocalRegions::PyrExp::v_GetStdExp(), Nektar::LocalRegions::TetExp::v_GetStdExp(), Nektar::LocalRegions::PrismExp::v_GetStdExp(), Nektar::LocalRegions::TriExp::v_GetStdExp(), Nektar::LocalRegions::QuadExp::v_GetStdExp(), Nektar::LocalRegions::SegExp::v_GetStdExp(), Nektar::LocalRegions::HexExp::v_GetStdExp(), Nektar::LocalRegions::NodalTriExp::v_GetStdExp(), Nektar::StdRegions::StdTetExp::v_GetTotalEdgeIntNcoeffs(), Nektar::StdRegions::StdTetExp::v_GetTotalFaceIntNcoeffs(), Nektar::StdRegions::StdSegExp::v_GetVertexMap(), Nektar::StdRegions::StdQuadExp::v_GetVertexMap(), Nektar::StdRegions::StdTriExp::v_GetVertexMap(), Nektar::StdRegions::StdHexExp::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::StdRegions::StdTriExp::v_Integral(), Nektar::StdRegions::StdQuadExp::v_Integral(), Nektar::LocalRegions::SegExp::v_Integral(), Nektar::LocalRegions::PrismExp::v_Integral(), Nektar::LocalRegions::TetExp::v_Integral(), Nektar::LocalRegions::PyrExp::v_Integral(), Nektar::LocalRegions::TriExp::v_Integral(), Nektar::LocalRegions::QuadExp::v_Integral(), Nektar::StdRegions::StdSegExp::v_Integral(), Nektar::LocalRegions::HexExp::v_Integral(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase(), Nektar::LocalRegions::PyrExp::v_IProductWRTBase(), Nektar::LocalRegions::SegExp::v_IProductWRTBase(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase(), Nektar::LocalRegions::TetExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::PrismExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPointExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::HexExp::v_IProductWRTBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdPyrExp::v_IProductWRTBase_SumFacKernel(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::StdRegions::StdPointExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::SegExp::v_IProductWRTDerivBase(), Nektar::StdRegions::StdSegExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTriExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdPrismExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdHexExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdSegExp::v_IsBoundaryInteriorExpansion(), Nektar::StdRegions::StdTetExp::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::PyrExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TetExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::HexExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::StdRegions::StdPyrExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdSegExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdPrismExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTetExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdQuadExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdTriExp::v_MultiplyByStdQuadratureMetric(), Nektar::StdRegions::StdHexExp::v_MultiplyByStdQuadratureMetric(), Nektar::LocalRegions::SegExp::v_NormVectorIProductWRTBase(), Nektar::LocalRegions::TriExp::v_NormVectorIProductWRTBase(), Nektar::LocalRegions::QuadExp::v_NormVectorIProductWRTBase(), Nektar::StdRegions::StdPrismExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPyrExp::v_NumBndryCoeffs(), Nektar::StdRegions::StdPrismExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdHexExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTetExp::v_NumDGBndryCoeffs(), Nektar::StdRegions::StdTriExp::v_PhysDeriv(), Nektar::StdRegions::StdPrismExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::TetExp::v_PhysDeriv(), Nektar::LocalRegions::PyrExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::StdRegions::StdTetExp::v_PhysDeriv(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv_n(), Nektar::LocalRegions::SegExp::v_PhysDeriv_s(), Nektar::LocalRegions::TriExp::v_PhysDirectionalDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDirectionalDeriv(), Nektar::StdRegions::StdExpansion0D::v_PhysEvaluate(), Nektar::StdRegions::StdExpansion1D::v_PhysEvaluate(), Nektar::StdRegions::StdExpansion2D::v_PhysEvaluate(), Nektar::StdRegions::StdExpansion3D::v_PhysEvaluate(), Nektar::StdRegions::StdTriExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::TriExp::v_ReduceOrderCoeffs(), Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), and Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter().

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

Definition at line 1357 of file StdExpansion.h.

Referenced by GetElmtId(), SetElmtId(), and v_GetElmtId().

LibUtilities::NekManager<IndexMapKey, IndexMapValues, IndexMapKey::opLess> Nektar::StdRegions::StdExpansion::m_IndexMapManager
protected

Definition at line 1361 of file StdExpansion.h.

Referenced by GetIndexMap().

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

Total number of coefficients used in the expansion

Definition at line 1358 of file StdExpansion.h.

Referenced by BwdTrans_MatOp(), CreateGeneralMatrix(), Nektar::LocalRegions::PyrExp::CreateStaticCondMatrix(), Nektar::LocalRegions::NodalTriExp::CreateStaticCondMatrix(), Nektar::LocalRegions::TetExp::CreateStaticCondMatrix(), Nektar::LocalRegions::PrismExp::CreateStaticCondMatrix(), Nektar::LocalRegions::QuadExp::CreateStaticCondMatrix(), Nektar::LocalRegions::TriExp::CreateStaticCondMatrix(), Nektar::LocalRegions::SegExp::CreateStaticCondMatrix(), Nektar::LocalRegions::HexExp::CreateStaticCondMatrix(), CreateStdStaticCondMatrix(), 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::HexExp::IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::HexExp::IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::NodalTriExp::IProductWRTDerivBase_SumFac(), LaplacianMatrixOp_MatFree_GenericImpl(), LinearAdvectionDiffusionReactionMatrixOp_MatFree(), Nektar::StdRegions::StdNodalTetExp::ModalToNodal(), Nektar::StdRegions::StdNodalPrismExp::ModalToNodal(), Nektar::StdRegions::StdNodalTriExp::ModalToNodal(), Nektar::LocalRegions::SegExp::MultiplyByElmtInvMass(), Nektar::StdRegions::StdNodalTetExp::NodalToModal(), Nektar::StdRegions::StdNodalPrismExp::NodalToModal(), Nektar::StdRegions::StdNodalTriExp::NodalToModal(), Nektar::StdRegions::StdNodalTetExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalPrismExp::NodalToModalTranspose(), Nektar::StdRegions::StdNodalTriExp::NodalToModalTranspose(), Nektar::LocalRegions::PointExp::PointExp(), Nektar::LocalRegions::SegExp::ReverseCoeffsAndSign(), Nektar::StdRegions::StdPyrExp::StdPyrExp(), Nektar::StdRegions::StdPointExp::v_BwdTrans(), Nektar::StdRegions::StdSegExp::v_BwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalPrismExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdNodalTriExp::v_BwdTrans_SumFac(), Nektar::StdRegions::StdHexExp::v_BwdTrans_SumFacKernel(), Nektar::StdRegions::StdQuadExp::v_BwdTrans_SumFacKernel(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdNodalTetExp::v_FillMode(), Nektar::StdRegions::StdNodalPrismExp::v_FillMode(), Nektar::StdRegions::StdNodalTriExp::v_FillMode(), Nektar::StdRegions::StdTriExp::v_FillMode(), Nektar::StdRegions::StdQuadExp::v_FillMode(), Nektar::StdRegions::StdPrismExp::v_FillMode(), Nektar::StdRegions::StdHexExp::v_FillMode(), Nektar::StdRegions::StdSegExp::v_FillMode(), Nektar::StdRegions::StdTetExp::v_FillMode(), Nektar::StdRegions::StdPyrExp::v_FillMode(), Nektar::StdRegions::StdPointExp::v_FwdTrans(), Nektar::LocalRegions::TetExp::v_FwdTrans(), Nektar::LocalRegions::PrismExp::v_FwdTrans(), Nektar::LocalRegions::PyrExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTetExp::v_FwdTrans(), Nektar::LocalRegions::SegExp::v_FwdTrans(), Nektar::StdRegions::StdNodalPrismExp::v_FwdTrans(), Nektar::StdRegions::StdNodalTriExp::v_FwdTrans(), Nektar::LocalRegions::TriExp::v_FwdTrans(), Nektar::LocalRegions::QuadExp::v_FwdTrans(), Nektar::LocalRegions::HexExp::v_FwdTrans(), Nektar::StdRegions::StdTriExp::v_FwdTrans(), Nektar::StdRegions::StdSegExp::v_FwdTrans(), Nektar::StdRegions::StdHexExp::v_FwdTrans(), Nektar::StdRegions::StdPrismExp::v_FwdTrans(), Nektar::StdRegions::StdQuadExp::v_FwdTrans(), Nektar::StdRegions::StdTetExp::v_FwdTrans(), Nektar::StdRegions::StdPyrExp::v_FwdTrans(), Nektar::StdRegions::StdPointExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdQuadExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::SegExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::TriExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::QuadExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdTriExp::v_FwdTrans_BndConstrained(), Nektar::StdRegions::StdSegExp::v_FwdTrans_BndConstrained(), Nektar::LocalRegions::PrismExp::v_GeneralMatrixOp_MatOp(), Nektar::LocalRegions::HexExp::v_GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdQuadExp::v_GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdTriExp::v_GeneralMatrixOp_MatOp(), Nektar::LocalRegions::TriExp::v_GeneralMatrixOp_MatOp(), Nektar::LocalRegions::QuadExp::v_GeneralMatrixOp_MatOp(), Nektar::StdRegions::StdHexExp::v_GeneralMatrixOp_MatOp(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::StdRegions::StdPointExp::v_GenMatrix(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdSegExp::v_GenMatrix(), Nektar::StdRegions::StdNodalTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdNodalPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdPrismExp::v_GetInteriorMap(), Nektar::StdRegions::StdTetExp::v_GetInteriorMap(), Nektar::StdRegions::StdHexExp::v_GetInteriorMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::LocalRegions::SegExp::v_GetNcoeffs(), 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::LocalRegions::TriExp::v_IProductWRTBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdTetExp::v_IProductWRTBase_MatOp(), Nektar::StdRegions::StdSegExp::v_IProductWRTBase_SumFac(), Nektar::StdRegions::StdQuadExp::v_IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdHexExp::v_IProductWRTBase_SumFacKernel(), Nektar::LocalRegions::TetExp::v_IProductWRTDerivBase(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdQuadExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdHexExp::v_IProductWRTDerivBase_MatOp(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_MatOp(), Nektar::LocalRegions::PrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::TriExp::v_IProductWRTDerivBase_SumFac(), Nektar::LocalRegions::QuadExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTriExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPrismExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdPyrExp::v_IProductWRTDerivBase_SumFac(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::PyrExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::PrismExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TetExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::HexExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::StdRegions::StdPrismExp::v_ReduceOrderCoeffs(), and Nektar::StdRegions::StdTetExp::v_ReduceOrderCoeffs().

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