TransFlow  0.1.0
A transient pipeline flow simulation library
UnsteadyHeatTransfer Class Reference

Implements 1d radial unsteady heat transfer. More...

#include <unsteady.hpp>

Inheritance diagram for UnsteadyHeatTransfer:
RadialHeatTransfer HeatTransferBase

Public Member Functions

 UnsteadyHeatTransfer (const double diameter, const PipeWall &pipeWall, const double burialDepth, const BurialMedium &burialMedium, const AmbientFluid &ambientFluid)
 Construct from complete description of pipeline and surroundings. More...
 
virtual HeatTransferState evaluate (const HeatTransferState &current, const double timeStep, const double ambientTemperature, const double gasPressure, const double gasTemperature, const double gasReynoldsNumber, const double gasHeatCapacity, const double gasViscosity) const override
 Evaluate 1d radial unsteady heat transfer model. More...
 
HeatTransferState evaluateInternal (const arma::vec &shellTemperature, const double timeStep, const double ambientTemperature, const double gasPressure, const double gasTemperature, const double gasReynoldsNumber, const double gasHeatCapacity, const double gasViscosity) const
 Internal method used for evaluating the unsteady heat transfer model. More...
 
HeatTransferState thermalizeToSteadyState (const double ambientTemperature, const double gasPressure, const double gasTemperature, const double gasReynoldsNumber, const double gasHeatCapacity, const double gasViscosity) const
 Thermalize the unsteady heat transfer model to steady state. More...
 
- Public Member Functions inherited from 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. More...
 
double calculateOuterFilmCoefficient () const
 Calculate the outer film coefficient. Basically a wrapper around utils::calcOuterWallFilmCoefficient(const double, const AmbientFluid&) using the proper arguments. More...
 
virtual arma::uword size () const
 The number of discretization elements.
 
virtual HeatTransferState makeState (const double heatFlux) const override
 Make instance of HeatTransferState from heat flux. Override. More...
 
virtual HeatTransferState makeState (const double heatFlux, const double gasTemperature, const double ambientTemperature) const override
 Make instance of HeatTransferState from heat flux. Override. More...
 
- Public Member Functions inherited from HeatTransferBase
virtual ~HeatTransferBase ()
 

Private Member Functions

arma::vec solveEquations (const arma::vec &shellTemperature, const double timeStep, const double gasPressure, const double gasTemperature, const double ambientTemperature, const double gasReynoldsNumber, const double gasHeatCapacity, const double gasViscosity) const
 Internal (private) method used for solving the equations in the 1d radial unsteady heat transfer model. More...
 

Private Attributes

arma::vec m_heatTransferCoefficient
 

Additional Inherited Members

- Protected Attributes inherited from RadialHeatTransfer
double m_diameter
 Pipe inner diameter [m].
 
double m_burialDepth
 Distance from top of pipe to top of burial medium [m].
 
BurialMedium m_burialMedium
 
AmbientFluid m_ambientFluid
 Description of the fluid surrounding the pipeline.
 
arma::vec m_width
 Width of each discretization shell [m].
 
arma::vec m_conductivity
 Thermal conductivity of each discretization shell [W/(m K)].
 
arma::vec m_density
 Density of each discretization shell [kg/m3].
 
arma::vec m_heatCapacity
 Heat capacity of each discretization shell ( \(c_p\)) [J/(kg K)].
 
arma::uvec m_isBurialLayer
 
arma::vec m_crossSection
 Area/cross-section of each shell [m2].
 
arma::vec m_ri
 Inner radius [m].
 
arma::vec m_ro
 Outer radius [m].
 

Detailed Description

Implements 1d radial unsteady heat transfer.

This is documented in Jan Fredrik Helgaker's PhD thesis and in

Constructor & Destructor Documentation

◆ UnsteadyHeatTransfer()

UnsteadyHeatTransfer::UnsteadyHeatTransfer ( const double  diameter,
const PipeWall pipeWall,
const double  burialDepth,
const BurialMedium burialMedium,
const AmbientFluid ambientFluid 
)

Construct from complete description of pipeline and surroundings.

Parameters
diameterInner diameter [m]
pipeWallPipeWall instance
burialDepthDistance from top of pipe to top of burial medium [m]
burialMediumBurialMedium instance
ambientFluidAmbientFluid instanc.

Member Function Documentation

◆ evaluate()

virtual HeatTransferState UnsteadyHeatTransfer::evaluate ( const HeatTransferState current,
const double  timeStep,
const double  ambientTemperature,
const double  gasPressure,
const double  gasTemperature,
const double  gasReynoldsNumber,
const double  gasHeatCapacity,
const double  gasViscosity 
) const
overridevirtual

Evaluate 1d radial unsteady heat transfer model.

Operates on a HeatTransferState and returns a new HeatTransferState. Requires the discretization temperature HeatTransferState::m_temperature.

Parameters
currentCurrent HeatTransferState
timeStepTime step [s]
ambientTemperatureAmbient temperature [K]
gasPressureGas pressure [Pa]
gasTemperatureGas temperature [K]
gasReynoldsNumberReynolds number of gas [-]
gasHeatCapacityGas heat capacity ( \(c_p\)) [J/(kg K)]
gasViscosityGas dynamic viscosity [Pa s] = [kg/m*s]
Returns
HeatTransferState with new heat flux.

Implements HeatTransferBase.

◆ evaluateInternal()

HeatTransferState UnsteadyHeatTransfer::evaluateInternal ( const arma::vec &  shellTemperature,
const double  timeStep,
const double  ambientTemperature,
const double  gasPressure,
const double  gasTemperature,
const double  gasReynoldsNumber,
const double  gasHeatCapacity,
const double  gasViscosity 
) const

Internal method used for evaluating the unsteady heat transfer model.

This is exposed for testing purposes. We typically use pointers anyway, so this is not accessible without casting to UnsteadyHeatTransfer.

Parameters
shellTemperatureThe temperature of each discretization layer [K]
timeStepTime step [s]
ambientTemperatureAmbient temperature [K]
gasPressureGas pressure [Pa]
gasTemperatureGas temperature [K]
gasReynoldsNumberReynolds number of gas [-]
gasHeatCapacityGas heat capacity ( \(c_p\)) [J/(kg K)]
gasViscosityGas dynamic viscosity [Pa s] = [kg/m*s]
Returns
HeatTransferState with new heat flux.

◆ solveEquations()

arma::vec UnsteadyHeatTransfer::solveEquations ( const arma::vec &  shellTemperature,
const double  timeStep,
const double  gasPressure,
const double  gasTemperature,
const double  ambientTemperature,
const double  gasReynoldsNumber,
const double  gasHeatCapacity,
const double  gasViscosity 
) const
private

Internal (private) method used for solving the equations in the 1d radial unsteady heat transfer model.

Parameters
shellTemperatureThe temperature of each discretization layer [K]
timeStepTime step [s]
ambientTemperatureAmbient temperature [K]
gasPressureGas pressure [Pa]
gasTemperatureGas temperature [K]
gasReynoldsNumberReynolds number of gas [-]
gasHeatCapacityGas heat capacity ( \(c_p\)) [J/(kg K)]
gasViscosityGas dynamic viscosity [Pa s] = [kg/m*s]
Returns
HeatTransferState with new heat flux.

◆ thermalizeToSteadyState()

HeatTransferState UnsteadyHeatTransfer::thermalizeToSteadyState ( const double  ambientTemperature,
const double  gasPressure,
const double  gasTemperature,
const double  gasReynoldsNumber,
const double  gasHeatCapacity,
const double  gasViscosity 
) const

Thermalize the unsteady heat transfer model to steady state.

This just performs an infinite time step to find the temperature distribution in the discretization layers at steady state. This could also be done analytically, if we had the analytic solution.

Parameters
ambientTemperatureAmbient temperature [K]
gasPressureGas pressure [Pa]
gasTemperatureGas temperature [K]
gasReynoldsNumberReynolds number of gas [-]
gasHeatCapacityGas heat capacity ( \(c_p\)) [J/(kg K)]
gasViscosityGas dynamic viscosity [Pa s] = [kg/m*s]
Returns
HeatTransferState with new heat flux.

Member Data Documentation

◆ m_heatTransferCoefficient

arma::vec UnsteadyHeatTransfer::m_heatTransferCoefficient
private

Heat transfer coefficient for each discretization layer. This is the k_i from eq. (2.26) in JFH PhD thesis.


The documentation for this class was generated from the following file: