SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE > Class Template Reference

#include <SEFluidCompartment.h>

Inherits SECompartment, and VertexType.

Public Member Functions

virtual ~SEFluidCompartment ()
 
void Clear () override
 
std::string GetName () const override
 
const SEScalarGetScalar (const std::string &name) override
 
bool HasChildren () const override
 
virtual bool HasNodeMapping () const
 
virtual SECompartmentNodes< FLUID_COMPARTMENT_NODE > & GetNodeMapping ()
 
virtual void MapNode (SEFluidCircuitNode &node)
 
virtual void Sample (bool CycleStart)
 
virtual void SampleFlow ()
 
virtual bool HasInFlow () const
 
virtual const SEScalarVolumePerTimeGetInFlow () const
 
virtual double GetInFlow (const VolumePerTimeUnit &unit) const
 
virtual bool HasAverageInFlow () const
 
virtual const SEScalarVolumePerTimeGetAverageInFlow () const
 
virtual double GetAverageInFlow (const VolumePerTimeUnit &unit) const
 
virtual bool HasOutFlow () const
 
virtual const SEScalarVolumePerTimeGetOutFlow () const
 
virtual double GetOutFlow (const VolumePerTimeUnit &unit) const
 
virtual bool HasAverageOutFlow () const
 
virtual const SEScalarVolumePerTimeGetAverageOutFlow () const
 
virtual double GetAverageOutFlow (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 SEFluidCompartment &cmpt)
 
- Public Member Functions inherited from SECompartment
virtual ~SECompartment ()
 
virtual void Clear ()
 
virtual std::string GetName () const
 
virtual const SEScalarGetScalar (const std::string &name)=0
 
virtual bool HasChildren () const =0
 
virtual void StateChange ()=0
 
- Public Member Functions inherited from Loggable
 Loggable (Logger *logger=nullptr)
 
 Loggable (std::string const &logfile)
 
virtual ~Loggable ()
 
virtual LoggerGetLogger () const
 
virtual void SetLogger (Logger &logger)
 
virtual void Debug (std::string const &msg) const
 
virtual void Debug (std::stringstream &msg) const
 
virtual void Debug (std::ostream &msg) const
 
virtual void Info (std::string const &msg) const
 
virtual void Info (std::stringstream &msg) const
 
virtual void Info (const std::stringstream &msg) const
 
virtual void Info (std::ostream &msg) const
 
virtual void Warning (std::string const &msg) const
 
virtual void Warning (std::stringstream &msg) const
 
virtual void Warning (std::ostream &msg) const
 
virtual void Error (std::string const &msg) const
 
virtual void Error (std::stringstream &msg) const
 
virtual void Error (std::ostream &msg) const
 
virtual void Fatal (std::string const &msg) const
 
virtual void Fatal (std::stringstream &msg) const
 
virtual void Fatal (std::ostream &msg) const
 

Protected Member Functions

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

Protected Attributes

SEScalarVolumePerTimem_InFlow
 
SEScalarVolumePerTimem_OutFlow
 
bool m_SampleFlow
 
SEScalarVolumePerTimem_AverageInFlow
 
SEScalarVolumePerTimem_AverageOutFlow
 
SERunningAveragem_AverageInFlow_mL_Per_s
 
SERunningAveragem_AverageOutFlow_mL_Per_s
 
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
bool myLogger
 
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)
 

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 >
SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::~SEFluidCompartment
virtual

Member Function Documentation

◆ AddLink()

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

◆ CalculateInFlow_mL_Per_s()

template<FLUID_COMPARTMENT_TEMPLATE >
double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::CalculateInFlow_mL_Per_s
protectedvirtual

◆ CalculateOutFlow_mL_Per_s()

template<FLUID_COMPARTMENT_TEMPLATE >
double SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::CalculateOutFlow_mL_Per_s
protectedvirtual

◆ Clear()

template<FLUID_COMPARTMENT_TEMPLATE >
void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::Clear
overridevirtual

Reimplemented from SECompartment.

◆ GetAverageInFlow() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
const SEScalarVolumePerTime & SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetAverageInFlow
virtual

◆ GetAverageInFlow() [2/2]

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

◆ GetAverageOutFlow() [1/2]

template<FLUID_COMPARTMENT_TEMPLATE >
const SEScalarVolumePerTime & SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetAverageOutFlow
virtual

◆ GetAverageOutFlow() [2/2]

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

◆ GetInFlow() [1/2]

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

◆ GetInFlow() [2/2]

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

◆ GetLinks()

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

◆ GetName()

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

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 >
const SEScalarVolumePerTime & SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetOutFlow
virtual

◆ GetOutFlow() [2/2]

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

◆ GetPressure() [1/2]

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

◆ GetPressure() [2/2]

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

◆ GetQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
SEScalarVolume & SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::GetQuantity ( )
inlineoverrideprotected

◆ GetScalar()

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

Implements SECompartment.

◆ GetSubstanceQuantities()

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

◆ GetSubstanceQuantity()

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

◆ GetTransportSubstances()

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

◆ GetVolume() [1/2]

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

◆ GetVolume() [2/2]

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

◆ HasAverageInFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasAverageInFlow
virtual

◆ HasAverageOutFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasAverageOutFlow
virtual

◆ HasChild()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasChild ( const SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE > &  cmpt)
virtual

◆ HasChildren()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasChildren ( ) const
inlineoverridevirtual

Implements SECompartment.

◆ HasInFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasInFlow
virtual

◆ HasNodeMapping()

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

◆ HasOutFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasOutFlow
virtual

◆ HasPressure()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasPressure
virtual

◆ HasQuantity()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasQuantity ( ) const
inlineoverrideprotected

◆ HasSubstanceQuantities()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasSubstanceQuantities
virtual

◆ HasSubstanceQuantity()

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

◆ HasVolume()

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::HasVolume
virtual

◆ MapNode()

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

◆ RemoveLink()

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

◆ RemoveLinks()

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

◆ RemoveSubstanceQuantity()

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

◆ Sample()

template<FLUID_COMPARTMENT_TEMPLATE >
void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::Sample ( bool  CycleStart)
virtual

◆ SampleFlow()

template<FLUID_COMPARTMENT_TEMPLATE >
void SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::SampleFlow
virtual

◆ ZeroSubstanceQuantities()

template<FLUID_COMPARTMENT_TEMPLATE >
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_AverageInFlow

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

◆ m_AverageInFlow_mL_Per_s

template<FLUID_COMPARTMENT_TEMPLATE >
SERunningAverage* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_AverageInFlow_mL_Per_s
mutableprotected

◆ m_AverageOutFlow

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

◆ m_AverageOutFlow_mL_Per_s

template<FLUID_COMPARTMENT_TEMPLATE >
SERunningAverage* SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_AverageOutFlow_mL_Per_s
mutableprotected

◆ 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_SampleFlow

template<FLUID_COMPARTMENT_TEMPLATE >
bool SEFluidCompartment< FLUID_COMPARTMENT_TEMPLATE >::m_SampleFlow
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

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.