TransFlow  0.1.0
A transient pipeline flow simulation library
physics.hpp
1 #pragma once
2 
3 #include <string>
4 #include <memory>
5 #include <armadillo>
6 
7 #include "heattransfer/heattransfer.hpp"
8 #include "config.hpp"
9 
10 class Pipeline;
11 class EquationOfState;
12 
21 class Physics
22 {
23 public:
25  virtual ~Physics();
26 
32  Physics(
33  const Pipeline& state,
34  const Config& config);
35 
43  explicit Physics(
44  const Pipeline& state,
45  const std::string& eos = "BWRS",
46  const std::string& heat = "SteadyState");
47 
54  Pipeline& state) const;
55 
60  void initializeHeatTransferState(Pipeline& state) const;
61 
66  void thermalizeHeatTransfer(Pipeline& state) const;
67 
69  arma::uword size() const { return m_heat->size(); }
70 
72  const EquationOfState& equationOfState() const { return *m_eos; }
73 
75  const HeatTransfer& heatTransfer() const { return *m_heat; }
76 
77 private:
78  std::unique_ptr<EquationOfState> m_eos;
79  std::unique_ptr<HeatTransfer> m_heat;
80 };
Physics::~Physics
virtual ~Physics()
Declared to avoid the inline compiler-generated default destructor.
HeatTransfer
The EquationOfState class is a wrapper around HeatTransferBase that has one heat transfer instance pe...
Definition: heattransfer.hpp:15
Physics::updateDerivedProperties
void updateDerivedProperties(Pipeline &state) const
Updates all derived properties, but does not evaluate the heat transfer.
Pipeline
Definition: pipeline.hpp:16
Physics::Physics
Physics(const Pipeline &state, const Config &config)
Construct from Config and Pipeline.
Physics::heatTransfer
const HeatTransfer & heatTransfer() const
Get (const ref) HeatTransfer.
Definition: physics.hpp:75
Physics
The Physics class combines EquationOfState and HeatTransfer to calculate the new state of a pipeline ...
Definition: physics.hpp:21
Physics::equationOfState
const EquationOfState & equationOfState() const
Get (const ref) EquationOfState.
Definition: physics.hpp:72
Physics::initializeHeatTransferState
void initializeHeatTransferState(Pipeline &state) const
Initialize heat transfer of a Pipeline.
Config
The Config struct stores all settings for the different parts of the pipeline simulation.
Definition: config.hpp:11
EquationOfState
The EquationOfState class is a wrapper around EquationOfStateBase that has one equation of state inst...
Definition: equationofstate.hpp:15
Physics::thermalizeHeatTransfer
void thermalizeHeatTransfer(Pipeline &state) const
Thermalize the heat transfer of a Pipeline.
Physics::size
arma::uword size() const
Get the size (number of grid points)
Definition: physics.hpp:69
Physics::m_heat
std::unique_ptr< HeatTransfer > m_heat
Heat transfer.
Definition: physics.hpp:79
Physics::m_eos
std::unique_ptr< EquationOfState > m_eos
Equation of state.
Definition: physics.hpp:78