OGS
Pipe.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <boost/math/constants/constants.hpp>
14
15namespace BaseLib
16{
17class ConfigTree;
18}
19namespace ProcessLib
20{
21namespace HeatTransportBHE
22{
23namespace BHE
24{
25struct Pipe
26{
27 double const diameter;
28 double const wall_thickness;
30
32 double area() const { return circleArea(diameter); }
33
35 double outsideArea() const { return circleArea(outsideDiameter()); }
36
37 double outsideDiameter() const { return diameter + 2 * wall_thickness; }
38
39 double wallThermalResistance() const
40 {
41 constexpr double pi = boost::math::constants::pi<double>();
42
43 double const outside_diameter = outsideDiameter();
44
45 return std::log(outside_diameter / diameter) /
46 (2.0 * pi * wall_thermal_conductivity);
47 }
48
49private:
50 double circleArea(double const diameter) const
51 {
52 constexpr double pi = boost::math::constants::pi<double>();
53 return pi * diameter * diameter / 4;
54 }
55};
56
57inline double coaxialPipesAnnulusDiameter(Pipe const& inner_pipe,
58 Pipe const& outer_pipe)
59{
60 return outer_pipe.diameter - inner_pipe.diameter -
61 2 * inner_pipe.wall_thickness;
62}
63
64Pipe createPipe(BaseLib::ConfigTree const& config);
65} // namespace BHE
66} // namespace HeatTransportBHE
67} // namespace ProcessLib
Pipe createPipe(BaseLib::ConfigTree const &config)
Definition Pipe.cpp:21
double coaxialPipesAnnulusDiameter(Pipe const &inner_pipe, Pipe const &outer_pipe)
Definition Pipe.h:57
double outsideArea() const
Area of the pipe's outside including the wall thickness.
Definition Pipe.h:35
double circleArea(double const diameter) const
Definition Pipe.h:50
double area() const
Area of the pipe's inside without the wall.
Definition Pipe.h:32