Skip to content
Snippets Groups Projects
Commit 23c4b3c4 authored by Dmitri Naumov's avatar Dmitri Naumov
Browse files

[PL] Extract common calculation of pipe and thermal resistance parameters.

parent 263d5bf9
No related branches found
No related tags found
No related merge requests found
...@@ -99,12 +99,6 @@ inline double nusseltNumberAnnulus(double const reynolds_number, ...@@ -99,12 +99,6 @@ inline double nusseltNumberAnnulus(double const reynolds_number,
(1.0 + diameter_ratio)); (1.0 + diameter_ratio));
} }
inline double PipeOutsideDiameter(double const pipe_diameter,
double const pipe_wall_thickness)
{
return pipe_diameter + 2. * pipe_wall_thickness;
}
struct CrossSectionAreasCoaxial struct CrossSectionAreasCoaxial
{ {
double const inner; double const inner;
......
...@@ -30,23 +30,39 @@ struct Pipe ...@@ -30,23 +30,39 @@ struct Pipe
double const wall_thermal_conductivity; double const wall_thermal_conductivity;
/// Area of the pipe's inside without the wall. /// Area of the pipe's inside without the wall.
double area() const double area() const { return circleArea(diameter); }
/// Area of the pipe's outside including the wall thickness.
double outsideArea() const { return circleArea(outsideDiameter()); }
double outsideDiameter() const { return diameter + 2 * wall_thickness; }
double wallThermalResistance() const
{ {
constexpr double pi = boost::math::constants::pi<double>(); constexpr double pi = boost::math::constants::pi<double>();
return pi * diameter * diameter / 4;
double const outside_diameter = outsideDiameter();
return std::log(outside_diameter / diameter) /
(2.0 * pi * wall_thermal_conductivity);
} }
/// Area of the pipe's outside including the wall thickness. private:
double outsideArea() const double circleArea(double const diameter) const
{ {
constexpr double pi = boost::math::constants::pi<double>(); constexpr double pi = boost::math::constants::pi<double>();
double const d = diameter + 2 * wall_thickness; return pi * diameter * diameter / 4;
return pi * d * d / 4;
} }
}; };
Pipe createPipe(BaseLib::ConfigTree const& config); inline double coaxialPipesAnnulusDiameter(Pipe const& inner_pipe,
Pipe const& outer_pipe)
{
return outer_pipe.diameter - inner_pipe.diameter -
2 * inner_pipe.wall_thickness;
}
Pipe createPipe(BaseLib::ConfigTree const& config);
} // namespace BHE } // namespace BHE
} // namespace HeatTransportBHE } // namespace HeatTransportBHE
} // namespace ProcessLib } // namespace ProcessLib
...@@ -46,40 +46,25 @@ inline AdvectiveThermalResistanceCoaxial calculateAdvectiveThermalResistance( ...@@ -46,40 +46,25 @@ inline AdvectiveThermalResistanceCoaxial calculateAdvectiveThermalResistance(
RefrigerantProperties const& fluid, double const Nu_inner_pipe, RefrigerantProperties const& fluid, double const Nu_inner_pipe,
double const Nu_annulus) double const Nu_annulus)
{ {
static constexpr double pi = boost::math::constants::pi<double>(); double const hydraulic_diameter =
coaxialPipesAnnulusDiameter(inner_pipe, outer_pipe);
double const hydraulic_diameter_annulus = outer_pipe.diameter - auto advective_thermal_resistance = [&](double Nu, double diameter_ratio) {
inner_pipe.diameter - static constexpr double pi = boost::math::constants::pi<double>();
2 * inner_pipe.wall_thickness; return 1.0 / (Nu * fluid.thermal_conductivity * pi) * diameter_ratio;
double const inner_pipe_outside_diameter = };
PipeOutsideDiameter(inner_pipe.diameter, inner_pipe.wall_thickness); return {advective_thermal_resistance(Nu_inner_pipe, 1.),
double const inner_pipe_coaxial = advective_thermal_resistance(
1.0 / (Nu_inner_pipe * fluid.thermal_conductivity * pi); Nu_annulus, hydraulic_diameter / inner_pipe.outsideDiameter()),
double const a_annulus = advective_thermal_resistance(
1.0 / (Nu_annulus * fluid.thermal_conductivity * pi) * Nu_annulus, hydraulic_diameter / outer_pipe.diameter)};
(hydraulic_diameter_annulus / inner_pipe_outside_diameter);
double const b_annulus = 1.0 /
(Nu_annulus * fluid.thermal_conductivity * pi) *
(hydraulic_diameter_annulus / outer_pipe.diameter);
return {inner_pipe_coaxial, a_annulus, b_annulus};
} }
inline PipeWallThermalResistanceCoaxial calculatePipeWallThermalResistance( inline PipeWallThermalResistanceCoaxial calculatePipeWallThermalResistance(
Pipe const& inner_pipe, Pipe const& outer_pipe) Pipe const& inner_pipe, Pipe const& outer_pipe)
{ {
static constexpr double pi = boost::math::constants::pi<double>(); return {inner_pipe.wallThermalResistance(),
outer_pipe.wallThermalResistance()};
double const inner_pipe_outside_diameter =
PipeOutsideDiameter(inner_pipe.diameter, inner_pipe.wall_thickness);
double const outer_pipe_outside_diameter =
PipeOutsideDiameter(outer_pipe.diameter, outer_pipe.wall_thickness);
double const inner_pipe_coaxial =
std::log(inner_pipe_outside_diameter / inner_pipe.diameter) /
(2.0 * pi * inner_pipe.wall_thermal_conductivity);
double const Annulus =
std::log(outer_pipe_outside_diameter / outer_pipe.diameter) /
(2.0 * pi * outer_pipe.wall_thermal_conductivity);
return {inner_pipe_coaxial, Annulus};
} }
inline GroutAndGroutSoilExchangeThermalResistanceCoaxial inline GroutAndGroutSoilExchangeThermalResistanceCoaxial
...@@ -89,8 +74,7 @@ calculateGroutAndGroutSoilExchangeThermalResistance( ...@@ -89,8 +74,7 @@ calculateGroutAndGroutSoilExchangeThermalResistance(
{ {
static constexpr double pi = boost::math::constants::pi<double>(); static constexpr double pi = boost::math::constants::pi<double>();
double const outer_pipe_outside_diameter = double const outer_pipe_outside_diameter = outer_pipe.outsideDiameter();
PipeOutsideDiameter(outer_pipe.diameter, outer_pipe.wall_thickness);
double const chi = double const chi =
std::log(std::sqrt(borehole_diameter * borehole_diameter + std::log(std::sqrt(borehole_diameter * borehole_diameter +
outer_pipe_outside_diameter * outer_pipe_outside_diameter *
......
...@@ -53,8 +53,7 @@ calculateThermoMechanicalFlowPropertiesAnnulus( ...@@ -53,8 +53,7 @@ calculateThermoMechanicalFlowPropertiesAnnulus(
prandtlNumber(fluid.dynamic_viscosity, fluid.specific_heat_capacity, prandtlNumber(fluid.dynamic_viscosity, fluid.specific_heat_capacity,
fluid.thermal_conductivity); fluid.thermal_conductivity);
double const inner_pipe_outside_diameter = double const inner_pipe_outside_diameter = inner_pipe.outsideDiameter();
PipeOutsideDiameter(inner_pipe.diameter, inner_pipe.wall_thickness);
// Velocity between the outer pipe and inner pipe. // Velocity between the outer pipe and inner pipe.
double const velocity = double const velocity =
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment