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