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}
13namespace ProcessLib
14{
15namespace HeatTransportBHE
16{
17namespace BHE
18{
19struct Pipe
20{
21 double const diameter;
22 double const wall_thickness;
24
26 double area() const { return circleArea(diameter); }
27
29 double outsideArea() const { return circleArea(outsideDiameter()); }
30
31 double outsideDiameter() const { return diameter + 2 * wall_thickness; }
32
33 double wallThermalResistance() const
34 {
35 double const outside_diameter = outsideDiameter();
36
37 return std::log(outside_diameter / diameter) /
38 (2.0 * std::numbers::pi * wall_thermal_conductivity);
39 }
40
41private:
42 double circleArea(double const diameter) const
43 {
44 return std::numbers::pi * diameter * diameter / 4;
45 }
46};
47
48inline double coaxialPipesAnnulusDiameter(Pipe const& inner_pipe,
49 Pipe const& outer_pipe)
50{
51 return outer_pipe.diameter - inner_pipe.diameter -
52 2 * inner_pipe.wall_thickness;
53}
54
55Pipe createPipe(BaseLib::ConfigTree const& config);
56} // namespace BHE
57} // namespace HeatTransportBHE
58} // namespace ProcessLib
Pipe createPipe(BaseLib::ConfigTree const &config)
Definition Pipe.cpp:14
double coaxialPipesAnnulusDiameter(Pipe const &inner_pipe, Pipe const &outer_pipe)
Definition Pipe.h:48
double outsideArea() const
Area of the pipe's outside including the wall thickness.
Definition Pipe.h:29
double circleArea(double const diameter) const
Definition Pipe.h:42
double area() const
Area of the pipe's inside without the wall.
Definition Pipe.h:26