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 <memory>
7#include <numbers>
8#include <vector>
9
10namespace BaseLib
11{
12class ConfigTree;
13}
14namespace ParameterLib
15{
16struct ParameterBase;
17template <typename T>
18struct Parameter;
19} // namespace ParameterLib
20
21namespace ProcessLib
22{
23namespace HeatTransportBHE
24{
25namespace BHE
26{
27struct Pipe
28{
30 double const diameter;
31
33 double const wall_thickness;
34
39
40 double outsideDiameter() const { return diameter + 2 * wall_thickness; }
41
42 double outsideArea() const { return circleArea(outsideDiameter()); }
43
44 double area() const { return circleArea(diameter); }
45
46 static double circleArea(double const d)
47 {
48 return std::numbers::pi * d * d / 4;
49 }
50};
51
52inline double coaxialPipesAnnulusDiameter(Pipe const& inner_pipe,
53 Pipe const& outer_pipe)
54{
55 return outer_pipe.diameter - inner_pipe.outsideDiameter();
56}
57
58Pipe createPipe(
59 BaseLib::ConfigTree const& config,
60 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>& parameters);
61} // namespace BHE
62} // namespace HeatTransportBHE
63} // namespace ProcessLib
double coaxialPipesAnnulusDiameter(Pipe const &inner_pipe, Pipe const &outer_pipe)
Definition Pipe.h:52
Pipe createPipe(BaseLib::ConfigTree const &config, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > &parameters)
Definition Pipe.cpp:17
double const diameter
Inner diameter [m].
Definition Pipe.h:30
ParameterLib::Parameter< double > const & wall_thermal_conductivity
Definition Pipe.h:38
double const wall_thickness
Wall thickness [m].
Definition Pipe.h:33
static double circleArea(double const d)
Definition Pipe.h:46