SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE > Class Template Reference

#include <SEFluidCompartment.h>

Inherits SECompartment, and VertexType.

Public Member Functions

virtual ~SEFluidCompartment ()
 
virtual void Clear ()
 
virtual std::string GetName () const
 
virtual const SEScalarGetScalar (const std::string &name)
 
virtual bool HasChildren () const
 
virtual bool HasNodeMapping () const
 
virtual SECompartmentNodes< FLUID_COMPARTMENT_NODE > & GetNodeMapping ()
 
virtual void MapNode (SEFluidCircuitNode &node)
 
virtual bool HasInFlow () const
 
virtual const SEScalarVolumePerTimeGetInFlow () const
 
virtual double GetInFlow (const VolumePerTimeUnit &unit) const
 
virtual bool HasOutFlow () const
 
virtual const SEScalarVolumePerTimeGetOutFlow () const
 
virtual double GetOutFlow (const VolumePerTimeUnit &unit) const
 
virtual bool HasPressure () const
 
virtual SEScalarPressureGetPressure ()
 
virtual double GetPressure (const PressureUnit &unit) const
 
virtual bool HasVolume () const
 
virtual SEScalarVolumeGetVolume ()
 
virtual double GetVolume (const VolumeUnit &unit) const
 
virtual bool HasSubstanceQuantities () const
 
virtual bool HasSubstanceQuantity (const SESubstance &substance) const
 
virtual SubstanceQuantityType * GetSubstanceQuantity (const SESubstance &substance) const
 
virtual const std::vector< SubstanceQuantityType * > & GetSubstanceQuantities () const
 
virtual void ZeroSubstanceQuantities ()
 
virtual void AddLink (LinkType &link)
 
virtual void RemoveLink (LinkType &link)
 
virtual void RemoveLinks ()
 
virtual const std::vector< LinkType * > & GetLinks ()
 
virtual bool HasChild (const std::string &name)
 
- Public Member Functions inherited from SECompartment
virtual ~SECompartment ()
 
virtual void StateChange ()=0
 
- Public Member Functions inherited from Loggable
 Loggable ()
 
 Loggable (Logger *log)
 
virtual ~Loggable ()
 
virtual LoggerGetLogger () const
 
virtual void Debug (std::string const &msg, std::string const &origin=empty) const
 
virtual void Debug (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Debug (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Info (std::string const &msg, std::string const &origin=empty) const
 
virtual void Info (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (const std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::string const &msg, std::string const &origin=empty) const
 
virtual void Warning (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Error (std::string const &msg, std::string const &origin=empty) const
 
virtual void Error (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Error (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::string const &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::ostream &msg, std::string const &origin=empty) const
 

Protected Member Functions

 SEFluidCompartment (const std::string &name, Logger *logger)
 
virtual void RemoveSubstanceQuantity (const SESubstance &substance)
 
virtual bool HasQuantity () const
 
virtual SEScalarVolumeGetQuantity ()
 
virtual double CalculateInFlow_mL_Per_s () const
 
virtual double CalculateOutFlow_mL_Per_s () const
 
virtual std::vector< TransportSubstanceType * > & GetTransportSubstances ()
 
- Protected Member Functions inherited from SECompartment
 SECompartment (const std::string &name, Logger *logger)
 

Protected Attributes

SEScalarVolumePerTimem_InFlow
 
SEScalarVolumePerTimem_OutFlow
 
SEScalarPressurem_Pressure
 
SEScalarVolumem_Volume
 
std::vector< SubstanceQuantityType * > m_SubstanceQuantities
 
std::vector< TransportSubstanceType * > m_TransportSubstances
 
std::vector< LinkType * > m_Links
 
std::vector< LinkType * > m_IncomingLinks
 
std::vector< LinkType * > m_OutgoingLinks
 
std::vector< SEFluidCompartment * > m_FluidChildren
 
SECompartmentNodes< FLUID_COMPARTMENT_NODE > m_Nodes
 
- Protected Attributes inherited from SECompartment
std::string m_Name
 
- Protected Attributes inherited from Loggable
Loggerm_Logger
 

Friends

class PBCompartment
 
template<typename CompartmentType , typename CompartmentLinkType >
class SECompartmentGraph
 

Additional Inherited Members

- Static Public Member Functions inherited from SECompartment
template<typename CompartmentType >
static void FindLeaves (CompartmentType &cmpt, std::vector< CompartmentType *> &leaves)
 
- Static Public Attributes inherited from Loggable
static const std::string empty
 

Constructor & Destructor Documentation

◆ SEFluidCompartment()

template<FLUID_COMPARTMENT_TEMPLATE >
SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::SEFluidCompartment ( const std::string &  name,
Logger logger 
)
protected

◆ ~SEFluidCompartment()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::~SEFluidCompartment ( )
virtual

Member Function Documentation

◆ AddLink()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::AddLink ( LinkType &  link)
virtual

◆ CalculateInFlow_mL_Per_s()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::CalculateInFlow_mL_Per_s ( ) const
protectedvirtual

◆ CalculateOutFlow_mL_Per_s()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::CalculateOutFlow_mL_Per_s ( ) const
protectedvirtual

◆ Clear()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::Clear ( )
virtual

Reimplemented from SECompartment.

Reimplemented in SELiquidCompartment.

◆ GetInFlow() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual const SEScalarVolumePerTime& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetInFlow ( ) const
virtual

◆ GetInFlow() [2/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetInFlow ( const VolumePerTimeUnit unit) const
virtual

◆ GetLinks()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual const std::vector<LinkType*>& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetLinks ( )
virtual

◆ GetName()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual std::string SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetName ( ) const
inlinevirtual

Reimplemented from SECompartment.

◆ GetNodeMapping()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SECompartmentNodes<FLUID_COMPARTMENT_NODE>& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetNodeMapping ( )
inlinevirtual

◆ GetOutFlow() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual const SEScalarVolumePerTime& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetOutFlow ( ) const
virtual

◆ GetOutFlow() [2/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetOutFlow ( const VolumePerTimeUnit unit) const
virtual

◆ GetPressure() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SEScalarPressure& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetPressure ( )
virtual

◆ GetPressure() [2/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetPressure ( const PressureUnit unit) const
virtual

◆ GetQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SEScalarVolume& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetQuantity ( )
inlineprotectedvirtual

◆ GetScalar()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual const SEScalar* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetScalar ( const std::string &  name)
virtual

Implements SECompartment.

Reimplemented in SELiquidCompartment.

◆ GetSubstanceQuantities()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual const std::vector<SubstanceQuantityType*>& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetSubstanceQuantities ( ) const
virtual

◆ GetSubstanceQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SubstanceQuantityType* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetSubstanceQuantity ( const SESubstance substance) const
virtual

◆ GetTransportSubstances()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual std::vector<TransportSubstanceType*>& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetTransportSubstances ( )
inlineprotectedvirtual

◆ GetVolume() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual SEScalarVolume& SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetVolume ( )
virtual

◆ GetVolume() [2/2]

template<FLUID_COMPARTMENT_TEMPLATE >
virtual double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetVolume ( const VolumeUnit unit) const
virtual

◆ HasChild()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasChild ( const std::string &  name)
virtual

◆ HasChildren()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasChildren ( ) const
inlinevirtual

Implements SECompartment.

◆ HasInFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasInFlow ( ) const
virtual

◆ HasNodeMapping()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasNodeMapping ( ) const
inlinevirtual

◆ HasOutFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasOutFlow ( ) const
virtual

◆ HasPressure()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasPressure ( ) const
virtual

◆ HasQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasQuantity ( ) const
inlineprotectedvirtual

◆ HasSubstanceQuantities()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasSubstanceQuantities ( ) const
virtual

◆ HasSubstanceQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasSubstanceQuantity ( const SESubstance substance) const
virtual

◆ HasVolume()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasVolume ( ) const
virtual

◆ MapNode()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::MapNode ( SEFluidCircuitNode node)
virtual

◆ RemoveLink()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::RemoveLink ( LinkType &  link)
virtual

◆ RemoveLinks()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::RemoveLinks ( )
virtual

◆ RemoveSubstanceQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::RemoveSubstanceQuantity ( const SESubstance substance)
protectedvirtual

◆ ZeroSubstanceQuantities()

template<FLUID_COMPARTMENT_TEMPLATE >
virtual void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::ZeroSubstanceQuantities ( )
virtual

Friends And Related Function Documentation

◆ PBCompartment

template<FLUID_COMPARTMENT_TEMPLATE >
friend class PBCompartment
friend

◆ SECompartmentGraph

template<FLUID_COMPARTMENT_TEMPLATE >
template<typename CompartmentType , typename CompartmentLinkType >
friend class SECompartmentGraph
friend

Member Data Documentation

◆ m_FluidChildren

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<SEFluidCompartment*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_FluidChildren
protected

◆ m_IncomingLinks

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<LinkType*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_IncomingLinks
protected

◆ m_InFlow

template<FLUID_COMPARTMENT_TEMPLATE >
SEScalarVolumePerTime* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_InFlow
mutableprotected

◆ m_Links

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<LinkType*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_Links
protected

◆ m_Nodes

template<FLUID_COMPARTMENT_TEMPLATE >
SECompartmentNodes<FLUID_COMPARTMENT_NODE> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_Nodes
protected

◆ m_OutFlow

template<FLUID_COMPARTMENT_TEMPLATE >
SEScalarVolumePerTime* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_OutFlow
mutableprotected

◆ m_OutgoingLinks

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<LinkType*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_OutgoingLinks
protected

◆ m_Pressure

template<FLUID_COMPARTMENT_TEMPLATE >
SEScalarPressure* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_Pressure
protected

◆ m_SubstanceQuantities

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<SubstanceQuantityType*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_SubstanceQuantities
protected

◆ m_TransportSubstances

template<FLUID_COMPARTMENT_TEMPLATE >
std::vector<TransportSubstanceType*> SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_TransportSubstances
protected

◆ m_Volume

template<FLUID_COMPARTMENT_TEMPLATE >
SEScalarVolume* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_Volume
protected