SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE > Class Template Reference

#include <SESubstanceTransport.h>

Inherits Loggable.

Public Member Functions

 SESubstanceTransporter (const FluxUnit &fUnit, const QuantityUnit &qUnit, const ExtensiveUnit &eUnit, const IntensiveUnit &iUnit, Logger *logger)
 
virtual ~SESubstanceTransporter ()
 
void Transport (GraphType &graph, double timeStep_s)
 Calculates the intensive and extensive properties for this Graph. More...
 
- 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 Attributes

const FluxUnit & m_FluxUnit
 
const QuantityUnit & m_QuantityUnit
 
const ExtensiveUnit & m_ExtensiveUnit
 
const IntensiveUnit & m_IntensiveUnit
 
- Protected Attributes inherited from Loggable
bool myLogger
 
Loggerm_Logger
 

Constructor & Destructor Documentation

◆ SESubstanceTransporter()

template<typename GraphType , typename FluxUnit , typename QuantityUnit , typename ExtensiveUnit , typename IntensiveUnit >
SESubstanceTransporter< GraphType, FluxUnit, QuantityUnit, ExtensiveUnit, IntensiveUnit >::SESubstanceTransporter ( const FluxUnit &  fUnit,
const QuantityUnit &  qUnit,
const ExtensiveUnit &  eUnit,
const IntensiveUnit &  iUnit,
Logger logger 
)

◆ ~SESubstanceTransporter()

template<SUBSTANCE_TRANSPORTER_TEMPLATE >
virtual SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE >::~SESubstanceTransporter ( )
inlinevirtual

Member Function Documentation

◆ Transport()

template<typename GraphType , typename FluxUnit , typename QuantityUnit , typename ExtensiveUnit , typename IntensiveUnit >
void SESubstanceTransporter< GraphType, FluxUnit, QuantityUnit, ExtensiveUnit, IntensiveUnit >::Transport ( GraphType &  graph,
double  timeStep_s 
)

Calculates the intensive and extensive properties for this Graph.

Parameters
timesteptime-step of the system

Calculates the intensive (liquid concentration or gas volume fraction) and extensive (mass in liquid or volume of gas) properties for all vertexs in the graph. This uses an Eigen solver. An INTENSIVE property is a bulk property, meaning that it is a physical property of a system that does not depend on the system size or the amount of material in the system. For us, this includes Concentration and VolumeFraction An EXTENSIVE property is additive for independent, non-interacting subsystems. The property is proportional to the amount of material in the system. For us, this includes Mass and Volume

Member Data Documentation

◆ m_ExtensiveUnit

template<SUBSTANCE_TRANSPORTER_TEMPLATE >
const ExtensiveUnit& SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE >::m_ExtensiveUnit
protected

◆ m_FluxUnit

template<SUBSTANCE_TRANSPORTER_TEMPLATE >
const FluxUnit& SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE >::m_FluxUnit
protected

◆ m_IntensiveUnit

template<SUBSTANCE_TRANSPORTER_TEMPLATE >
const IntensiveUnit& SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE >::m_IntensiveUnit
protected

◆ m_QuantityUnit

template<SUBSTANCE_TRANSPORTER_TEMPLATE >
const QuantityUnit& SESubstanceTransporter< SUBSTANCE_TRANSPORTER_TEMPLATE >::m_QuantityUnit
protected

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.