TransFlow
0.1.0
A transient pipeline flow simulation library
|
7 #include "composition.hpp"
8 #include "heattransfer/pipewall.hpp"
9 #include "heattransfer/burialmedium.hpp"
10 #include "heattransfer/ambientfluid.hpp"
11 #include "heattransfer/heattransferbase.hpp"
12 #include "advection/batchtrackingstate.hpp"
26 const arma::vec& gridPoints,
27 const arma::vec& pressure,
28 const arma::vec& temperature,
29 const arma::vec& flow,
30 const std::vector<Composition>& composition);
33 const arma::vec& gridPoints,
34 const arma::vec& pressure,
35 const arma::vec& temperature,
36 const arma::vec& flow,
41 const arma::vec& flow()
const {
return m_flow; }
42 const arma::vec& pressure()
const {
return m_pressure; }
43 const arma::vec& temperature()
const {
return m_temperature; }
44 const std::vector<Composition>& composition()
const {
return m_composition; }
49 const arma::vec& density()
const {
return m_density; }
50 const arma::vec& viscosity()
const {
return m_viscosity; }
52 const arma::vec& molarMass()
const {
return m_molarMass; }
59 const arma::vec& velocity()
const {
return m_velocity; }
64 const arma::vec& heatFlow()
const {
return m_heatFlow; }
113 State(
const arma::vec& gridPoints);
163 Pipeline(
const arma::uword nGridPoints = 100,
const double length = 100e3);
165 arma::uword size()
const {
return m_gridPoints.n_elem; }
180 arma::uword timestamp()
const {
return m_timestamp; }
187 double length()
const {
return m_length; }
188 const arma::vec& gridPoints()
const {
return m_gridPoints; }
189 const arma::vec& diameter()
const {
return m_diameter; }
190 const arma::vec& height()
const {
return m_height; }
191 const arma::vec& elevation()
const {
return m_height; }
192 const arma::vec& roughness()
const {
return m_roughness; }
194 const arma::vec& burialDepth()
const {
return m_burialDepth; }
195 const std::vector<PipeWall>& pipeWall()
const {
return m_pipeWall; }
196 const std::vector<BurialMedium>& burialMedium()
const {
return m_burialMedium; }
197 const std::vector<AmbientFluid>& ambientFluid()
const {
return m_ambientFluid; }
200 const arma::vec& flow()
const {
return prop().
m_flow; }
201 const arma::vec& pressure()
const {
return prop().
m_pressure; }
202 const arma::vec& temperature()
const {
return prop().
m_temperature; }
203 const std::vector<Composition>& composition()
const {
return prop().
m_composition; }
208 const arma::vec& density()
const {
return prop().
m_density; }
209 const arma::vec& viscosity()
const {
return prop().
m_viscosity; }
211 const arma::vec& molarMass()
const {
return prop().
m_molarMass; }
218 const arma::vec& velocity()
const {
return prop().
m_velocity; }
223 const arma::vec& heatFlow()
const {
return prop().
m_heatFlow; }
225 const std::vector<HeatTransferState>& heatTransferState()
const {
return prop().
m_heatTransferState; }
244 arma::vec& height() {
return m_height; }
245 arma::vec& elevation() {
return m_height; }
249 std::vector<PipeWall>& pipeWall() {
return m_pipeWall; }
250 std::vector<BurialMedium>& burialMedium() {
return m_burialMedium; }
251 std::vector<AmbientFluid>& ambientFluid() {
return m_ambientFluid; }
254 arma::vec& flow() {
return prop().
m_flow; }
255 arma::vec& pressure() {
return prop().
m_pressure; }
261 arma::vec& density() {
return prop().
m_density; }
262 arma::vec& viscosity() {
return prop().
m_viscosity; }
264 arma::vec& molarMass() {
return prop().
m_molarMass; }
271 arma::vec& velocity() {
return prop().
m_velocity; }
276 arma::vec& heatFlow() {
return prop().
m_heatFlow; }
330 State& prop() {
return m_state; }
arma::vec m_temperatureDerivativeConstantDensity
Definition: pipeline.hpp:141
arma::vec m_height
Height profile/elevation [m].
Definition: pipeline.hpp:313
arma::vec m_reynoldsNumber
Reynolds number [-].
Definition: pipeline.hpp:145
arma::vec m_density
Gas density [kg/m3].
Definition: pipeline.hpp:124
BoundaryConditions getBoundaryConditions() const
Get current inlet and outlet state as BoundaryConditions instance.
void setLength(const double length)
State m_state
Pipeline::State instance with all properties like flow etc.
Definition: pipeline.hpp:325
arma::vec m_roughness
Sand grain equivalent roughness [m].
Definition: pipeline.hpp:314
void updateComposition(const std::vector< Composition > &composition)
Set the composition. This also updates the batch tracking state to reflect the composition change.
std::vector< BurialMedium > m_burialMedium
Burial medium description.
Definition: pipeline.hpp:318
Definition: pipeline.hpp:16
arma::vec m_viscosity
Gas dynamic viscosity [Pa s] = [kg/m*s].
Definition: pipeline.hpp:125
static const Composition defaultComposition
Default composition.
Definition: composition.hpp:81
arma::vec m_gridPoints
Grid points [m].
Definition: pipeline.hpp:311
std::vector< PipeWall > m_pipeWall
Pipe wall description.
Definition: pipeline.hpp:317
std::vector< HeatTransferState > m_heatTransferState
Heat transfer state.
Definition: pipeline.hpp:150
arma::vec m_velocity
Gas velocity [m/s].
Definition: pipeline.hpp:143
arma::vec m_heatCapacityConstantVolume
Gas heat capacity at constant volume [J/(kg K)].
Definition: pipeline.hpp:122
arma::vec m_pressureDerivativeConstantTemperature
Definition: pipeline.hpp:137
Contains the state which BatchTracking operates on.
Definition: batchtrackingstate.hpp:14
const arma::vec & outletComposition() const
Get outlet composition.
void enableBatchTracking()
Enable batch tracking. Also initializes the batch tracking state.
bool m_heatTransferIsInitialized
If heat transfer is initialized.
Definition: pipeline.hpp:151
BatchTrackingState m_batchTrackingState
Batch tracking state.
Definition: pipeline.hpp:153
bool m_batchTrackingIsInitialized
If batch tracking is initialized.
Definition: pipeline.hpp:154
std::vector< AmbientFluid > m_ambientFluid
Ambient fluid description.
Definition: pipeline.hpp:319
arma::vec m_burialDepth
Distance from burial medium to top of pipe [m].
Definition: pipeline.hpp:316
arma::vec m_molarMass
Molar mass of the gas [g/mol].
Definition: pipeline.hpp:127
bool m_constantComposition
If we simulate using constant composition or not.
Definition: pipeline.hpp:322
void initializeBatchTracking()
Initialize the batch tracking state.
const arma::vec & inletComposition() const
Get inlet composition.
Definition: pipeline.hpp:20
arma::vec m_pressure
Gas pressure [Pa].
Definition: pipeline.hpp:117
friend std::ostream & operator<<(std::ostream &out, const State &c)
For pretty printing.
void setCompositionUnsafe(const std::vector< Composition > &composition)
Set the composition without updating batch tracking state. This is meant for internal use in Solver e...
arma::vec m_heatCapacityConstantPressure
Gas heat capacity at constant pressure [J/(kg K)].
Definition: pipeline.hpp:123
The Composition class is a simple container class for the composition of natural gas....
Definition: composition.hpp:17
arma::vec m_ambientTemperature
Ambient temperature [K].
Definition: pipeline.hpp:147
arma::vec m_temperature
Gas temperature [K].
Definition: pipeline.hpp:118
arma::vec m_specificGasConstant
Specific gas constant of the gas [J/(kg K)].
Definition: pipeline.hpp:126
arma::vec m_compressibilityFactor
Definition: pipeline.hpp:129
arma::vec m_flow
Flow [kg/s].
Definition: pipeline.hpp:116
arma::vec m_frictionFactor
Friction factor [-].
Definition: pipeline.hpp:144
The BoundaryConditions class is a container for the boundary conditions at the inlet and outlet of a ...
Definition: boundaryconditions.hpp:27
std::vector< Composition > m_composition
Gas composition (fractions)
Definition: pipeline.hpp:119
double m_length
Total length [m].
Definition: pipeline.hpp:310
arma::vec m_diameter
Inner diameter [m].
Definition: pipeline.hpp:312
arma::vec m_heatFlow
Heat flow q [W/m2].
Definition: pipeline.hpp:148
arma::vec m_temperatureDerivativeConstantPressure
Definition: pipeline.hpp:133
Pipeline(const arma::uword nGridPoints=100, const double length=100e3)
Construct from number of grid points and pipeline length.
arma::uword m_timestamp
Current timestamp [s].
Definition: pipeline.hpp:326