SESubstanceTransport.h
9#define SUBSTANCE_TRANSPORTER_TEMPLATE typename GraphType, typename FluxUnit, typename QuantityUnit, typename ExtensiveUnit, typename IntensiveUnit
28using SELiquidTransportSubstance = SESubstanceTransportAmount<SEScalarMass, SEScalarMassPerVolume>;
44 virtual std::vector<SESubstanceTransportAmount<TRANSPORT_AMOUNT_TYPES>*>& GetTransportSubstances() = 0;
46using SEGasTransportVertex = SESubstanceTransportVertex<SEScalarVolume, SEScalarVolume, SEScalar0To1>;
47using SELiquidTransportVertex = SESubstanceTransportVertex<SEScalarVolume, SEScalarMass, SEScalarMassPerVolume>;
50template <typename FluxScalar, typename QuantityScalar, typename ExtensiveScalar, typename IntensiveScalar>
66using SEGasTransportEdge = SESubstanceTransportEdge<SEScalarVolumePerTime, SEScalarVolume, SEScalarVolume, SEScalar0To1>;
67using SELiquidTransportEdge = SESubstanceTransportEdge<SEScalarVolumePerTime, SEScalarVolume, SEScalarMass, SEScalarMassPerVolume>;
69template <typename FluxScalar, typename QuantityScalar, typename ExtensiveScalar, typename IntensiveScalar>
78 virtual int GetVertexIndex(const SESubstanceTransportVertex<TRANSPORT_VERTEX_TYPES>& v) const = 0;
79 virtual const std::vector<SESubstanceTransportVertex<TRANSPORT_VERTEX_TYPES>*>& GetVerticies() const = 0;
80 virtual const std::vector<SESubstanceTransportEdge<TRANSPORT_EDGE_TYPES>*>* GetSourceEdges(const SESubstanceTransportVertex<TRANSPORT_VERTEX_TYPES>& v) const = 0;
81 virtual const std::vector<SESubstanceTransportEdge<TRANSPORT_EDGE_TYPES>*>* GetTargetEdges(const SESubstanceTransportVertex<TRANSPORT_VERTEX_TYPES>& v) const = 0;
88 SESubstanceTransporter(const FluxUnit& fUnit, const QuantityUnit& qUnit, const ExtensiveUnit& eUnit, const IntensiveUnit& iUnit, Logger* logger);
Definition: Logger.h:23
Definition: Logger.h:71
Definition: SESubstanceTransport.h:14
virtual bool HasIntensive() const =0
virtual bool HasExtensive() const =0
virtual IntensiveScalar & GetIntensive()=0
virtual ~SESubstanceTransportAmount()
Definition: SESubstanceTransport.h:17
virtual ExtensiveScalar & GetExtensive()=0
virtual void Clear()=0
Definition: SESubstanceTransport.h:52
virtual ~SESubstanceTransportEdge()
Definition: SESubstanceTransport.h:55
virtual SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > & GetTargetVertex()=0
virtual std::string GetName() const =0
virtual bool HasFlux() const =0
virtual SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > & GetSourceVertex()=0
virtual FluxScalar & GetFlux()=0
Definition: SESubstanceTransport.h:71
virtual ~SESubstanceTransportGraph()
Definition: SESubstanceTransport.h:74
virtual void BalanceByIntensive()=0
virtual int GetVertexIndex(const SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > &v) const =0
virtual const std::vector< SESubstanceTransportEdge< TRANSPORT_EDGE_TYPES > * > * GetTargetEdges(const SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > &v) const =0
virtual const std::vector< SESubstanceTransportEdge< TRANSPORT_EDGE_TYPES > * > * GetSourceEdges(const SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > &v) const =0
virtual const std::vector< SESubstanceTransportVertex< TRANSPORT_VERTEX_TYPES > * > & GetVerticies() const =0
Definition: SESubstanceTransport.h:33
virtual std::vector< SESubstanceTransportAmount< TRANSPORT_AMOUNT_TYPES > * > & GetTransportSubstances()=0
virtual QuantityScalar & GetQuantity()=0
virtual bool HasQuantity() const =0
virtual std::string GetName() const =0
virtual ~SESubstanceTransportVertex()
Definition: SESubstanceTransport.h:36
Definition: SESubstanceTransport.h:86
virtual ~SESubstanceTransporter()
Definition: SESubstanceTransport.h:89
const ExtensiveUnit & m_ExtensiveUnit
Definition: SESubstanceTransport.h:96
const IntensiveUnit & m_IntensiveUnit
Definition: SESubstanceTransport.h:97
const QuantityUnit & m_QuantityUnit
Definition: SESubstanceTransport.h:95