-
Notifications
You must be signed in to change notification settings - Fork 22
Description
As mentioned in #50, the radial distance between inclined FLS is difficult to evaluate because they also depend on the depth.
I notice that the work of Lazzarotto (A methodology for the calculation of response functions for geothermal fields with arbitrarily oriented boreholes - Part I) does not mention the special case when the radial distance between heads of two inclined FLS are smaller than the radius of borehole:
In pygfunction, the radial distance is clamped to
The problem is that this will introduce inconsistency for two exactly same FLS when they are tilted.
Here we consider two short adjacent FLS.
When they are vertical, their radial distance is fixed to
If they are rotated a big angle,
Now it gives unrealistic result where the coupling between two FLS depends on their titled angles.
This is the small example to reproduce:
import numpy as np
import matplotlib.pyplot as plt
import pygfunction as gt
time = 86400.0 * 30
alpha = 1e-6
rb = np.array([0.1])
x = np.array([0.0])
y = np.array([0.0])
D = np.array([5.0])
H = np.array([0.5])
orientation = np.radians([0.0])
tilts = np.radians(np.linspace(0.0, 90.0, 90)).tolist()
inclined_factors = np.empty((len(tilts),))
for i, tilt in enumerate(tilts):
x1 = x
y1 = y
D1 = D
H1 = H
x2 = x1 + H * np.sin(tilt)
y2 = y1
D2 = D1 + H * np.cos(tilt)
H2 = H
inclined_factors[i] = gt.heat_transfer.finite_line_source_inclined_vectorized(
time,
alpha,
rb,
x1,
y1,
H1,
D1,
tilt,
orientation,
x2,
y2,
H2,
D2,
tilt,
orientation,
reaSource=True,
imgSource=False,
approximation=False,
)
fig, ax = plt.subplots(figsize=(5,3))
ax.plot(np.degrees(tilts), inclined_factors)
ax.set_xlabel('Tilt Angle (degrees)')
ax.set_ylabel('Heat Transfer')
ax.set_title('Heat Transfer for Different Tilt Angles')
The result:
