Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bottleneck: Large loads #110

Closed
NicholasFry opened this issue Jan 26, 2023 · 3 comments · Fixed by #111
Closed

Bottleneck: Large loads #110

NicholasFry opened this issue Jan 26, 2023 · 3 comments · Fixed by #111
Labels
bug Something isn't working

Comments

@NicholasFry
Copy link

Describe the bug
There seems to be a significant increase in runtimes for large loads. (400-700 tons) I assume this is a bottleneck, but I recall running similarly large loads in v0.1 with relative ease. I am including a load profile to test. The Atlanta building example still runs fine. (~700-900 seconds for this)

Perhaps this is normal, given the restrictive nature of the constraints.

To Reproduce

Error message
Please provide either a screen shot of the error message or copy and paste in the message below:

ghedt\ground_heat_exchangers.py:168: RuntimeWarning: invalid value encountered in log g_values = g(np.log((_time * 3600.) / ts))

Additional context

  • Attach any additional files such as a load file containing 8760 hourly loads
    demand_place.csv
@NicholasFry NicholasFry added the bug Something isn't working label Jan 26, 2023
@j-c-cook
Copy link
Owner

@NicholasFry Thank you for the detailed description. I'll work on this over the weekend and get back to you on what I find out.

@j-c-cook
Copy link
Owner

@NicholasFry The large amount of time to perform the search in your script is not due to the loads, it is due to the value of B_min resulting in the largest field in the search domain being 13,000+ boreholes. After setting B_min=5., the calculation time required to find a rectangle and size it is 7.98 seconds on my laptops i7-11850H. I get the following output printed to the console:

Find rectangle...
=================
/home/jackcook/Documents/ghedt/ghedt/ground_heat_exchangers.py:168: RuntimeWarning: invalid value encountered in log
  g_values = g(np.log((_time * 3600.) / ts))
* Single U-tube
---------------
Calculation time: 7.98 seconds
Height: 115.1082 meters
Number of boreholes: 432
Total Drilling: 49726.7 meters


Process finished with exit code 0

I've added user information that will be printed to the console if the maximum number of boreholes in the domain exceeds 2500 in PR #111. Direct feedback from the tool on design tips like this are something ghedt can benefit from.

The numpy warning about the interpolation has an open issue #82. I will address the warning there, but will likely use the load profile you provide here to debug that process.

@NicholasFry
Copy link
Author

I understand. That makes sense. Thank you for looking into this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants