35 #ifndef NEKTAR_SPATIALDOMAINS_BOUNDARYCONDITIONS_H 36 #define NEKTAR_SPATIALDOMAINS_BOUNDARYCONDITIONS_H 49 namespace SpatialDomains
64 const std::string &userDefined = std::string(
"NoUserDefined"),
123 const std::string& eqn,
124 const std::string& userDefined = std::string(
"NoUserDefined"),
125 const std::string& filename=std::string(
""),
128 m_dirichletCondition(pSession->GetInterpreter(), eqn),
143 const std::string& eqn,
144 const std::string& userDefined = std::string(
"NoUserDefined"),
145 const std::string& filename=std::string(
""),
148 m_neumannCondition(pSession->GetInterpreter(), eqn),
161 const std::string &a,
162 const std::string &b,
163 const std::string &userDefined = std::string(
"NoUserDefined"),
164 const std::string& filename=std::string(
""),
167 m_robinFunction(pSession->GetInterpreter(), a),
168 m_robinPrimitiveCoeff(pSession->GetInterpreter(), b),
183 const unsigned int n,
184 const std::string &userDefined = std::string(
"NoUserDefined"),
187 m_connectedBoundaryRegion(n)
199 const std::string& eqn,
200 const std::string& userDefined = std::string(
"NoUserDefined"),
201 const std::string& filename=std::string(
""),
204 m_notDefinedCondition(pSession->GetInterpreter(), eqn),
240 return m_boundaryRegions;
245 m_boundaryRegions[regionID] = bRegion;
250 return m_boundaryConditions;
256 m_boundaryConditions[regionID] = bCond;
261 return m_session->GetVariable(indx);
266 return m_boundaryCommunicators;
281 void Read(TiXmlElement *conditions);
283 void ReadBoundaryRegions(TiXmlElement *regions);
284 void ReadBoundaryConditions(TiXmlElement *conditions);
285 void CreateBoundaryComms();
288 typedef std::shared_ptr<BoundaryConditions>
293 #endif //NEKTAR_SPATIALDOMAINS_BOUNDARYCONDITIONS_H
LibUtilities::CommSharedPtr GetComm()
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
BoundaryRegionCollection m_boundaryRegions
void SetIsTimeDependent(bool value)
void AddBoundaryRegions(const int regionID, BoundaryRegionShPtr &bRegion)
std::shared_ptr< BoundaryConditions > BoundaryConditionsSharedPtr
static const Array< OneD, BoundaryConditionShPtr > NullBoundaryConditionShPtrArray
const BoundaryConditionCollection & GetBoundaryConditions(void) const
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())
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
std::shared_ptr< NeumannBoundaryCondition > NeumannBCShPtr
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())
const std::string GetUserDefined() const
std::map< int, LibUtilities::CommSharedPtr > m_boundaryCommunicators
unsigned int m_connectedBoundaryRegion
PeriodicBoundaryCondition(const unsigned int n, const std::string &userDefined=std::string("NoUserDefined"), const LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
std::map< int, LibUtilities::CommSharedPtr > GetBoundaryCommunicators() const
std::shared_ptr< RobinBoundaryCondition > RobinBCShPtr
LibUtilities::CommSharedPtr m_comm
const std::string GetVariable(unsigned int indx)
BoundaryConditionType m_boundaryConditionType
std::shared_ptr< BoundaryConditionMap > BoundaryConditionMapShPtr
LibUtilities::Equation m_notDefinedCondition
std::map< int, CompositeSharedPtr > BoundaryRegion
std::shared_ptr< BoundaryRegion > BoundaryRegionShPtr
bool IsTimeDependent(void)
LibUtilities::Equation m_dirichletCondition
std::string m_userDefined
std::map< int, BoundaryRegionShPtr > BoundaryRegionCollection
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())
std::map< std::string, BoundaryConditionShPtr > BoundaryConditionMap
std::map< int, BoundaryConditionMapShPtr > BoundaryConditionCollection
void SetUserDefined(std::string &type)
BoundaryConditionBase(BoundaryConditionType type, const std::string &userDefined=std::string("NoUserDefined"), LibUtilities::CommSharedPtr comm=LibUtilities::CommSharedPtr())
std::shared_ptr< BoundaryConditionBase > BoundaryConditionShPtr
LibUtilities::Equation m_robinPrimitiveCoeff
virtual ~BoundaryConditionBase()
void SetBoundaryConditionType(BoundaryConditionType boundaryType)
LibUtilities::Equation m_neumannCondition
BoundaryConditionType GetBoundaryConditionType() const
LibUtilities::SessionReaderSharedPtr m_session
BoundaryConditionCollection m_boundaryConditions
std::shared_ptr< DirichletBoundaryCondition > DirichletBCShPtr
MeshGraphSharedPtr m_meshGraph
The mesh graph to use for referencing geometry info.
void AddBoundaryConditions(const int regionID, BoundaryConditionMapShPtr &bCond)
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())
std::shared_ptr< SessionReader > SessionReaderSharedPtr
const BoundaryRegionCollection & GetBoundaryRegions(void) const
#define SPATIAL_DOMAINS_EXPORT
std::shared_ptr< const BoundaryRegion > ConstBoundaryRegionShPtr
LibUtilities::Equation m_robinFunction