Nektar++
|
#include <HexExp.h>
Public Member Functions | |
HexExp (const LibUtilities::BasisKey &Ba, const LibUtilities::BasisKey &Bb, const LibUtilities::BasisKey &Bc, const SpatialDomains::HexGeomSharedPtr &geom) | |
Constructor using BasisKey class for quadrature points and order definition. More... | |
HexExp (const HexExp &T) | |
Copy Constructor. More... | |
~HexExp () override=default | |
Public Member Functions inherited from Nektar::StdRegions::StdHexExp | |
StdHexExp (const LibUtilities::BasisKey &Ba, const LibUtilities::BasisKey &Bb, const LibUtilities::BasisKey &Bc) | |
StdHexExp (const StdHexExp &T)=default | |
~StdHexExp () override=default | |
Public Member Functions inherited from Nektar::StdRegions::StdExpansion3D | |
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) |
Public Member Functions inherited from Nektar::StdRegions::StdExpansion | |
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) 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 | BwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs the Backward transformation from coefficient space to physical space. More... | |
void | FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs the Forward transformation from physical space to coefficient space. More... | |
void | FwdTransBndConstrained (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
NekDouble | Integral (const Array< OneD, const NekDouble > &inarray) |
This function integrates the specified function over the domain. More... | |
void | FillMode (const int mode, Array< OneD, NekDouble > &outarray) |
This function fills the array outarray with the mode-th mode of the expansion. More... | |
void | IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
this function calculates the inner product of a given function f with the different modes of the expansion More... | |
void | IProductWRTBase (const Array< OneD, const NekDouble > &base, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int coll_check) |
void | IProductWRTDerivBase (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
int | GetElmtId () |
Get the element id of this expansion when used in a list by returning value of m_elmt_id. More... | |
void | SetElmtId (const int id) |
Set the element id of this expansion when used in a list by returning value of m_elmt_id. More... | |
void | GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2=NullNekDouble1DArray, Array< OneD, NekDouble > &coords_3=NullNekDouble1DArray) |
this function returns the physical coordinates of the quadrature points of the expansion More... | |
void | GetCoord (const Array< OneD, const NekDouble > &Lcoord, Array< OneD, NekDouble > &coord) |
given the coordinates of a point of the element in the local collapsed coordinate system, this function calculates the physical coordinates of the point More... | |
DNekMatSharedPtr | GetStdMatrix (const StdMatrixKey &mkey) |
DNekBlkMatSharedPtr | GetStdStaticCondMatrix (const StdMatrixKey &mkey) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray) |
void | NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray) |
DNekScalBlkMatSharedPtr | GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
void | DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
int | CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset) |
NekDouble | StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals) |
int | GetCoordim () |
void | GetBoundaryMap (Array< OneD, unsigned int > &outarray) |
void | GetInteriorMap (Array< OneD, unsigned int > &outarray) |
int | GetVertexMap (const int localVertexId, bool useCoeffPacking=false) |
void | GetTraceToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1) |
void | GetTraceCoeffMap (const unsigned int traceid, Array< OneD, unsigned int > &maparray) |
void | GetElmtTraceToTraceMap (const unsigned int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, Orientation traceOrient=eForwards, int P=-1, int Q=-1) |
void | GetTraceInteriorToElementMap (const int tid, Array< OneD, unsigned int > &maparray, Array< OneD, int > &signarray, const Orientation traceOrient=eForwards) |
void | GetTraceNumModes (const int tid, int &numModes0, int &numModes1, const Orientation traceOrient=eDir1FwdDir1_Dir2FwdDir2) |
void | MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
DNekMatSharedPtr | CreateGeneralMatrix (const StdMatrixKey &mkey) |
this function generates the mass matrix \(\mathbf{M}[i][j] =
\int \phi_i(\mathbf{x}) \phi_j(\mathbf{x}) d\mathbf{x}\) More... | |
void | GeneralMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdMatrixKey &mkey) |
void | ExponentialFilter (Array< OneD, NekDouble > &array, const NekDouble alpha, const NekDouble exponent, const NekDouble cutoff) |
void | LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionDiffusionReactionMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true) |
void | HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
DNekMatSharedPtr | GenMatrix (const StdMatrixKey &mkey) |
void | PhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray) |
void | PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | PhysDeriv_s (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_ds) |
void | PhysDeriv_n (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_dn) |
void | PhysDirectionalDeriv (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &outarray) |
void | StdPhysDeriv (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &out_d0, Array< OneD, NekDouble > &out_d1=NullNekDouble1DArray, Array< OneD, NekDouble > &out_d2=NullNekDouble1DArray) |
void | StdPhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
NekDouble | PhysEvaluate (const Array< OneD, const NekDouble > &coords, const Array< OneD, const NekDouble > &physvals) |
This function evaluates the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) |
This function evaluates the first derivative of the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs, std::array< NekDouble, 6 > &secondOrderDerivs) |
NekDouble | PhysEvaluate (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals) |
This function evaluates the expansion at a single (arbitrary) point of the domain. More... | |
NekDouble | PhysEvaluateBasis (const Array< OneD, const NekDouble > &coords, int mode) |
This function evaluates the basis function mode mode at a point coords of the domain. More... | |
void | LocCoordToLocCollapsed (const Array< OneD, const NekDouble > &xi, Array< OneD, NekDouble > &eta) |
Convert local cartesian coordinate xi into local collapsed coordinates eta. More... | |
void | LocCollapsedToLocCoord (const Array< OneD, const NekDouble > &eta, Array< OneD, NekDouble > &xi) |
Convert local collapsed coordinates eta into local cartesian coordinate xi. More... | |
virtual int | v_CalcNumberOfCoefficients (const std::vector< unsigned int > &nummodes, int &modes_offset) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, const Array< OneD, const NekDouble > &Fz, Array< OneD, NekDouble > &outarray) |
virtual void | v_NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray) |
virtual DNekScalBlkMatSharedPtr | v_GetLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
virtual void | v_DropLocStaticCondMatrix (const LocalRegions::MatrixKey &mkey) |
NekDouble | Linf (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( L_\infty\) error \( |\epsilon|_\infty = \max |u - u_{exact}|\) where \(
u_{exact}\) is given by the array sol. More... | |
NekDouble | L2 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( L_2\) error, \( | \epsilon |_{2} = \left [ \int^1_{-1} [u - u_{exact}]^2
dx \right]^{1/2} d\xi_1 \) where \( u_{exact}\) is given by the array sol. More... | |
NekDouble | H1 (const Array< OneD, const NekDouble > &phys, const Array< OneD, const NekDouble > &sol=NullNekDouble1DArray) |
Function to evaluate the discrete \( H^1\) error, \( | \epsilon |^1_{2} = \left [ \int^1_{-1} [u -
u_{exact}]^2 + \nabla(u - u_{exact})\cdot\nabla(u -
u_{exact})\cdot dx \right]^{1/2} d\xi_1 \) where \(
u_{exact}\) is given by the array sol. More... | |
const LibUtilities::PointsKeyVector | GetPointsKeys () const |
DNekMatSharedPtr | BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &m_transformationmatrix) |
void | PhysInterpToSimplexEquiSpaced (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, int npset=-1) |
This function performs an interpolation from the physical space points provided at input into an array of equispaced points which are not the collapsed coordinate. So for a tetrahedron you will only get a tetrahedral number of values. More... | |
void | GetSimplexEquiSpacedConnectivity (Array< OneD, int > &conn, bool standard=true) |
This function provides the connectivity of local simplices (triangles or tets) to connect the equispaced data points provided by PhysInterpToSimplexEquiSpaced. More... | |
void | EquiSpacedToCoeffs (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
This function performs a projection/interpolation from the equispaced points sometimes used in post-processing onto the coefficient space. More... | |
template<class T > | |
std::shared_ptr< T > | as () |
void | IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true) |
void | GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat) |
Public Member Functions inherited from Nektar::LocalRegions::Expansion3D | |
Expansion3D (SpatialDomains::Geometry3DSharedPtr pGeom) | |
~Expansion3D () override=default | |
void | SetTraceToGeomOrientation (Array< OneD, NekDouble > &inout) |
Align trace orientation with the geometry orientation. More... | |
void | SetFaceToGeomOrientation (const int face, Array< OneD, NekDouble > &inout) |
Align face orientation with the geometry orientation. More... | |
void | AddHDGHelmholtzFaceTerms (const NekDouble tau, const int edge, Array< OneD, NekDouble > &facePhys, const StdRegions::VarCoeffMap &dirForcing, Array< OneD, NekDouble > &outarray) |
void | AddNormTraceInt (const int dir, Array< OneD, ExpansionSharedPtr > &FaceExp, Array< OneD, Array< OneD, NekDouble > > &faceCoeffs, Array< OneD, NekDouble > &outarray) |
void | AddNormTraceInt (const int dir, Array< OneD, const NekDouble > &inarray, Array< OneD, ExpansionSharedPtr > &FaceExp, Array< OneD, NekDouble > &outarray, const StdRegions::VarCoeffMap &varcoeffs) |
void | AddFaceBoundaryInt (const int face, ExpansionSharedPtr &FaceExp, Array< OneD, NekDouble > &facePhys, Array< OneD, NekDouble > &outarray, const StdRegions::VarCoeffMap &varcoeffs=StdRegions::NullVarCoeffMap) |
SpatialDomains::Geometry3DSharedPtr | GetGeom3D () const |
void | v_ReOrientTracePhysMap (const StdRegions::Orientation orient, Array< OneD, int > &idmap, const int nq0, const int nq1) override |
void | v_NormVectorIProductWRTBase (const Array< OneD, const Array< OneD, NekDouble > > &Fvec, Array< OneD, NekDouble > &outarray) override |
Array< OneD, unsigned int > | GetEdgeInverseBoundaryMap (int eid) |
Array< OneD, unsigned int > | GetTraceInverseBoundaryMap (int fid, StdRegions::Orientation faceOrient=StdRegions::eNoOrientation, int P1=-1, int P2=-1) |
void | GetInverseBoundaryMaps (Array< OneD, unsigned int > &vmap, Array< OneD, Array< OneD, unsigned int > > &emap, Array< OneD, Array< OneD, unsigned int > > &fmap) |
DNekScalMatSharedPtr | CreateMatrix (const MatrixKey &mkey) |
Public Member Functions inherited from Nektar::LocalRegions::Expansion | |
Expansion (SpatialDomains::GeometrySharedPtr pGeom) | |
Expansion (const Expansion &pSrc) | |
~Expansion () override | |
void | SetTraceExp (const int traceid, ExpansionSharedPtr &f) |
ExpansionSharedPtr | GetTraceExp (const int traceid) |
DNekScalMatSharedPtr | GetLocMatrix (const LocalRegions::MatrixKey &mkey) |
void | DropLocMatrix (const LocalRegions::MatrixKey &mkey) |
DNekScalMatSharedPtr | GetLocMatrix (const StdRegions::MatrixType mtype, const StdRegions::ConstFactorMap &factors=StdRegions::NullConstFactorMap, const StdRegions::VarCoeffMap &varcoeffs=StdRegions::NullVarCoeffMap) |
SpatialDomains::GeometrySharedPtr | GetGeom () const |
void | Reset () |
IndexMapValuesSharedPtr | CreateIndexMap (const IndexMapKey &ikey) |
DNekScalBlkMatSharedPtr | CreateStaticCondMatrix (const MatrixKey &mkey) |
const SpatialDomains::GeomFactorsSharedPtr & | GetMetricInfo () const |
DNekMatSharedPtr | BuildTransformationMatrix (const DNekScalMatSharedPtr &r_bnd, const StdRegions::MatrixType matrixType) |
DNekMatSharedPtr | BuildVertexMatrix (const DNekScalMatSharedPtr &r_bnd) |
void | ExtractDataToCoeffs (const NekDouble *data, const std::vector< unsigned int > &nummodes, const int nmodes_offset, NekDouble *coeffs, std::vector< LibUtilities::BasisType > &fromType) |
void | AddEdgeNormBoundaryInt (const int edge, const std::shared_ptr< Expansion > &EdgeExp, const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
void | AddEdgeNormBoundaryInt (const int edge, const std::shared_ptr< Expansion > &EdgeExp, const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
void | AddFaceNormBoundaryInt (const int face, const std::shared_ptr< Expansion > &FaceExp, const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
void | DGDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, Array< OneD, NekDouble > > &coeffs, Array< OneD, NekDouble > &outarray) |
NekDouble | VectorFlux (const Array< OneD, Array< OneD, NekDouble > > &vec) |
void | NormalTraceDerivFactors (Array< OneD, Array< OneD, NekDouble > > &factors, Array< OneD, Array< OneD, NekDouble > > &d0factors, Array< OneD, Array< OneD, NekDouble > > &d1factors) |
IndexMapValuesSharedPtr | GetIndexMap (const IndexMapKey &ikey) |
void | AlignVectorToCollapsedDir (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) |
ExpansionSharedPtr | GetLeftAdjacentElementExp () const |
ExpansionSharedPtr | GetRightAdjacentElementExp () const |
int | GetLeftAdjacentElementTrace () const |
int | GetRightAdjacentElementTrace () const |
void | SetAdjacentElementExp (int traceid, ExpansionSharedPtr &e) |
StdRegions::Orientation | GetTraceOrient (int trace) |
void | SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | DivideByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
Divided by the metric jacobi and quadrature weights. More... | |
void | GetTraceQFactors (const int trace, 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 | GetTracePhysVals (const int trace, const StdRegions::StdExpansionSharedPtr &TraceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient=StdRegions::eNoOrientation) |
void | GetTracePhysMap (const int edge, Array< OneD, int > &outarray) |
void | ReOrientTracePhysMap (const StdRegions::Orientation orient, Array< OneD, int > &idmap, const int nq0, const int nq1) |
const NormalVector & | GetTraceNormal (const int id) |
void | ComputeTraceNormal (const int id) |
const Array< OneD, const NekDouble > & | GetPhysNormals (void) |
void | SetPhysNormals (Array< OneD, const NekDouble > &normal) |
void | SetUpPhysNormals (const int trace) |
void | AddRobinMassMatrix (const int traceid, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat) |
void | TraceNormLen (const int traceid, NekDouble &h, NekDouble &p) |
void | AddRobinTraceContribution (const int traceid, const Array< OneD, const NekDouble > &primCoeffs, const Array< OneD, NekDouble > &incoeffs, Array< OneD, NekDouble > &coeffs) |
const Array< OneD, const NekDouble > & | GetElmtBndNormDirElmtLen (const int nbnd) const |
void | StdDerivBaseOnTraceMat (Array< OneD, DNekMatSharedPtr > &DerivMat) |
Protected Member Functions | |
NekDouble | v_Integral (const Array< OneD, const NekDouble > &inarray) override |
Integrate the physical point list inarray over region. More... | |
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 |
Calculate the derivative of the physical points. More... | |
void | v_PhysDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
Calculate the derivative of the physical points in a single direction. More... | |
void | v_PhysDirectionalDeriv (const Array< OneD, const NekDouble > &inarray, const Array< OneD, const NekDouble > &direction, Array< OneD, NekDouble > &out) override |
Physical derivative along a direction vector. More... | |
void | v_FwdTrans (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
Forward transform from physical quadrature space stored in inarray and evaluate the expansion coefficients and store in (this)->_coeffs. More... | |
void | v_IProductWRTBase (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
Calculate the inner product of inarray with respect to the elements basis. More... | |
void | v_IProductWRTBase_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool multiplybyweights=true) override |
Calculate the inner product of inarray with respect to the given basis B = base0 * base1 * base2. More... | |
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 |
Calculates the inner product \( I_{pqr} = (u,
\partial_{x_i} \phi_{pqr}) \). More... | |
void | v_AlignVectorToCollapsedDir (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) override |
void | v_IProductWRTDirectionalDerivBase (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_IProductWRTDirectionalDerivBase_SumFac (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
NekDouble | v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals) 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_PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) override |
void | v_GetCoord (const Array< OneD, const NekDouble > &Lcoords, Array< OneD, NekDouble > &coords) override |
Retrieves the physical coordinates of a given set of reference coordinates. More... | |
void | v_GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2, Array< OneD, NekDouble > &coords_3) override |
LibUtilities::ShapeType | v_DetShapeType () const override |
Return the region shape using the enum-list of ShapeType. More... | |
StdRegions::StdExpansionSharedPtr | v_GetStdExp (void) const override |
StdRegions::StdExpansionSharedPtr | v_GetLinStdExp (void) const override |
void | v_ExtractDataToCoeffs (const NekDouble *data, const std::vector< unsigned int > &nummodes, const int mode_offset, NekDouble *coeffs, std::vector< LibUtilities::BasisType > &fromType) override |
void | v_GetTracePhysMap (const int face, Array< OneD, int > &outarray) override |
void | v_ComputeTraceNormal (const int face) override |
void | v_MassMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_LaplacianMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_LaplacianMatrixOp (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_WeakDerivMatrixOp (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_WeakDirectionalDerivMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_MassLevelCurvatureMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_HelmholtzMatrixOp (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdRegions::StdMatrixKey &mkey) override |
void | v_ReduceOrderCoeffs (int numMin, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
void | v_SVVLaplacianFilter (Array< OneD, NekDouble > &array, const StdRegions::StdMatrixKey &mkey) override |
DNekMatSharedPtr | v_GenMatrix (const StdRegions::StdMatrixKey &mkey) override |
DNekMatSharedPtr | v_CreateStdMatrix (const StdRegions::StdMatrixKey &mkey) override |
DNekScalMatSharedPtr | v_GetLocMatrix (const MatrixKey &mkey) override |
void | v_DropLocMatrix (const MatrixKey &mkey) override |
DNekScalBlkMatSharedPtr | v_GetLocStaticCondMatrix (const MatrixKey &mkey) override |
void | v_DropLocStaticCondMatrix (const MatrixKey &mkey) override |
void | v_ComputeLaplacianMetric () override |
Protected Member Functions inherited from Nektar::StdRegions::StdHexExp | |
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_PhysEvaluate (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) 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 |
Protected Member Functions inherited from Nektar::StdRegions::StdExpansion3D | |
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_PhysEvaluate (const Array< OneD, DNekMatSharedPtr > &I, const Array< OneD, const NekDouble > &physvals) override |
NekDouble | v_PhysEvaluate (const Array< OneD, NekDouble > &coord, const Array< OneD, const NekDouble > &inarray, std::array< NekDouble, 3 > &firstOrderDerivs) 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 |
Protected Member Functions inherited from Nektar::StdRegions::StdExpansion | |
DNekMatSharedPtr | CreateStdMatrix (const StdMatrixKey &mkey) |
DNekBlkMatSharedPtr | CreateStdStaticCondMatrix (const StdMatrixKey &mkey) |
Create the static condensation of a matrix when using a boundary interior decomposition. More... | |
void | BwdTrans_SumFac (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDerivBase_SumFac (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | IProductWRTDirectionalDerivBase_SumFac (const Array< OneD, const NekDouble > &direction, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
void | GeneralMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp) |
void | LaplacianMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LaplacianMatrixOp_MatFree (const int k1, const int k2, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDerivMatrixOp_MatFree (const int i, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | WeakDirectionalDerivMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | MassLevelCurvatureMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | LinearAdvectionDiffusionReactionMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey, bool addDiffusionTerm=true) |
void | HelmholtzMatrixOp_MatFree (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
void | HelmholtzMatrixOp_MatFree_GenericImpl (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const StdMatrixKey &mkey) |
virtual void | v_SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_SetCoeffsToOrientation (Array< OneD, NekDouble > &coeffs, StdRegions::Orientation dir) |
virtual NekDouble | v_StdPhysEvaluate (const Array< OneD, const NekDouble > &Lcoord, const Array< OneD, const NekDouble > &physvals) |
virtual void | v_GenStdMatBwdDeriv (const int dir, DNekMatSharedPtr &mat) |
virtual void | v_MultiplyByStdQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv, NekDouble &deriv2) |
This function performs the barycentric interpolation of the polynomial stored in coord at a point physvals using barycentric interpolation weights in direction. More... | |
template<int DIR> | |
NekDouble | BaryEvaluateBasis (const NekDouble &coord, const int &mode) |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals) |
Helper function to pass an unused value by reference into BaryEvaluate. More... | |
template<int DIR, bool DERIV = false, bool DERIV2 = false> | |
NekDouble | BaryEvaluate (const NekDouble &coord, const NekDouble *physvals, NekDouble &deriv) |
Protected Member Functions inherited from Nektar::LocalRegions::Expansion3D | |
void | v_DGDeriv (const int dir, const Array< OneD, const NekDouble > &incoeffs, Array< OneD, ExpansionSharedPtr > &FaceExp, Array< OneD, Array< OneD, NekDouble > > &faceCoeffs, Array< OneD, NekDouble > &out_d) override |
Evaluate coefficients of weak deriviative in the direction dir given the input coefficicents incoeffs and the imposed boundary values in EdgeExp (which will have its phys space updated). More... | |
DNekMatSharedPtr | v_GenMatrix (const StdRegions::StdMatrixKey &mkey) override |
void | v_AddFaceNormBoundaryInt (const int face, const ExpansionSharedPtr &FaceExp, const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) override |
void | v_AddRobinMassMatrix (const int face, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat) override |
StdRegions::Orientation | v_GetTraceOrient (int face) override |
void | v_GetTracePhysVals (const int face, const StdRegions::StdExpansionSharedPtr &FaceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient) override |
Extract the physical values along face face from inarray into outarray following the local face orientation and point distribution defined by defined in FaceExp. More... | |
void | v_GenTraceExp (const int traceid, ExpansionSharedPtr &exp) override |
void | GetPhysFaceVarCoeffsFromElement (const int face, ExpansionSharedPtr &FaceExp, const Array< OneD, const NekDouble > &varcoeff, Array< OneD, NekDouble > &outarray) |
DNekMatSharedPtr | v_BuildTransformationMatrix (const DNekScalMatSharedPtr &r_bnd, const StdRegions::MatrixType matrixType) override |
DNekMatSharedPtr | v_BuildInverseTransformationMatrix (const DNekScalMatSharedPtr &transformationmatrix) override |
Build inverse and inverse transposed transformation matrix: \(\mathbf{R^{-1}}\) and \(\mathbf{R^{-T}}\). More... | |
DNekMatSharedPtr | v_BuildVertexMatrix (const DNekScalMatSharedPtr &r_bnd) override |
void | v_TraceNormLen (const int traceid, NekDouble &h, NekDouble &p) override |
Protected Member Functions inherited from Nektar::LocalRegions::Expansion | |
void | ComputeLaplacianMetric () |
void | ComputeQuadratureMetric () |
void | ComputeGmatcdotMF (const Array< TwoD, const NekDouble > &df, const Array< OneD, const NekDouble > &direction, Array< OneD, Array< OneD, NekDouble > > &dfdir) |
Array< OneD, NekDouble > | GetMF (const int dir, const int shapedim, const StdRegions::VarCoeffMap &varcoeffs) |
Array< OneD, NekDouble > | GetMFDiv (const int dir, const StdRegions::VarCoeffMap &varcoeffs) |
Array< OneD, NekDouble > | GetMFMag (const int dir, const StdRegions::VarCoeffMap &varcoeffs) |
void | v_MultiplyByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
virtual void | v_DivideByQuadratureMetric (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) |
virtual void | v_ComputeLaplacianMetric () |
int | v_GetCoordim () const override |
void | v_GetCoords (Array< OneD, NekDouble > &coords_1, Array< OneD, NekDouble > &coords_2, Array< OneD, NekDouble > &coords_3) override |
virtual DNekScalMatSharedPtr | v_GetLocMatrix (const LocalRegions::MatrixKey &mkey) |
virtual void | v_DropLocMatrix (const LocalRegions::MatrixKey &mkey) |
virtual DNekMatSharedPtr | v_BuildTransformationMatrix (const DNekScalMatSharedPtr &r_bnd, const StdRegions::MatrixType matrixType) |
virtual DNekMatSharedPtr | v_BuildVertexMatrix (const DNekScalMatSharedPtr &r_bnd) |
virtual void | v_ExtractDataToCoeffs (const NekDouble *data, const std::vector< unsigned int > &nummodes, const int nmodes_offset, NekDouble *coeffs, std::vector< LibUtilities::BasisType > &fromType) |
virtual void | v_AddEdgeNormBoundaryInt (const int edge, const std::shared_ptr< Expansion > &EdgeExp, const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray) |
virtual void | v_AddEdgeNormBoundaryInt (const int edge, const std::shared_ptr< Expansion > &EdgeExp, const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
virtual void | v_AddFaceNormBoundaryInt (const int face, const std::shared_ptr< Expansion > &FaceExp, const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray) |
virtual void | v_DGDeriv (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, Array< OneD, NekDouble > > &coeffs, Array< OneD, NekDouble > &outarray) |
virtual NekDouble | v_VectorFlux (const Array< OneD, Array< OneD, NekDouble > > &vec) |
virtual void | v_NormalTraceDerivFactors (Array< OneD, Array< OneD, NekDouble > > &factors, Array< OneD, Array< OneD, NekDouble > > &d0factors, Array< OneD, Array< OneD, NekDouble > > &d1factors) |
virtual void | v_AlignVectorToCollapsedDir (const int dir, const Array< OneD, const NekDouble > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray) |
virtual StdRegions::Orientation | v_GetTraceOrient (int trace) |
void | v_SetCoeffsToOrientation (StdRegions::Orientation dir, Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray) override |
virtual void | v_GetTraceQFactors (const int trace, Array< OneD, NekDouble > &outarray) |
virtual void | v_GetTracePhysVals (const int trace, const StdRegions::StdExpansionSharedPtr &TraceExp, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, StdRegions::Orientation orient) |
virtual void | v_GetTracePhysMap (const int edge, Array< OneD, int > &outarray) |
virtual void | v_ReOrientTracePhysMap (const StdRegions::Orientation orient, Array< OneD, int > &idmap, const int nq0, const int nq1=-1) |
virtual void | v_ComputeTraceNormal (const int id) |
virtual const Array< OneD, const NekDouble > & | v_GetPhysNormals () |
virtual void | v_SetPhysNormals (Array< OneD, const NekDouble > &normal) |
virtual void | v_SetUpPhysNormals (const int id) |
virtual void | v_AddRobinMassMatrix (const int face, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat) |
virtual void | v_AddRobinTraceContribution (const int traceid, const Array< OneD, const NekDouble > &primCoeffs, const Array< OneD, NekDouble > &incoeffs, Array< OneD, NekDouble > &coeffs) |
virtual void | v_TraceNormLen (const int traceid, NekDouble &h, NekDouble &p) |
virtual void | v_GenTraceExp (const int traceid, ExpansionSharedPtr &exp) |
Private Member Functions | |
void | v_LaplacianMatrixOp_MatFree_Kernel (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, Array< OneD, NekDouble > &wsp) override |
void | v_NormalTraceDerivFactors (Array< OneD, Array< OneD, NekDouble > > &factors, Array< OneD, Array< OneD, NekDouble > > &d0factors, Array< OneD, Array< OneD, NekDouble > > &d1factors) override |
: This method gets all of the factors which are required as part of the Gradient Jump Penalty stabilisation and involves the product of the normal and geometric factors along the element trace. More... | |
Nektar::LocalRegions::HexExp::HexExp | ( | const LibUtilities::BasisKey & | Ba, |
const LibUtilities::BasisKey & | Bb, | ||
const LibUtilities::BasisKey & | Bc, | ||
const SpatialDomains::HexGeomSharedPtr & | geom | ||
) |
Constructor using BasisKey class for quadrature points and order definition.
Ba | Basis key for first coordinate. |
Bb | Basis key for second coordinate. |
Bc | Basis key for third coordinate. |
Definition at line 57 of file HexExp.cpp.
Nektar::LocalRegions::HexExp::HexExp | ( | const HexExp & | T | ) |
Copy Constructor.
T | HexExp to copy. |
Definition at line 80 of file HexExp.cpp.
|
overridedefault |
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 472 of file HexExp.cpp.
References ASSERTL1, Nektar::SpatialDomains::eDeformed, Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metricinfo, Vmath::Smul(), Vmath::Vcopy(), and Vmath::Vmul().
Referenced by v_IProductWRTDerivBase_SumFac().
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 1426 of file HexExp.cpp.
References Nektar::LocalRegions::Expansion::ComputeQuadratureMetric(), Nektar::SpatialDomains::eDeformed, Nektar::LocalRegions::eMetricLaplacian00, Nektar::LocalRegions::eMetricLaplacian01, Nektar::LocalRegions::eMetricLaplacian02, Nektar::LocalRegions::eMetricLaplacian11, Nektar::LocalRegions::eMetricLaplacian12, Nektar::LocalRegions::eMetricLaplacian22, Nektar::LocalRegions::eMetricQuadrature, Vmath::Fill(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::LocalRegions::Expansion::m_metricinfo, Nektar::LocalRegions::Expansion::m_metrics, Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric(), and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 880 of file HexExp.cpp.
References ASSERTL0, Nektar::SpatialDomains::eMovingRegular, Nektar::SpatialDomains::eRegular, Vmath::Fill(), Nektar::StdRegions::StdExpansion::GetCoordim(), Nektar::LocalRegions::Expansion::GetGeom(), Nektar::LibUtilities::BasisKey::GetNumPoints(), Nektar::StdRegions::StdExpansion::GetNumPoints(), Nektar::LibUtilities::BasisKey::GetPointsKey(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::GetPointsType(), Nektar::StdRegions::StdExpansion::GetTraceBasisKey(), Nektar::LibUtilities::Interp2D(), Nektar::LocalRegions::Expansion::m_elmtBndNormDirElmtLen, Nektar::LocalRegions::Expansion::m_traceNormals, Vmath::Sdiv(), tinysimd::sqrt(), Vmath::Vcopy(), Vmath::Vmul(), Vmath::Vsqrt(), Vmath::Vvtvp(), and Vmath::Zero().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1321 of file HexExp.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Return the region shape using the enum-list of ShapeType.
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 657 of file HexExp.cpp.
References Nektar::LibUtilities::eHexahedron.
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 1338 of file HexExp.cpp.
References m_matrixManager.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1348 of file HexExp.cpp.
References m_staticCondMatrixManager.
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 662 of file HexExp.cpp.
References ASSERTL0, ASSERTL1, Nektar::StdRegions::StdExpansion::BwdTrans(), Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eGLL_Lagrange, Nektar::LibUtilities::eModified_A, Nektar::StdRegions::StdExpansion::FwdTrans(), Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::StdRegions::StdExpansion::GetNcoeffs(), Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::LibUtilities::Interp3D(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, Vmath::Vcopy(), and Vmath::Zero().
|
overrideprotectedvirtual |
Forward transform from physical quadrature space stored in inarray and evaluate the expansion coefficients and store in (this)->_coeffs.
inarray | Input array |
outarray | Output array |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 297 of file HexExp.cpp.
References Nektar::StdRegions::StdExpansion::DetShapeType(), Nektar::StdRegions::eInvMass, Nektar::eWrapper, Nektar::StdRegions::StdExpansion::GetNcoeffs(), Nektar::StdRegions::StdExpansion::IProductWRTBase(), Nektar::StdRegions::StdExpansion::m_base, m_matrixManager, Nektar::StdRegions::StdExpansion::m_ncoeffs, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1299 of file HexExp.cpp.
References Nektar::StdRegions::eHybridDGHelmBndLam, Nektar::StdRegions::eHybridDGHelmholtz, Nektar::StdRegions::eHybridDGLamToQ0, Nektar::StdRegions::eHybridDGLamToQ1, Nektar::StdRegions::eHybridDGLamToQ2, Nektar::StdRegions::eHybridDGLamToU, Nektar::StdRegions::eInvLaplacianWithUnityMean, Nektar::StdRegions::StdMatrixKey::GetMatrixType(), and Nektar::LocalRegions::Expansion3D::v_GenMatrix().
|
overrideprotectedvirtual |
Retrieves the physical coordinates of a given set of reference coordinates.
Lcoords | Local coordinates in reference space. |
coords | Corresponding coordinates in physical space. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 628 of file HexExp.cpp.
References ASSERTL1, and Nektar::LocalRegions::Expansion::m_geom.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 645 of file HexExp.cpp.
References Nektar::LocalRegions::Expansion::v_GetCoords().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 608 of file HexExp.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::StdRegions::StdExpansion::GetBasisType(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 1333 of file HexExp.cpp.
References m_matrixManager.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1343 of file HexExp.cpp.
References m_staticCondMatrixManager.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 601 of file HexExp.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 765 of file HexExp.cpp.
References ASSERTL0, and Nektar::StdRegions::StdExpansion::m_base.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1193 of file HexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree().
|
overrideprotectedvirtual |
Integrate the physical point list inarray over region.
inarray | definition of function to be returned at quadrature points of expansion. |
Reimplemented from Nektar::StdRegions::StdExpansion3D.
Definition at line 101 of file HexExp.cpp.
References Nektar::SpatialDomains::eDeformed, Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metricinfo, Vmath::Smul(), and Vmath::Vmul().
|
overrideprotectedvirtual |
Calculate the inner product of inarray with respect to the elements basis.
inarray | Input array of physical space data. |
outarray | Output array of data. |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 332 of file HexExp.cpp.
References v_IProductWRTBase_SumFac().
|
overrideprotectedvirtual |
Calculate the inner product of inarray with respect to the given basis B = base0 * base1 * base2.
\( \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} \)
base0 | Basis to integrate wrt in first dimension. |
base1 | Basis to integrate wrt in second dimension. |
base2 | Basis to integrate wrt in third dimension. |
inarray | Input array. |
outarray | Output array. |
coll_check | (not used) |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 370 of file HexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, and Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric().
Referenced by v_IProductWRTBase().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 400 of file HexExp.cpp.
References v_IProductWRTDerivBase_SumFac().
|
overrideprotectedvirtual |
Calculates the inner product \( I_{pqr} = (u, \partial_{x_i} \phi_{pqr}) \).
The derivative of the basis functions is performed using the chain rule in order to incorporate the geometric factors. Assuming that the basis functions are a tensor product \(\phi_{pqr}(\xi_1,\xi_2,\xi_3) = \phi_1(\xi_1)\phi_2(\xi_2)\phi_3(\xi_3)\), in the hexahedral element, this is straightforward and yields the result
\[ I_{pqr} = \sum_{k=1}^3 \left(u, \frac{\partial u}{\partial \xi_k} \frac{\partial \xi_k}{\partial x_i}\right) \]
dir | Direction in which to take the derivative. |
inarray | The function \( u \). |
outarray | Value of the inner product. |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 427 of file HexExp.cpp.
References ASSERTL1, Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, Nektar::StdRegions::StdExpansion::m_ncoeffs, Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric(), v_AlignVectorToCollapsedDir(), and Vmath::Vadd().
Referenced by v_IProductWRTDerivBase().
|
inlineoverrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 115 of file HexExp.h.
References Nektar::StdRegions::StdExpansion::IProductWRTDirectionalDerivBase_SumFac().
|
overrideprotectedvirtual |
dir | Vector direction in which to take the derivative. |
inarray | The function \( u \). |
outarray | Value of the inner product. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 514 of file HexExp.cpp.
References Nektar::LocalRegions::Expansion::ComputeGmatcdotMF(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metricinfo, Nektar::StdRegions::StdExpansion::m_ncoeffs, Nektar::StdRegions::StdExpansion::MultiplyByQuadratureMetric(), Vmath::Vadd(), and Vmath::Vmul().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1156 of file HexExp.cpp.
References Nektar::StdRegions::StdExpansion3D::v_LaplacianMatrixOp_MatFree().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1163 of file HexExp.cpp.
|
overrideprivatevirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1353 of file HexExp.cpp.
References ASSERTL1, Nektar::LocalRegions::Expansion::ComputeLaplacianMetric(), Nektar::LocalRegions::eMetricLaplacian00, Nektar::LocalRegions::eMetricLaplacian01, Nektar::LocalRegions::eMetricLaplacian02, Nektar::LocalRegions::eMetricLaplacian11, Nektar::LocalRegions::eMetricLaplacian12, Nektar::LocalRegions::eMetricLaplacian22, Nektar::StdRegions::StdExpansion3D::IProductWRTBase_SumFacKernel(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metrics, Nektar::StdRegions::StdExpansion::m_ncoeffs, Vmath::Vadd(), Vmath::Vvtvp(), and Vmath::Vvtvvtp().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1186 of file HexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1149 of file HexExp.cpp.
|
overrideprivatevirtual |
: This method gets all of the factors which are required as part of the Gradient Jump Penalty stabilisation and involves the product of the normal and geometric factors along the element trace.
Reimplemented from Nektar::LocalRegions::Expansion.
Definition at line 1468 of file HexExp.cpp.
References Nektar::SpatialDomains::eDeformed, Nektar::StdRegions::StdExpansion::GetNumPoints(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::LocalRegions::Expansion::GetTraceNormal(), and Nektar::LocalRegions::Expansion::m_metricinfo.
|
overrideprotectedvirtual |
Calculate the derivative of the physical points.
For Hexahedral region can use the Tensor_Deriv function defined under StdExpansion.
inarray | Input array |
out_d0 | Derivative of inarray in first direction. |
out_d1 | Derivative of inarray in second direction. |
out_d2 | Derivative of inarray in third direction. |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 142 of file HexExp.cpp.
References Blas::Daxpy(), Nektar::SpatialDomains::eDeformed, Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metricinfo, Vmath::Smul(), Vmath::Vmul(), and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Calculate the derivative of the physical points in a single direction.
dir | Direction in which to compute derivative. Valid values are 0, 1, 2. |
inarray | Input array. |
outarray | Output array. |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 223 of file HexExp.cpp.
References ASSERTL1, Nektar::NullNekDouble1DArray, and Nektar::StdRegions::StdExpansion::PhysDeriv().
|
overrideprotectedvirtual |
Physical derivative along a direction vector.
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 255 of file HexExp.cpp.
References Nektar::LocalRegions::Expansion::ComputeGmatcdotMF(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::m_base, Nektar::LocalRegions::Expansion::m_metricinfo, Vmath::Vmul(), and Vmath::Vvtvp().
|
overrideprotectedvirtual |
This function evaluates the expansion at a single (arbitrary) point of the domain.
Based on the value of the expansion at the quadrature points, 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\]
This function requires that the physical value array \(\mathbf{u}\) (implemented as the attribute #phys) is set.
coords | the coordinates of the single point |
Reimplemented from Nektar::StdRegions::StdExpansion3D.
Definition at line 581 of file HexExp.cpp.
References ASSERTL0, and Nektar::LocalRegions::Expansion::m_geom.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 591 of file HexExp.cpp.
References ASSERTL0, and Nektar::LocalRegions::Expansion::m_geom.
|
overrideprotectedvirtual |
This function is used to compute exactly the advective numerical flux on the interface of two elements with different expansions, hence an appropriate number of Gauss points has to be used. The number of Gauss points has to be equal to the number used by the highest polynomial degree of the two adjacent elements
numMin | Is the reduced polynomial order |
inarray | Input array of coefficients |
dumpVar | Output array of reduced coefficients. |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1211 of file HexExp.cpp.
References Nektar::LibUtilities::eGaussLobattoLegendre, Nektar::LibUtilities::eOrtho_A, Nektar::StdRegions::StdExpansion::GetBasisType(), Nektar::LibUtilities::InterpCoeff3D(), Nektar::StdRegions::StdExpansion::m_base, Vmath::Vcopy(), and Vmath::Zero().
|
overrideprotectedvirtual |
Given the local cartesian coordinate Lcoord evaluate the value of physvals at this point by calling through to the StdExpansion method
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 573 of file HexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1269 of file HexExp.cpp.
References Nektar::SpatialDomains::eDeformed, Vmath::Fill(), Nektar::StdRegions::StdExpansion::GetPointsKeys(), Nektar::StdRegions::StdExpansion::GetTotPoints(), Nektar::LocalRegions::Expansion::m_metricinfo, tinysimd::sqrt(), Vmath::Vdiv(), Vmath::Vmul(), and Vmath::Vsqrt().
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdHexExp.
Definition at line 1171 of file HexExp.cpp.
|
overrideprotectedvirtual |
Reimplemented from Nektar::StdRegions::StdExpansion.
Definition at line 1179 of file HexExp.cpp.
|
private |
Definition at line 244 of file HexExp.h.
Referenced by v_DropLocMatrix(), v_FwdTrans(), and v_GetLocMatrix().
|
private |
Definition at line 246 of file HexExp.h.
Referenced by v_DropLocStaticCondMatrix(), and v_GetLocStaticCondMatrix().