OGS
Physics.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
8namespace ProcessLib
9{
10namespace HeatTransportBHE
11{
12namespace BHE // namespace of borehole heat exchanger
13{
14inline double prandtlNumber(double const& viscosity,
15 double const& heat_capacity,
16 double const& heat_conductivity)
17{
18 return viscosity * heat_capacity / heat_conductivity;
19}
20
21inline double reynoldsNumber(double const velocity_norm,
22 double const pipe_diameter,
23 double const viscosity,
24 double const density)
25{
26 return velocity_norm * pipe_diameter / (viscosity / density);
27}
28
29inline double nusseltNumber(double const reynolds_number,
30 double const prandtl_number,
31 double const pipe_diameter,
32 double const pipe_length)
33{
34 if (reynolds_number < 2300.0)
35 {
36 return 4.364;
37 }
38 if (reynolds_number < 10000.0)
39 {
40 double const gamma = (reynolds_number - 2300) / (10000 - 2300);
41
42 return (1.0 - gamma) * 4.364 +
43 gamma *
44 ((0.0308 / 8.0 * 1.0e4 * prandtl_number) /
45 (1.0 + 12.7 * std::sqrt(0.0308 / 8.0) *
46 (std::pow(prandtl_number, 2.0 / 3.0) - 1.0)) *
47 (1.0 + std::pow(pipe_diameter / pipe_length, 2.0 / 3.0)));
48 }
49
50 double const xi = std::pow(1.8 * std::log10(reynolds_number) - 1.5, -2.0);
51 return (xi / 8.0 * reynolds_number * prandtl_number) /
52 (1.0 + 12.7 * std::sqrt(xi / 8.0) *
53 (std::pow(prandtl_number, 2.0 / 3.0) - 1.0)) *
54 (1.0 + std::pow(pipe_diameter / pipe_length, 2.0 / 3.0));
55}
56
57// Pipe aspect ratio is the pipe's diameter equivalent over pipe's length.
58inline double nusseltNumberAnnulus(double const reynolds_number,
59 double const prandtl_number,
60 double const diameter_ratio,
61 double const pipe_aspect_ratio)
62{
63 if (reynolds_number < 2300.0)
64 {
65 return 3.66 + (4.0 - 0.102 / (diameter_ratio + 0.02)) *
66 std::pow(diameter_ratio, 0.04);
67 }
68 if (reynolds_number < 10000.0)
69 {
70 double const gamma = (reynolds_number - 2300) / (10000 - 2300);
71
72 return (1.0 - gamma) *
73 (3.66 + (4.0 - 0.102 / (diameter_ratio + 0.02))) *
74 std::pow(diameter_ratio, 0.04) +
75 gamma *
76 ((0.0308 / 8.0 * 1.0e4 * prandtl_number) /
77 (1.0 + 12.7 * std::sqrt(0.0308 / 8.0) *
78 (std::pow(prandtl_number, 2.0 / 3.0) - 1.0)) *
79 (1.0 + std::pow(pipe_aspect_ratio, 2.0 / 3.0)) *
80 ((0.86 * std::pow(diameter_ratio, 0.84) + 1.0 -
81 0.14 * std::pow(diameter_ratio, 0.6)) /
82 (1.0 + diameter_ratio)));
83 }
84 double const xi = std::pow(1.8 * std::log10(reynolds_number) - 1.5, -2.0);
85 return (xi / 8.0 * reynolds_number * prandtl_number) /
86 (1.0 + 12.7 * std::sqrt(xi / 8.0) *
87 (std::pow(prandtl_number, 2.0 / 3.0) - 1.0)) *
88 (1.0 + std::pow(pipe_aspect_ratio, 2.0 / 3.0)) *
89 ((0.86 * std::pow(diameter_ratio, 0.84) + 1.0 -
90 0.14 * std::pow(diameter_ratio, 0.6)) /
91 (1.0 + diameter_ratio));
92}
93} // end of namespace BHE
94} // end of namespace HeatTransportBHE
95} // end of namespace ProcessLib
double reynoldsNumber(double const velocity_norm, double const pipe_diameter, double const viscosity, double const density)
Definition Physics.h:21
double nusseltNumber(double const reynolds_number, double const prandtl_number, double const pipe_diameter, double const pipe_length)
Definition Physics.h:29
double prandtlNumber(double const &viscosity, double const &heat_capacity, double const &heat_conductivity)
Definition Physics.h:14
double nusseltNumberAnnulus(double const reynolds_number, double const prandtl_number, double const diameter_ratio, double const pipe_aspect_ratio)
Definition Physics.h:58