Skip to content

thomas_heatloop API Reference

geoloop.axisym.AxisymetricEL.thomas_heatloop

thomas_heatloop(
    time: ndarray,
    dt: float,
    nt: int,
    qscale: ndarray,
    t_inlet: float | ndarray,
    grid: SimGridRegular,
    ahddif: bool = True,
    fixsurfaceTemp: bool = True,
) -> np.ndarray

Solve transient heat transport using a mixed explicit/implicit scheme: - Explicit in the along-hole direction (except boundary treatment) - Implicit in the radial direction using the Thomas tridiagonal algorithm

Integrates over the timeseries time, the heat loop specified in grid. This used a mixture of explicit finite difference and the implicit thomas algorithm (which is tridiagonal guassian elimination) for the radial diffusion and advective flow.

The components of the tridiagonal system (a,b,c,d) are in the range of grid.nx

  • b[i] = diagonal (referring to node)
  • a[i] = same row, column to the left (referring to node i-1)
  • c[i] = same row column to the right (referring to node i+1)
  • d[i] = RHS for node i (RHS = right hand side)

Mathematical documentation available in report Wees et al. (2023), TKI reference: 1921406 Equation nr. annotations in code refer to equation nr. in Appendix A of the report.

Parameters:

Name Type Description Default
time ndarray

1D array of time steps (arbitrary units). Each entry corresponds to a point where the solution is stored.

required
dt float

Scaling factor that converts the time unit in time to seconds.

required
nt int

Number of intermediate timesteps for each main timestep in time. The solver uses fixed sub-stepping, not adaptive stepping. (It does not use the automated timestepping as in odeint)

required
qscale ndarray

1D array scaling the reference mass flow rate over time. Must be the same length as time.

required
t_inlet float or ndarray

Fixed inlet temperature at the top of the well. If array: must have same length as time.

required
grid SimGridRegular

Grid specifying geometry, transmissivities, flow field, and thermophysical properties (rock and fluid).

required
ahddif bool

If True, include along-hole diffusion outside the borehole.

True
fixsurfaceTemp bool

If True, impose Dirichlet (fixed-temperature) conditions at the surface nodes in the along-hole direction.

True

Returns:

Type Description
ndarray

Temperature field with dimensions (ntimes, nx, ny, nz) where: - time dimension corresponds to the sampling times in time - nx is the along-hole direction - ny is the radial direction - nz is typically 1 (semi-3D axisymmetric model)