The purpose is to track changes throughout the versions in a way that is easy to
comprehend. The changes provided here reference a specific Github issue.
Prior to an issue being merged into the main
branch, the issue is listed as
a hyper-reference in a pertinent category and given a description. The
following is a non-exhaustive list of the possible categories issues could fall
in:
- New features - for new features
- Enhancements - for improvements made to code performance and functionality
- Maintenance - for tidying code (refactoring and updates)
- Changed - for changes in functionality of the code
- Deprecated - for soon-to-be removed features
- Removed - for removed features
- Fixes - for any bug fixes
- Documentation - for changes to the package that are purely for purposes of documentation
- A rounding error for the peak load day in the hybrid time step module is fixed (#82).
- A warning is printed to the console when the inputs to the bisection search routine are such that the maximum field in the domain contains more than 2500 boreholes (#110).
- The effective borehole thermal resistance function call is updated to use a function with long-term support. The previously used function has been deprecated (#102).
- The update thermal resistance functions now rely on an
update_thermal_resistances
abstract method in pygfunction's base pipe object (#103). - The
ground_loads
module in the peak load analysis tool is refactored by encapsulating shared functionality between the rejection and extraction loads (#118).
- The peak load analysis tool is now properly tested. Tests are added for the borehole heat exchangers, equivalent borehole heat exchanger and the hybrid profile calculation (#6).
- Issue 81 - The
near-square
design option in theDesign
object now requires the user to specify a land length which computes a maximum number of boreholes rather. This functionality replaces a hard-coded 32x32 maximum. - Issue 85 - Enhances the
Design
API to accept the simulation method (hybrid or hourly) used for searching fields.
- Issue 79 - Fixes the possibility for the peak load analysis tool to determine a negative peak load duration when the first month contains no load.
- Issue 84 - Fixes the possibility of the nominal simulation having a greater temperature change than the peak simulation when the peak day occurs on the first of a month by introducing a check to ensure the two-day peak simulation utilizes the peak load from either the 48-hour load profile or the current month.
- Issue 74 - Expand documentation in change-log, contributor markdown file, installation markdown file, increase information in readme markdown for the
ghedt
andplat
root directories and provide cross-referencing to Cook (2021) for the design example files.
- Issue 12 - The
GFunction
object can be passed into theGHE
object with only one g-function calculated, as long as theB/H
value being "interpolated" for is the same one that it was computed for. - Issue 64 - Enhances the
search_routines
API to accept flow rate on a borehole or system basis.
- Issue 23 - Fixes the possibility for an extrapolation error to be thrown on the interpolation function at the outer bounds when floating point rounding causes the number to be out of bounds by 1e-16 or less. A check is put in place to compare the absolute value of the difference for the outer bounds, and if the value is within 1.0e-06, then the outer bound is made use of.
- Issue 66 -
pyfunction
is removed as a submodule and moved to the list of requirements. - Issue 71 - Modified the definition of all grout variables (modules and examples) to point to the
Grout
object rather than theThermalProperty
object.
- Issue 1 - The
GFunction
object used for interpolation of g-functions based on B/H and borehole radius correction is pulled from the g-FunctionDatabase. - Issue 3 - Adds a GHE object with the ability to simulate and size with a hybrid time step using information found by the peak load analysis tool.
- Issue 8 - Adds a detailed hourly simulation so that the hybrid time step can be validated.
- Issue 9 - A function that computes a live g-function using
pygfunction
is created. The functions default arguments are unequal segments, the equivalent solver and the mixed inlet fluid temperature boundary condition. - Issue 14 - The
coordinates.py
module is moved from the g-Function Database repository to this package. - Issue 16 - An integer bisection search routine is implemented that, given a domain of coordinates specified at a target height, selects the borefield that results in an excess temperature less than or equal to 0.
- Issue 17 - A design routine that can determine a square or near square routine based on a range (ie. 1 to 3 is 1x1, 1x2, 2x2, 2x3, 3x3), and a target depth (maximum height). A lower end of the domain is inserted prior to the rectangular domain, which works from one borehole, to a line of boreholes to rows of lines of boreholes all at the maximum spacing based on prescribed inputs.
- Issue 18 - The methodology for determining the
B
spacing for a borefield is one that compares the first two boreholes in the list. If there is one borehole, the borehole radius is set as the borehole spacing. - Issue 10 - A rectangular design routine that requires length x width land area constraint, and minimum and maximum borehole spacings.
- Issue 25 - A bi-rectangular search routine is implemented that requires the arguments in the rectangular design in addition to the maximum spacing along the shortest length.
- Issue 21 - Adds the ability to create zoned rectangle, lopsided U and C shape configurations.
- Issue 22 - Adds a bi-zoned rectangle domain and nested bi-zoned rectangle domain can be used in the
Bisection1D
andBisectionZD
search routines respectively. - Issue 32 - Adds a
BisectionZD
search that locates an outer domain, and then performs a successive search in the negative excess direction. The search ends when the total drilling depth stops decreasing, or reaches a max_iter of 7. - Issue 34 - Adds a
feature_recognition
module that can determine if boreholes are inside of a no drill zone defined by a polygon. This enables a bi-rectangular search with no drill zones. - Issue 29 - Adds the ability to determine the largest rectangle of a property boundary that is defined as a polygon.
- Issue 35 - Adds a bi-rectangular search routine with the ability to specify outer polygonal boundaries with no drilling zones.
- Issue 38 - Adds common
design
interface. The following pull requests enhance the initial interface:- PR 42 - The
Design.py
module is created, adesign
object is created, and functionality for thenear-square
routine is added. - PR 60 - Adds constrained rectangular design functionality to the common design interface.
- PR 61 - Adds bi-rectangle functionality to the common design interface.
- PR 68 - Add bi-zoned rectangular functionality to the common design interface.
- PR 42 - The
- Issue 39 - Adds the ability to save a
design
configuration file, and then design based on the file. - Issue 55 - Adds equivalent single U-tube parameters to the
oak_ridge_export
function so that the online techno-economic tool can utilize borehole heat exchangers consisting of multiple U-tubes or a concentric tube (in addition to a single U-tube).
- Issue 15 - A file is added for testing the sizing of a GHE using live-time g-function calculations that utilize the equivalent solver method and 8 unequal segment lengths along the borehole for Single U-tube, Double U-tube and Coaxial tube BHEs.
- Issue 5 - A Ubuntu 20.04.03 LTS virtual machine (via VirtualBox) has been created to provide support for running tests when the project goes public.