36 #ifndef NEKTAR_LIBS_MULTIREGIONS_DISCONTFIELD3D_H
37 #define NEKTAR_LIBS_MULTIREGIONS_DISCONTFIELD3D_H
49 namespace MultiRegions
62 const std::string &variable,
63 const bool SetUpJustDG =
true,
70 const std::string &variable,
71 const bool SetUpJustDG =
false);
155 void SetUpDG(
const std::string =
"DefaultVar");
160 const std::string &variable);
163 const std::string &variable);
195 const bool PhysSpaceForcing);
206 std::shared_ptr<ExpList> &result,
207 const bool DeclareCoeffPhysArrays);
266 const std::string varName =
"",
#define MULTI_REGIONS_EXPORT
GlobalLinSysMapShPtr m_globalBndMat
void EvaluateHDGPostProcessing(Array< OneD, NekDouble > &outarray)
Evaluate HDG post-processing to increase polynomial order of solution.
Array< OneD, int > m_BCtoElmMap
virtual void v_GetFwdBwdTracePhys(Array< OneD, NekDouble > &Fwd, Array< OneD, NekDouble > &Bwd)
This method extracts the "forward" and "backward" trace data from the array field and puts the data i...
void GenerateBoundaryConditionExpansion(const SpatialDomains::MeshGraphSharedPtr &graph3D, const SpatialDomains::BoundaryConditions &bcs, const std::string &variable)
std::set< int > m_boundaryFaces
A set storing the global IDs of any boundary faces.
void FindPeriodicFaces(const SpatialDomains::BoundaryConditions &bcs, const std::string &variable)
Determine the periodic faces, edges and vertices for the given graph.
std::vector< int > m_periodicFwdCopy
A vector indicating degress of freedom which need to be copied from forwards to backwards space in ca...
std::vector< int > m_periodicBwdCopy
GlobalLinSysSharedPtr GetGlobalBndLinSys(const GlobalLinSysKey &mkey)
PeriodicMap m_periodicFaces
A map which identifies pairs of periodic faces.
virtual void v_Reset()
Reset this field, so that geometry information can be updated.
virtual void v_AddTraceIntegral(const Array< OneD, const NekDouble > &Fn, Array< OneD, NekDouble > &outarray)
Add trace contributions into elemental coefficient spaces.
PeriodicMap m_periodicVerts
A map which identifies groups of periodic vertices.
virtual ~DisContField3D()
Destructor.
virtual void v_GetBoundaryToElmtMap(Array< OneD, int > &ElmtID, Array< OneD, int > &FaceID)
Set up a list of elemeent IDs and edge IDs that link to the boundary conditions.
LocTraceToTraceMapSharedPtr m_locTraceToTraceMap
Map of local trace (the points at the face of the element) to the trace space discretisation.
bool GetLeftAdjacentFaces(int cnt)
virtual void v_HelmSolve(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const FlagList &flags, const StdRegions::ConstFactorMap &factors, const StdRegions::VarCoeffMap &varcoeff, const MultiRegions::VarFactorsMap &varfactors, const Array< OneD, const NekDouble > &dirForcing, const bool PhysSpaceForcing)
virtual std::map< int, RobinBCInfoSharedPtr > v_GetRobinBCInfo()
Array< OneD, MultiRegions::ExpListSharedPtr > m_bndCondExpansions
An object which contains the discretised boundary conditions.
virtual const Array< OneD, const SpatialDomains::BoundaryConditionShPtr > & v_GetBndConditions()
virtual Array< OneD, SpatialDomains::BoundaryConditionShPtr > & v_UpdateBndConditions()
virtual const Array< OneD, const MultiRegions::ExpListSharedPtr > & v_GetBndCondExpansions()
virtual MultiRegions::ExpListSharedPtr & v_UpdateBndCondExpansion(int i)
DisContField3D()
Default constructor.
virtual void v_GeneralMatrixOp(const GlobalMatrixKey &gkey, const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal)
Calculates the result of the multiplication of a global matrix of type specified by mkey with a vecto...
bool SameTypeOfBoundaryConditions(const DisContField3D &In)
virtual ExpListSharedPtr & v_GetTrace()
virtual void v_EvaluateBoundaryConditions(const NekDouble time=0.0, const std::string varName="", const NekDouble x2_in=NekConstants::kNekUnsetDouble, const NekDouble x3_in=NekConstants::kNekUnsetDouble)
This function evaluates the boundary conditions at a certain time-level.
virtual void v_AddFwdBwdTraceIntegral(const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &outarray)
Add trace contributions into elemental coefficient spaces.
virtual AssemblyMapDGSharedPtr & v_GetTraceMap()
std::vector< bool > m_leftAdjacentFaces
virtual void v_GetPeriodicEntities(PeriodicMap &periodicVerts, PeriodicMap &periodicEdges, PeriodicMap &periodicFaces)
Array< OneD, SpatialDomains::BoundaryConditionShPtr > m_bndConditions
An array which contains the information about the boundary condition on the different boundary region...
virtual const std::vector< bool > & v_GetLeftAdjacentFaces(void) const
void SetUpDG(const std::string="DefaultVar")
Set up all DG member variables and maps.
bool IsLeftAdjacentFace(const int n, const int e)
virtual void v_ExtractTracePhys(Array< OneD, NekDouble > &outarray)
Array< OneD, int > m_BCtoFaceMap
AssemblyMapDGSharedPtr m_traceMap
virtual void v_GetBndElmtExpansion(int i, std::shared_ptr< ExpList > &result, const bool DeclareCoeffPhysArrays)
PeriodicMap m_periodicEdges
A map which identifies groups of periodic edges.
Abstraction of a three-dimensional multi-elemental expansion which is merely a collection of local ex...
Describe a linear system.
Describes a matrix with ordering defined by a local to global map.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< AssemblyMapDG > AssemblyMapDGSharedPtr
@ eLocal
Local coefficients.
static ExpListSharedPtr NullExpListSharedPtr
std::shared_ptr< GlobalLinSys > GlobalLinSysSharedPtr
Pointer to a GlobalLinSys object.
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
std::shared_ptr< DisContField3D > DisContField3DSharedPtr
std::shared_ptr< LocTraceToTraceMap > LocTraceToTraceMapSharedPtr
std::map< StdRegions::ConstFactorType, Array< OneD, NekDouble > > VarFactorsMap
std::map< int, std::vector< PeriodicEntity > > PeriodicMap
std::shared_ptr< GlobalLinSysMap > GlobalLinSysMapShPtr
Pointer to a GlobalLinSys/key map.
static const NekDouble kNekUnsetDouble
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
std::map< StdRegions::VarCoeffType, Array< OneD, NekDouble > > VarCoeffMap
std::map< ConstFactorType, NekDouble > ConstFactorMap