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: $\Delta x^2 + \Delta y^2 \leq r_b^2$.
In pygfunction, the radial distance is clamped to $r_b$ when it is too small for both vertical and inclined FLS.
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 $r_b$ because $\Delta x = \Delta y = 0$.
If they are rotated a big angle, $\Delta x^2 + \Delta y^2 > r_b^2$ holds and $r_b$ will not impact their coupling factors.
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:

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:$\Delta x^2 + \Delta y^2 \leq r_b^2$ .
In pygfunction, the radial distance is clamped to$r_b$ when it is too small for both vertical and inclined FLS.
The problem is that this will introduce inconsistency for two exactly same FLS when they are tilted.
Here we consider two short adjacent FLS.$r_b$ because $\Delta x = \Delta y = 0$ .$\Delta x^2 + \Delta y^2 > r_b^2$ holds and $r_b$ will not impact their coupling factors.
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:
The result: