Nektar++
|
Class representing a hexehedral element in reference space. More...
#include <StdHexExp.h>
Public Member Functions | |
StdHexExp (const LibUtilities::BasisKey &Ba, const LibUtilities::BasisKey &Bb, const LibUtilities::BasisKey &Bc) | |
StdHexExp (const StdHexExp &T)=default | |
~StdHexExp () override=default | |
![]() | |
StdExpansion3D (int numcoeffs, const LibUtilities::BasisKey &Ba, const LibUtilities::BasisKey &Bb, const LibUtilities::BasisKey &Bc) | |
StdExpansion3D ()=default | |
StdExpansion3D (const StdExpansion3D &T)=default | |
~StdExpansion3D () override=default | |
void | PhysTensorDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray_d1, Array< OneD, NekDouble > &outarray_d2, Array< OneD, NekDouble > &outarray_d3) |
Calculate the 3D derivative in the local tensor/collapsed coordinate at the physical points. More... | |
void | BwdTrans_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2) |
void | IProductWRTBase_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2) |
int | GetNedges () const |
return the number of edges in 3D expansion More... | |
int | GetEdgeNcoeffs (const int i) const |
This function returns the number of expansion coefficients belonging to the i-th edge. More... | |
void | GetEdgeInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards) |
![]() | |
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::BasisSharedPtr & | GetBasis (int dir) const |
This function gets the shared point to basis in the dir direction. More... | |
int | GetNcoeffs (void) const |
This function returns the total number of coefficients used in the expansion. More... | |
int | GetTotPoints () const |
This function returns the total number of quadrature points used in the element. More... | |
LibUtilities::BasisType | GetBasisType (const int dir) const |
This function returns the type of basis used in the dir direction. More... | |
int | GetBasisNumModes (const int dir) const |
This function returns the number of expansion modes in the dir direction. More... | |
int | EvalBasisNumModesMax (void) const |
This function returns the maximum number of expansion modes over all local directions. More... | |
LibUtilities::PointsType | GetPointsType (const int dir) const |
This function returns the type of quadrature points used in the dir direction. More... | |
int | GetNumPoints (const int dir) const |
This function returns the number of quadrature points in the dir direction. More... | |
const Array< OneD, const NekDouble > & | GetPoints (const int dir) const |
This function returns a pointer to the array containing the quadrature points in dir direction. More... | |
int | GetNverts () const |
This function returns the number of vertices of the expansion domain. More... | |
int | GetTraceNcoeffs (const int i) const |
This function returns the number of expansion coefficients belonging to the i-th trace. More... | |
int | GetTraceIntNcoeffs (const int i) const |
int | GetTraceNumPoints (const int i) const |
This function returns the number of quadrature points belonging to the i-th trace. More... | |
const LibUtilities::BasisKey | GetTraceBasisKey (const int i, int k=-1, bool UseGLL=false) const |
This function returns the basis key belonging to the i-th trace. More... | |
LibUtilities::PointsKey | GetTracePointsKey (const int i, int k=-1) const |
This function returns the basis key belonging to the i-th trace. More... | |
int | NumBndryCoeffs (void) const |
int | NumDGBndryCoeffs (void) const |
const LibUtilities::PointsKey | GetNodalPointsKey () const |
This function returns the type of expansion Nodal point type if defined. More... | |
int | GetNtraces () const |
Returns the number of trace elements connected to this element. More... | |
LibUtilities::ShapeType | DetShapeType () const |
This function returns the shape of the expansion domain. More... | |
std::shared_ptr< StdExpansion > | GetStdExp () const |
std::shared_ptr< StdExpansion > | GetLinStdExp (void) const |
int | GetShapeDimension () const |
bool | IsBoundaryInteriorExpansion () const |
bool | IsNodalNonTensorialExp () |
void | NodalToModal (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs the Backward transformation from coefficient space to physical space. More... | |
void | FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs the Forward transformation from physical space to coefficient space. More... | |
void | FwdTransBndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
NekDouble | Integral (const Array< OneD, const NekDouble > &inarray) |
This function integrates the specified function over the domain. More... | |
void | FillMode (const int mode, Array< OneD, NekDouble > &outarray) |
This function fills the array outarray with the mode-th mode of the expansion. More... | |
void | IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
this function calculates the inner product of a given function f with the different modes of the expansion More... | |
void | IProductWRTBase (const Array< OneD, const NekDouble > &base, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int coll_check) |
void | IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
int | GetElmtId () |
Get the element id of this expansion when used in a list by returning value of m_elmt_id. More... | |
void | SetElmtId (const int id) |
Set the element id of this expansion when used in a list by returning value of m_elmt_id. More... | |
void | GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2=NullNekDouble1DArray, Array< OneD, NekDouble > &coords_3=NullNekDouble1DArray) |
this function returns the physical coordinates of the quadrature points of the expansion More... | |
void | GetCoord (const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord) |
given the coordinates of a point of the element in the local collapsed coordinate system, this function calculates the physical coordinates of the point More... | |
DNekMatSharedPtr | GetStdMatrix (const StdMatrixKey &mkey) |
DNekBlkMatSharedPtr | GetStdStaticCondMatrix (const StdMatrixKey &mkey) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray) |
DNekScalBlkMatSharedPtr | GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
void | DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
int | CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset) |
NekDouble | StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals) |
int | GetCoordim () |
void | GetBoundaryMap (Array< OneD, unsigned int > &outarray) |
void | GetInteriorMap (Array< OneD, unsigned int > &outarray) |
int | GetVertexMap (const int localVertexId, bool useCoeffPacking=false) |
void | GetTraceToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1) |
void | GetTraceCoeffMap (const unsigned int traceid, Array< OneD, unsigned int > &maparray) |
void | GetElmtTraceToTraceMap (const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1) |
void | GetTraceInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards) |
void | GetTraceNumModes (const int tid, int &numModes0, int &numModes1, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2) |
void | MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
DNekMatSharedPtr | CreateGeneralMatrix (const StdMatrixKey &mkey) |
this function generates the mass matrix \(\mathbf{M}[i][j] =
\int \phi_i(\mathbf{x}) \phi_j(\mathbf{x}) d\mathbf{x}\) More... | |
void | GeneralMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey) |
void | ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff) |
void | LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionDiffusionReactionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true) |
void | HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
DNekMatSharedPtr | GenMatrix (const StdMatrixKey &mkey) |
void | PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray) |
void | PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | PhysDeriv_s (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds) |
void | PhysDeriv_n (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn) |
void | PhysDirectionalDeriv (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &outarray) |
void | StdPhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray) |
void | StdPhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
NekDouble | PhysEvaluate (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals) |
This function evaluates the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) |
This function evaluates the first derivative of the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs, std::array< NekDouble, 6 > &secondOrderDerivs) |
NekDouble | PhysEvaluate (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals) |
This function evaluates the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluateBasis (const Array< OneD, const NekDouble > &coords, int mode) |
This function evaluates the basis function mode mode at a point coords of the domain. More... | |
void | LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta) |
Convert local cartesian coordinate xi into local collapsed coordinates eta. More... | |
void | LocCollapsedToLocCoord (const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi) |
Convert local collapsed coordinates eta into local cartesian coordinate xi. More... | |
void | PhysInterp (std::shared_ptr< StdExpansion > fromExp, const Array< OneD, const NekDouble > &fromData, Array< OneD, NekDouble > &toData) |
interpolate from one set of quadrature points available from FromExp to the set of quadrature points in the current expansion. If the points are the same this routine will just copy the data More... | |
virtual int | v_CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray) |
virtual DNekScalBlkMatSharedPtr | v_GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
virtual void | v_DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
NekDouble | Linf (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( L_\infty\) error \( |\epsilon|_\infty = \max |u - u_{exact}|\) where \(
u_{exact}\) is given by the array sol. More... | |
NekDouble | L2 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( L_2\) error, \( | \epsilon |_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2
dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol. More... | |
NekDouble | H1 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( H^1\) error, \( | \epsilon |^1_{2} = \left [ \int^1_{-1} [u -
u_{exact}]^2 + \nabla(u - u_{exact})\cdot\nabla(u -
u_{exact})\cdot dx \right]^{1/2} d\xi_1 \) where \(
u_{exact}\) is given by the array sol. More... | |
const LibUtilities::PointsKeyVector | GetPointsKeys () const |
DNekMatSharedPtr | BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &m_transformationmatrix) |
void | PhysInterpToSimplexEquiSpaced (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int npset=-1) |
This function performs an interpolation from the physical space points provided at input into an array of equispaced points which are not the collapsed coordinate. So for a tetrahedron you will only get a tetrahedral number of values. More... | |
void | GetSimplexEquiSpacedConnectivity (Array< OneD, int > &conn, bool standard=true) |
This function provides the connectivity of local simplices (triangles or tets) to connect the equispaced data points provided by PhysInterpToSimplexEquiSpaced. More... | |
void | EquiSpacedToCoeffs (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs a projection/interpolation from the equispaced points sometimes used in post-processing onto the coefficient space. More... | |
template<class T > | |
std::shared_ptr< T > | as () |
void | IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true) |
void | GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat) |
Protected Member Functions | |
void | v_PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2) override |
Differentiation Methods. More... | |
void | v_PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_StdPhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1, Array< OneD, NekDouble > &out_d2) override |
void | v_StdPhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_BwdTrans_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_BwdTrans_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2) override |
void | v_FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multbyweights=true) override |
void | v_IProductWRTBase_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2) override |
void | v_IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_IProductWRTDerivBase_SumFac (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta) override |
void | v_LocCollapsedToLocCoord (const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi) override |
void | v_FillMode (const int mode, Array< OneD, NekDouble > &outarray) override |
NekDouble | v_PhysEvaluateBasis (const Array< OneD, const NekDouble > &coords, int mode) final |
NekDouble | v_PhysEvalFirstDeriv (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) override |
int | v_GetNverts () const override |
int | v_GetNedges () const override |
int | v_GetNtraces () const override |
LibUtilities::ShapeType | v_DetShapeType () const override |
int | v_NumBndryCoeffs () const override |
int | v_NumDGBndryCoeffs () const override |
int | v_GetTraceNcoeffs (const int i) const override |
int | v_GetTraceIntNcoeffs (const int i) const override |
int | v_GetTraceNumPoints (const int i) const override |
LibUtilities::PointsKey | v_GetTracePointsKey (const int i, const int j) const override |
int | v_CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset) override |
const LibUtilities::BasisKey | v_GetTraceBasisKey (const int i, const int k, bool useGLL=false) const override |
bool | v_IsBoundaryInteriorExpansion () const override |
void | v_GetCoords (Array< OneD, NekDouble > &coords_x, Array< OneD, NekDouble > &coords_y, Array< OneD, NekDouble > &coords_z) override |
void | v_GetTraceNumModes (const int fid, int &numModes0, int &numModes1, Orientation faceOrient=eDir1FwdDir1_Dir2FwdDir2) override |
int | v_GetEdgeNcoeffs (const int i) const override |
int | v_GetVertexMap (int localVertexId, bool useCoeffPacking=false) override |
void | v_GetInteriorMap (Array< OneD, unsigned int > &outarray) override |
void | v_GetBoundaryMap (Array< OneD, unsigned int > &outarray) override |
void | v_GetTraceCoeffMap (const unsigned int fid, Array< OneD, unsigned int > &maparray) override |
void | v_GetElmtTraceToTraceMap (const unsigned int fid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation faceOrient, int P, int Q) override |
void | v_GetEdgeInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2) override |
void | v_GetTraceInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2) override |
DNekMatSharedPtr | v_GenMatrix (const StdMatrixKey &mkey) override |
DNekMatSharedPtr | v_CreateStdMatrix (const StdMatrixKey &mkey) override |
void | v_GetSimplexEquiSpacedConnectivity (Array< OneD, int > &conn, bool standard=true) override |
void | v_MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) override |
void | v_LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) override |
void | v_LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) override |
void | v_WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) override |
void | v_HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) override |
void | v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey) override |
void | v_ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff) override |
![]() | |
NekDouble | v_PhysEvaluate (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals) override |
This function evaluates the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | v_PhysEvaluateInterp (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals) override |
virtual void | v_BwdTrans_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)=0 |
virtual void | v_IProductWRTBase_SumFacKernel (const Array< OneD, const NekDouble > &base0, const Array< OneD, const NekDouble > &base1, const Array< OneD, const NekDouble > &base2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp, bool doCheckCollDir0, bool doCheckCollDir1, bool doCheckCollDir2)=0 |
void | v_LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
NekDouble | v_Integral (const Array< OneD, const NekDouble > &inarray) override |
Integrates the specified function over the domain. More... | |
virtual int | v_GetNedges (void) const |
virtual int | v_GetEdgeNcoeffs (const int i) const |
NekDouble | BaryTensorDeriv (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) |
virtual void | v_GetEdgeInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards) |
void | v_GetTraceToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient, int P, int Q) override |
void | v_GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat) override |
void | v_PhysInterp (std::shared_ptr< StdExpansion > fromExp, const Array< OneD, const NekDouble > &fromData, Array< OneD, NekDouble > &toData) override |
![]() | |
DNekMatSharedPtr | CreateStdMatrix (const StdMatrixKey &mkey) |
DNekBlkMatSharedPtr | CreateStdStaticCondMatrix (const StdMatrixKey &mkey) |
Create the static condensation of a matrix when using a boundary interior decomposition. More... | |
void | BwdTrans_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDerivBase_SumFac (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDirectionalDerivBase_SumFac (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | GeneralMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp) |
void | LaplacianMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDerivMatrixOp_MatFree (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDirectionalDerivMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassLevelCurvatureMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionDiffusionReactionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true) |
void | HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | HelmholtzMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
virtual void | v_SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual NekDouble | v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals) |
virtual void | v_GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat) |
virtual void | v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv, NekDouble &deriv2) |
This function performs the barycentric interpolation of the polynomial stored in coord at a point physvals using barycentric interpolation weights in direction. More... | |
template<int DIR> | |
NekDouble | BaryEvaluateBasis (const NekDouble &coord, const int &mode) |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals) |
Helper function to pass an unused value by reference into BaryEvaluate. More... | |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv) |
Additional Inherited Members | |
![]() | |
Array< OneD, LibUtilities::BasisSharedPtr > | m_base |
int | m_elmt_id |
int | m_ncoeffs |
LibUtilities::NekManager< StdMatrixKey, DNekMat, StdMatrixKey::opLess > | m_stdMatrixManager |
LibUtilities::NekManager< StdMatrixKey, DNekBlkMat, StdMatrixKey::opLess > | m_stdStaticCondMatrixManager |
Class representing a hexehedral element in reference space.
Definition at line 43 of file StdHexExp.h.
Nektar::StdRegions::StdHexExp::StdHexExp | ( | const LibUtilities::BasisKey & | Ba, |
const LibUtilities::BasisKey & | Bb, | ||
const LibUtilities::BasisKey & | Bc | ||
) |
Definition at line 45 of file StdHexExp.cpp.
|
default |
|
overridedefault |
|
overrideprotectedvirtual |
Backward transformation is three dimensional tensorial expansion \( u (\xi_{1i}, \xi_{2j}, \xi_{3k}) = \sum_{p=0}^{Q_x} \psi_p^a (\xi_{1i}) \lbrace { \sum_{q=0}^{Q_y} \psi_{q}^a (\xi_{2j}) \lbrace { \sum_{r=0}^{Q_z} \hat u_{pqr} \psi_{r}^a (\xi_{3k}) \rbrace} \rbrace}. \) And sumfactorizing step of the form is as:\ \( f_{r} (\xi_{3k}) = \sum_{r=0}^{Q_z} \hat u_{pqr} \psi_{r}^a (\xi_{3k}),\\ g_{p} (\xi_{2j}, \xi_{3k}) = \sum_{r=0}^{Q_y} \psi_{p}^a (\xi_{2j}) f_{r} (\xi_{3k}),\\ u(\xi_{1i}, \xi_{2j}, \xi_{3k}) = \sum_{p=0}^{Q_x} \psi_{p}^a (\xi_{1i}) g_{p} (\xi_{2j}, \xi_{3k}). \)
inarray | ? |
outarray | ? |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 153 of file StdHexExp.cpp.
References ASSERTL1, Nektar::StdRegions::StdExpansion::BwdTrans_SumFac(), Nektar::LibUtilities::eModified_B, Nektar::LibUtilities::eModified_C, Nektar::LibUtilities::eOrtho_B, Nektar::LibUtilities::eOrtho_C, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::GetNumPoints(), Nektar::StdRegions::StdExpansion::m_base, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 180 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::BwdTrans_SumFacKernel(), Nektar::StdRegions::StdExpansion::GetNumPoints(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
base0 | x-dirn basis matrix |
base1 | y-dirn basis matrix |
base2 | z-dirn basis matrix |
inarray | Input vector of modes. |
outarray | Output vector of physical space data. |
wsp | Workspace of size Q_x*P_z*(P_y+Q_y) |
doCheckCollDir0 | Check for collocation of basis. |
doCheckCollDir1 | Check for collocation of basis. |
doCheckCollDir2 | Check for collocation of basis. |
Implements Nektar::StdRegions::StdExpansion3D.
Definition at line 205 of file StdHexExp.cpp.
References ASSERTL1, Blas::Dgemm(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 721 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2266 of file StdHexExp.cpp.
References v_GenMatrix().
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 605 of file StdHexExp.cpp.
References Nektar::LibUtilities::eHexahedron.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 2469 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::BwdTrans(), Nektar::LibUtilities::eOrtho_A, Nektar::StdRegions::StdExpansion::FwdTrans(), Nektar::StdRegions::StdExpansion::GetNcoeffs(), Nektar::StdRegions::StdExpansion::GetPointsType(), Nektar::StdRegions::StdExpansion::m_base, and Nektar::LibUtilities::P.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 524 of file StdHexExp.cpp.
References ASSERTL2, Blas::Dscal(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, Vmath::Vcopy(), and Vmath::Vmul().
|
overrideprotectedvirtual |
Solves the system \( \mathbf{B^{\top}WB\hat{u}}=\mathbf{B^{\top}Wu^{\delta}} \)
inarray | array of physical quadrature points to be transformed, \( \mathbf{u^{\delta}} \). |
outarray | array of expansion coefficients, \( \mathbf{\hat{u}} \). |
Implements Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 262 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::DetShapeType(), Nektar::StdRegions::eInvMass, Nektar::eWrapper, Nektar::StdRegions::StdExpansion::GetNcoeffs(), Nektar::StdRegions::StdExpansion::GetStdMatrix(), Nektar::StdRegions::StdExpansion::IProductWRTBase(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2178 of file StdHexExp.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::StdRegions::StdMatrixKey::ConstFactorExists(), Nektar::StdRegions::StdExpansion::CreateGeneralMatrix(), Nektar::StdRegions::eFactorConst, Nektar::StdRegions::ePhysInterpToEquiSpaced, Nektar::StdRegions::StdMatrixKey::GetConstFactor(), Nektar::StdRegions::StdMatrixKey::GetMatrixType(), Nektar::LibUtilities::StdHexData::getNumberOfCoefficients(), Nektar::StdRegions::StdExpansion::LocCoordToLocCollapsed(), Nektar::StdRegions::StdExpansion::m_base, Vmath::Smul(), and Vmath::Vcopy().
Referenced by v_CreateStdMatrix().
|
overrideprotectedvirtual |
outarray | Storage for computed map. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1024 of file StdHexExp.cpp.
References ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::NumBndryCoeffs(), CellMLToNektar.cellml_metadata::p, and Nektar::UnitTests::q().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 759 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::GetNumPoints(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
eid | The edge to compute the numbering for. |
edgeOrient | Orientation of the edge. |
maparray | Storage for computed mapping array. |
signarray | ? |
Reimplemented from Nektar::StdRegions::StdExpansion3D.
Definition at line 1543 of file StdHexExp.cpp.
References ASSERTL1, Nektar::StdRegions::eBackwards, Nektar::StdRegions::eForwards, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion3D::GetEdgeNcoeffs(), Nektar::StdRegions::StdExpansion::m_base, CellMLToNektar.cellml_metadata::p, and Nektar::UnitTests::q().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion3D.
Definition at line 2160 of file StdHexExp.cpp.
References ASSERTL2, and Nektar::StdRegions::StdExpansion::GetBasisNumModes().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1248 of file StdHexExp.cpp.
References ASSERTL0, ASSERTL1, Nektar::StdRegions::eDir1BwdDir1_Dir2BwdDir2, Nektar::StdRegions::eDir1BwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1BwdDir2_Dir2BwdDir1, Nektar::StdRegions::eDir1BwdDir2_Dir2FwdDir1, Nektar::StdRegions::eDir1FwdDir1_Dir2BwdDir2, Nektar::StdRegions::eDir1FwdDir2_Dir2BwdDir1, Nektar::StdRegions::eDir1FwdDir2_Dir2FwdDir1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::m_base, and Nektar::LibUtilities::P.
|
overrideprotectedvirtual |
outarray | Storage area for computed map. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 963 of file StdHexExp.cpp.
References ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, Nektar::StdRegions::StdExpansion::NumBndryCoeffs(), CellMLToNektar.cellml_metadata::p, and Nektar::UnitTests::q().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion3D.
Definition at line 595 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 600 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 590 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 2531 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 731 of file StdHexExp.cpp.
References ASSERTL2, Nektar::StdRegions::EvaluateQuadFaceBasisKey(), Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::GetNumPoints(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Only for basis type Modified_A or GLL_LAGRANGE in all directions.
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1124 of file StdHexExp.cpp.
References ASSERTL0, ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Generate mapping describing which elemental modes lie on the interior of a given face. Accounts for face orientation.
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1836 of file StdHexExp.cpp.
References ASSERTL1, Nektar::StdRegions::eDir1FwdDir1_Dir2FwdDir2, Nektar::StdRegions::eDir1FwdDir2_Dir2FwdDir1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::m_base, CellMLToNektar.cellml_metadata::p, Nektar::UnitTests::q(), and v_GetTraceIntNcoeffs().
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 666 of file StdHexExp.cpp.
References ASSERTL2, and Nektar::StdRegions::StdExpansion::GetBasisNumModes().
Referenced by v_GetTraceInteriorToElementMap().
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 649 of file StdHexExp.cpp.
References ASSERTL2, and Nektar::StdRegions::StdExpansion::GetBasisNumModes().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 787 of file StdHexExp.cpp.
References ASSERTL0, Nektar::StdRegions::eDir1FwdDir2_Dir2FwdDir1, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 683 of file StdHexExp.cpp.
References ASSERTL2, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 701 of file StdHexExp.cpp.
References ASSERTL2, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Expansions in each of the three dimensions must be of type LibUtilities::eModified_A or LibUtilities::eGLL_Lagrange.
localVertexId | ID of vertex (0..7) |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 835 of file StdHexExp.cpp.
References ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::m_base, CellMLToNektar.cellml_metadata::p, and Nektar::UnitTests::q().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2301 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree().
|
overrideprotectedvirtual |
\(
\begin{array}{rcl}
I_{pqr} = (\phi_{pqr}, u)_{\delta} & = &
\sum_{i=0}^{nq_0} \sum_{j=0}^{nq_1} \sum_{k=0}^{nq_2}
\psi_{p}^{a}(\xi_{1i}) \psi_{q}^{a}(\xi_{2j}) \psi_{r}^{a}(\xi_{3k})
w_i w_j w_k u(\xi_{1,i} \xi_{2,j} \xi_{3,k})
J_{i,j,k}\\ & = & \sum_{i=0}^{nq_0} \psi_p^a(\xi_{1,i})
\sum_{j=0}^{nq_1} \psi_{q}^a(\xi_{2,j})
\sum_{k=0}^{nq_2} \psi_{r}^a
u(\xi_{1i},\xi_{2j},\xi_{3k}) J_{i,j,k}
\end{array} \)
where \( \phi_{pqr} (\xi_1 , \xi_2 , \xi_3)
= \psi_p^a( \xi_1) \psi_{q}^a(\xi_2) \psi_{r}^a(\xi_3) \)
which can be implemented as
\(f_{r} (\xi_{3k})
= \sum_{k=0}^{nq_3} \psi_{r}^a u(\xi_{1i},\xi_{2j}, \xi_{3k})
J_{i,j,k} = {\bf B_3 U} \)
\( g_{q} (\xi_{3k})
= \sum_{j=0}^{nq_1} \psi_{q}^a(\xi_{2j}) f_{r}(\xi_{3k})
= {\bf B_2 F} \)
\( (\phi_{pqr}, u)_{\delta}
= \sum_{k=0}^{nq_0} \psi_{p}^a (\xi_{3k}) g_{q} (\xi_{3k})
= {\bf B_1 G} \)
inarray | ? |
outarray | ? |
Implements Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 320 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric(), and v_IProductWRTBase_SumFac().
|
overrideprotectedvirtual |
Implementation of the sum-factorization inner product operation.
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 337 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, and Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric().
Referenced by v_IProductWRTBase().
|
overrideprotectedvirtual |
Implementation of the sum-factorisation inner product operation.
Implements Nektar::StdRegions::StdExpansion3D.
Definition at line 371 of file StdHexExp.cpp.
References ASSERTL1, Blas::Dgemm(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 452 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::IProductWRTDerivBase_SumFac().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 459 of file StdHexExp.cpp.
References ASSERTL0, Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, and Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 55 of file StdHexExp.cpp.
References Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2278 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2285 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::LaplacianMatrixOp_MatFree().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 513 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 505 of file StdHexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2271 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::MassMatrixOp_MatFree().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 2308 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::m_base, Vmath::Smul(), and Vmath::Vmul().
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 610 of file StdHexExp.cpp.
References ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Implements Nektar::StdRegions::StdExpansion.
Definition at line 630 of file StdHexExp.cpp.
References ASSERTL1, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::GetBasisType(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Differentiation Methods.
For Hexahedral region can use the PhysTensorDeriv function defined under StdExpansion. Following tenserproduct:
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 72 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::PhysTensorDeriv().
Referenced by v_StdPhysDeriv().
|
overrideprotectedvirtual |
dir | Direction in which to compute derivative. Valid values are 0, 1, 2. |
inarray | Input array. |
outarray | Output array. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 86 of file StdHexExp.cpp.
References ASSERTL1, Nektar::NullNekDouble1DArray, and Nektar::StdRegions::StdExpansion::PhysDeriv().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 1113 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::BaryTensorDeriv().
|
finalprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 569 of file StdHexExp.cpp.
References ASSERTL2, Nektar::NekConstants::kNekZeroTol, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 118 of file StdHexExp.cpp.
References v_PhysDeriv().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 126 of file StdHexExp.cpp.
References v_PhysDeriv().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2341 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::BwdTrans(), Nektar::StdRegions::StdMatrixKey::ConstFactorExists(), Nektar::StdRegions::eFactorSVVCutoffRatio, Nektar::StdRegions::eFactorSVVDGKerDiffCoeff, Nektar::StdRegions::eFactorSVVDiffCoeff, Nektar::StdRegions::eFactorSVVPowerKerDiffCoeff, Nektar::LibUtilities::eOrtho_A, Nektar::StdRegions::StdExpansion::FwdTrans(), Nektar::StdRegions::StdMatrixKey::GetConstFactor(), Nektar::StdRegions::StdExpansion::GetNcoeffs(), Nektar::StdRegions::StdExpansion::GetPointsType(), Nektar::StdRegions::kSVVDGFilter, Nektar::StdRegions::kSVVDGFiltermodesmax, Nektar::StdRegions::kSVVDGFiltermodesmin, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Reimplemented in Nektar::LocalRegions::HexExp.
Definition at line 2293 of file StdHexExp.cpp.
References Nektar::StdRegions::StdExpansion::WeakDerivMatrixOp_MatFree().