36#ifndef NEKTAR_SPATIALDOMAINS_BOUNDARYCONDITIONS_H
37#define NEKTAR_SPATIALDOMAINS_BOUNDARYCONDITIONS_H
50namespace SpatialDomains
65 const std::string &userDefined = std::string(
"NoUserDefined"),
122 const std::string &eqn,
123 const std::string &userDefined = std::string(
"NoUserDefined"),
124 const std::string &filename = std::string(
""),
129 pSession->GetInterpreter(), eqn)),
148 const std::string &eqn,
149 const std::string &userDefined = std::string(
"NoUserDefined"),
150 const std::string &filename = std::string(
""),
155 pSession->GetInterpreter(), eqn)),
173 const std::string &a,
const std::string &b,
174 const std::string &userDefined = std::string(
"NoUserDefined"),
175 const std::string &filename = std::string(
""),
180 pSession->GetInterpreter(), a)),
183 pSession->GetInterpreter(), b)),
203 const unsigned int n,
204 const std::string &userDefined = std::string(
"NoUserDefined"),
225 const std::string &eqn,
226 const std::string &userDefined = std::string(
"NoUserDefined"),
227 const std::string &filename = std::string(
""),
232 pSession->GetInterpreter(), eqn)),
321 void Read(TiXmlElement *conditions);
#define SPATIAL_DOMAINS_EXPORT
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
const std::map< int, std::string > & GetBoundaryLabels(void) const
std::map< int, LibUtilities::CommSharedPtr > m_boundaryCommunicators
BoundaryRegionCollection m_boundaryRegions
std::map< int, LibUtilities::CommSharedPtr > GetBoundaryCommunicators() const
void ReadBoundaryConditions(TiXmlElement *conditions)
void CreateBoundaryComms()
void Read(TiXmlElement *conditions)
Read segments (and general MeshGraph) given TiXmlDocument.
void AddBoundaryRegions(const int regionID, BoundaryRegionShPtr &bRegion)
BoundaryConditions(void)=default
LibUtilities::SessionReaderSharedPtr m_session
const std::string GetVariable(unsigned int indx)
BoundaryConditionCollection m_boundaryConditions
~BoundaryConditions(void)=default
const BoundaryRegionCollection & GetBoundaryRegions(void) const
std::map< int, std::string > m_boundaryLabels
MeshGraphSharedPtr m_meshGraph
The mesh graph to use for referencing geometry info.
void ReadBoundaryRegions(TiXmlElement *regions)
const BoundaryConditionCollection & GetBoundaryConditions(void) const
void AddBoundaryConditions(const int regionID, BoundaryConditionMapShPtr &bCond)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Equation > EquationSharedPtr
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
std::map< int, CompositeSharedPtr > BoundaryRegion
std::map< int, BoundaryRegionShPtr > BoundaryRegionCollection
std::shared_ptr< BoundaryRegion > BoundaryRegionShPtr
std::shared_ptr< BoundaryConditions > BoundaryConditionsSharedPtr
std::shared_ptr< BoundaryConditionBase > BoundaryConditionShPtr
std::map< std::string, BoundaryConditionShPtr > BoundaryConditionMap
std::shared_ptr< DirichletBoundaryCondition > DirichletBCShPtr
std::map< int, BoundaryConditionMapShPtr > BoundaryConditionCollection
std::shared_ptr< const BoundaryRegion > ConstBoundaryRegionShPtr
static const Array< OneD, BoundaryConditionShPtr > NullBoundaryConditionShPtrArray
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
std::shared_ptr< NeumannBoundaryCondition > NeumannBCShPtr
std::shared_ptr< BoundaryConditionMap > BoundaryConditionMapShPtr
std::shared_ptr< RobinBoundaryCondition > RobinBCShPtr
void SetUserDefined(std::string &type)
virtual const LibUtilities::EquationSharedPtr & GetEquation() const =0
void SetIsTimeDependent(bool value)
BoundaryConditionType GetBoundaryConditionType() const
void SetBoundaryConditionType(BoundaryConditionType boundaryType)
const std::string GetUserDefined() const
BoundaryConditionType m_boundaryConditionType
virtual ~BoundaryConditionBase()=default
std::string m_userDefined
bool IsTimeDependent(void)
LibUtilities::CommSharedPtr m_comm
BoundaryConditionBase(BoundaryConditionType type, const std::string &userDefined=std::string("NoUserDefined"), LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
LibUtilities::CommSharedPtr GetComm()
const LibUtilities::EquationSharedPtr & GetEquation() const override
DirichletBoundaryCondition(const LibUtilities::SessionReaderSharedPtr &pSession, const std::string &eqn, const std::string &userDefined=std::string("NoUserDefined"), const std::string &filename=std::string(""), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
LibUtilities::EquationSharedPtr m_dirichletCondition
const LibUtilities::EquationSharedPtr & GetEquation() const override
NeumannBoundaryCondition(const LibUtilities::SessionReaderSharedPtr &pSession, const std::string &eqn, const std::string &userDefined=std::string("NoUserDefined"), const std::string &filename=std::string(""), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
LibUtilities::EquationSharedPtr m_neumannCondition
NotDefinedBoundaryCondition(const LibUtilities::SessionReaderSharedPtr &pSession, const std::string &eqn, const std::string &userDefined=std::string("NoUserDefined"), const std::string &filename=std::string(""), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
LibUtilities::EquationSharedPtr m_notDefinedCondition
const LibUtilities::EquationSharedPtr & GetEquation() const override
unsigned int m_connectedBoundaryRegion
PeriodicBoundaryCondition(const unsigned int n, const std::string &userDefined=std::string("NoUserDefined"), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
const LibUtilities::EquationSharedPtr & GetEquation() const override
RobinBoundaryCondition(const LibUtilities::SessionReaderSharedPtr &pSession, const std::string &a, const std::string &b, const std::string &userDefined=std::string("NoUserDefined"), const std::string &filename=std::string(""), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
LibUtilities::EquationSharedPtr m_robinPrimitiveCoeff
LibUtilities::EquationSharedPtr m_robinFunction
const LibUtilities::EquationSharedPtr & GetEquation() const override