OGS
Pipe.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <cmath>
7#include <numbers>
8
9namespace BaseLib
10{
11class ConfigTree;
12}
13
14namespace ProcessLib
15{
16namespace HeatTransportBHE
17{
18namespace BHE
19{
20struct Pipe
21{
23 double const diameter;
24
26 double const wall_thickness;
27
30
31 double outsideDiameter() const { return diameter + 2 * wall_thickness; }
32
33 double outsideArea() const { return circleArea(outsideDiameter()); }
34
35 double area() const { return circleArea(diameter); }
36
37 double wallThermalResistance() const
38 {
39 return std::log(outsideDiameter() / diameter) /
40 (2.0 * std::numbers::pi * wall_thermal_conductivity);
41 }
42
43private:
44 static double circleArea(double const d)
45 {
46 return std::numbers::pi * d * d / 4;
47 }
48};
49
50inline double coaxialPipesAnnulusDiameter(Pipe const& inner_pipe,
51 Pipe const& outer_pipe)
52{
53 return outer_pipe.diameter - inner_pipe.outsideDiameter();
54}
55
56Pipe createPipe(BaseLib::ConfigTree const& config);
57} // namespace BHE
58} // namespace HeatTransportBHE
59} // namespace ProcessLib
Pipe createPipe(BaseLib::ConfigTree const &config)
Definition Pipe.cpp:15
double coaxialPipesAnnulusDiameter(Pipe const &inner_pipe, Pipe const &outer_pipe)
Definition Pipe.h:50
double const wall_thermal_conductivity
Wall thermal conductivity [W/(m*K)].
Definition Pipe.h:29
double const diameter
Inner diameter [m].
Definition Pipe.h:23
double const wall_thickness
Wall thickness [m].
Definition Pipe.h:26
static double circleArea(double const d)
Definition Pipe.h:44