TransFlow  0.1.0
A transient pipeline flow simulation library
radial.hpp
1 #pragma once
2 
3 #include <armadillo>
4 
5 #include "heattransfer/heattransferbase.hpp"
6 #include "heattransfer/burialmedium.hpp"
7 #include "heattransfer/ambientfluid.hpp"
8 
9 class Pipeline;
10 class PipeWall;
11 
20 {
21 public:
31  const double diameter,
32  const PipeWall& pipeWall,
33  const double burialDepth,
34  const BurialMedium& burialMedium,
35  const AmbientFluid& ambientFluid);
36 
44  double calculateOuterFilmCoefficient() const;
45 
47  virtual arma::uword size() const { return m_width.n_elem; }
48 
58  virtual HeatTransferState makeState(const double heatFlux) const override
59  {
60  return HeatTransferState(heatFlux, arma::zeros<arma::vec>(size()));
61  }
62 
77  const double heatFlux,
78  const double gasTemperature,
79  const double ambientTemperature) const override
80  {
81  arma::vec shellTemperature = arma::linspace(
82  gasTemperature, ambientTemperature, size());
83 
84  return HeatTransferState(heatFlux, shellTemperature);
85  }
86 
87 protected:
88  double m_diameter;
89 
90  double m_burialDepth;
91 
97 
98  arma::vec m_width;
99  arma::vec m_conductivity;
100  arma::vec m_density;
101  arma::vec m_heatCapacity;
102 
105  arma::uvec m_isBurialLayer;
106 
107  arma::vec m_crossSection;
108  arma::vec m_ri;
109  arma::vec m_ro;
110 };
RadialHeatTransfer::m_isBurialLayer
arma::uvec m_isBurialLayer
Definition: radial.hpp:105
RadialHeatTransfer::m_diameter
double m_diameter
Pipe inner diameter [m].
Definition: radial.hpp:88
RadialHeatTransfer::m_crossSection
arma::vec m_crossSection
Area/cross-section of each shell [m2].
Definition: radial.hpp:107
PipeWall
The PipeWall class is a container class that defines the thickness and Material properties of each la...
Definition: pipewall.hpp:12
Pipeline
Definition: pipeline.hpp:16
RadialHeatTransfer::m_heatCapacity
arma::vec m_heatCapacity
Heat capacity of each discretization shell ( ) [J/(kg K)].
Definition: radial.hpp:101
RadialHeatTransfer::m_ri
arma::vec m_ri
Inner radius [m].
Definition: radial.hpp:108
AmbientFluid
The AmbientFluid class is a simple container class that defines the conductivity, density,...
Definition: ambientfluid.hpp:10
RadialHeatTransfer::m_density
arma::vec m_density
Density of each discretization shell [kg/m3].
Definition: radial.hpp:100
HeatTransferBase
The HeatTransferBase class is an abstract class, the base class for all heat transfer implementations...
Definition: heattransferbase.hpp:12
RadialHeatTransfer::m_burialDepth
double m_burialDepth
Distance from top of pipe to top of burial medium [m].
Definition: radial.hpp:90
BurialMedium
The BurialMedium class is a simple container class that defines the conductivity, density and heat ca...
Definition: burialmedium.hpp:12
RadialHeatTransfer::RadialHeatTransfer
RadialHeatTransfer(const double diameter, const PipeWall &pipeWall, const double burialDepth, const BurialMedium &burialMedium, const AmbientFluid &ambientFluid)
Constructor that sets up the discretization of the pipe surroundings.
RadialHeatTransfer
Base class for heat transfer calculation with 1d radial models.
Definition: radial.hpp:19
RadialHeatTransfer::makeState
virtual HeatTransferState makeState(const double heatFlux) const override
Make instance of HeatTransferState from heat flux. Override.
Definition: radial.hpp:58
RadialHeatTransfer::m_conductivity
arma::vec m_conductivity
Thermal conductivity of each discretization shell [W/(m K)].
Definition: radial.hpp:99
RadialHeatTransfer::calculateOuterFilmCoefficient
double calculateOuterFilmCoefficient() const
Calculate the outer film coefficient. Basically a wrapper around utils::calcOuterWallFilmCoefficient(...
RadialHeatTransfer::m_ambientFluid
AmbientFluid m_ambientFluid
Description of the fluid surrounding the pipeline.
Definition: radial.hpp:96
RadialHeatTransfer::makeState
virtual HeatTransferState makeState(const double heatFlux, const double gasTemperature, const double ambientTemperature) const override
Make instance of HeatTransferState from heat flux. Override.
Definition: radial.hpp:76
HeatTransferState
Container for the state of a HeatTransferBase instance. All HeatTransferBase subclasses operate on in...
Definition: heattransferstate.hpp:13
RadialHeatTransfer::size
virtual arma::uword size() const
The number of discretization elements.
Definition: radial.hpp:47
RadialHeatTransfer::m_burialMedium
BurialMedium m_burialMedium
Definition: radial.hpp:94
RadialHeatTransfer::m_ro
arma::vec m_ro
Outer radius [m].
Definition: radial.hpp:109
RadialHeatTransfer::m_width
arma::vec m_width
Width of each discretization shell [m].
Definition: radial.hpp:98