38 #include <boost/core/ignore_unused.hpp> 47 namespace LocalRegions
121 Expansion3DSharedPtr &f);
215 const int edge)
const;
226 boost::ignore_unused(SetUpNormal);
236 ASSERTL1(edge < nEdges,
"Edge out of range.");
248 "Left adjacent element not set.");
256 "Right adjacent element not set.");
273 Expansion3DSharedPtr &f)
278 "Both adjacent elements already set.");
293 return std::dynamic_pointer_cast<SpatialDomains::
int GetLeftAdjacentElementFace() const
virtual Array< OneD, NekDouble > v_GetMFMag(const int dir, const StdRegions::VarCoeffMap &varcoeffs)
Expansion3DSharedPtr GetLeftAdjacentElementExp() const
std::shared_ptr< Geometry2D > Geometry2DSharedPtr
Expansion3DWeakPtr m_elementRight
void SetAdjacentElementExp(int face, Expansion3DSharedPtr &f)
std::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
void GetPhysEdgeVarCoeffsFromElement(const int edge, ExpansionSharedPtr &EdgeExp, const Array< OneD, const NekDouble > &varcoeff, Array< OneD, NekDouble > &outarray)
void AddNormTraceInt(const int dir, Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, Array< OneD, NekDouble > > &edgeCoeffs, Array< OneD, NekDouble > &outarray)
Array< OneD, NekDouble > v_GetnEdgecdotMF(const int dir, const int edge, ExpansionSharedPtr &EdgeExp_e, const Array< OneD, const Array< OneD, NekDouble > > &normals, const StdRegions::VarCoeffMap &varcoeffs)
std::map< int, bool > m_negatedNormals
std::map< int, StdRegions::NormalVector > m_edgeNormals
Expansion3DSharedPtr GetRightAdjacentElementExp() const
void SetTraceToGeomOrientation(Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, NekDouble > &inout)
virtual void v_AddRobinEdgeContribution(const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, Array< OneD, NekDouble > &coeffs)
virtual DNekMatSharedPtr v_BuildVertexMatrix(const DNekScalMatSharedPtr &r_bnd)
std::shared_ptr< DNekMat > DNekMatSharedPtr
SpatialDomains::GeometrySharedPtr m_geom
virtual void v_AddRobinMassMatrix(const int edgeid, const Array< OneD, const NekDouble > &primCoeffs, DNekMatSharedPtr &inoutmat)
void AddEdgeBoundaryInt(const int edge, ExpansionSharedPtr &EdgeExp, Array< OneD, NekDouble > &edgePhys, Array< OneD, NekDouble > &outarray, const StdRegions::VarCoeffMap &varcoeffs=StdRegions::NullVarCoeffMap)
std::shared_ptr< Expansion3D > Expansion3DSharedPtr
virtual void v_NegateEdgeNormal(const int edge)
std::vector< Expansion2DSharedPtr > Expansion2DVector
std::vector< bool > m_requireNeg
virtual Array< OneD, NekDouble > v_GetMF(const int dir, const int shapedim, const StdRegions::VarCoeffMap &varcoeffs)
SpatialDomains::Geometry2DSharedPtr GetGeom2D() const
Expansion3DWeakPtr m_elementLeft
std::map< StdRegions::VarCoeffType, Array< OneD, NekDouble > > VarCoeffMap
virtual Array< OneD, NekDouble > v_GetMFDiv(const int dir, const StdRegions::VarCoeffMap &varcoeffs)
Expansion1DSharedPtr GetEdgeExp(int edge, bool SetUpNormal=true)
virtual void v_AddEdgeNormBoundaryInt(const int edge, const ExpansionSharedPtr &EdgeExp, const Array< OneD, const NekDouble > &Fx, const Array< OneD, const NekDouble > &Fy, Array< OneD, NekDouble > &outarray)
int GetNedges() const
This function returns the number of edges of the expansion domain.
void AddHDGHelmholtzEdgeTerms(const NekDouble tau, const int edge, Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, NekDouble > &edgePhys, const StdRegions::VarCoeffMap &dirForcing, Array< OneD, NekDouble > &outarray)
std::weak_ptr< Expansion3D > Expansion3DWeakPtr
Expansion2D(SpatialDomains::Geometry2DSharedPtr pGeom)
virtual DNekMatSharedPtr v_GenMatrix(const StdRegions::StdMatrixKey &mkey)
virtual bool v_EdgeNormalNegated(const int edge)
std::shared_ptr< Expansion > ExpansionSharedPtr
void AddHDGHelmholtzTraceTerms(const NekDouble tau, const Array< OneD, const NekDouble > &inarray, Array< OneD, ExpansionSharedPtr > &EdgeExp, const StdRegions::VarCoeffMap &dirForcing, Array< OneD, NekDouble > &outarray)
std::weak_ptr< Expansion2D > Expansion2DWeakPtr
void ReOrientQuadEdgePhysMap(const StdRegions::Orientation orient, const int nq0, Array< OneD, int > &idmap)
std::shared_ptr< Expansion2D > Expansion2DSharedPtr
virtual void v_DGDeriv(const int dir, const Array< OneD, const NekDouble > &incoeffs, Array< OneD, ExpansionSharedPtr > &EdgeExp, Array< OneD, Array< OneD, NekDouble > > &edgeCoeffs, Array< OneD, NekDouble > &out_d)
std::vector< Expansion1DWeakPtr > m_edgeExp
void SetEdgeExp(const int edge, Expansion1DSharedPtr &e)
const StdRegions::NormalVector & v_GetSurfaceNormal(const int id) const
const StdRegions::NormalVector & v_GetEdgeNormal(const int edge) const
virtual void v_SetUpPhysNormals(const int edge)
int GetRightAdjacentElementFace() const
#define LOCAL_REGIONS_EXPORT
virtual NekDouble v_VectorFlux(const Array< OneD, Array< OneD, NekDouble > > &vec)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
std::shared_ptr< Expansion1D > Expansion1DSharedPtr
Array< OneD, unsigned int > v_GetEdgeInverseBoundaryMap(int eid)
void ReOrientEdgePhysMap(const int nvert, const StdRegions::Orientation orient, const int nq0, Array< OneD, int > &idmap)
static VarCoeffMap NullVarCoeffMap