WISDEM / LandBOSSE

New LandBOSSE Model (Developed in 2018-2019)
Other
17 stars 25 forks source link

Bearing Pressure (n/m2) >= ~400kn/m^2 input starts causes traceback and other modules to fail running #183

Open FlorianMandel opened 1 year ago

FlorianMandel commented 1 year ago

Description

I wanted to run a sensitivity analysis of the model using a range of Bearing Pressure (n/m2) inputs (50,000 n/m^2 up to 800,000 n/m^2). Starting at around 400,000 n/m^2 the FoundationCost module throws a traceback error. This has knock-on affects and causes the foundation cost, collection cost, management cost and site preparation costs module to not populate in the output file.

It's a bit surprising because from what I understand, soil types can have much greater bearing pressures.

image

Steps to reproduce issue

Please provide a minimum working example (MWE) if possible

  1. Use the foundation_validation_iea36_85 project input template
  2. Change Bearing Pressure (n/m2) from the original 191521 to 400000 ( tested it with the default value mentioned in the documentation on page 32 (of 𝑃𝑏 is the bearing pressure of the soil (in N m-2; default value is assumed to be 244,200 kN m-2))
  3. Current behavior

As mentioned above, the module throws a traceback error. Additional models do not calculate properly either.

Traceback (most recent call last): File "C:\Users\%USER%\Desktop\landbosse\LandBOSSE-master\landbosse\model\FoundationCost.py", line 856, in run_module self.calculate_foundation_load(self.input_dict, self.output_dict) # Returns foundation load File "C:\Users\%USER%\Desktop\landbosse\LandBOSSE-master\landbosse\model\FoundationCost.py", line 364, in calculate_foundation_load result = root_scalar(r_b, method='brentq', bracket=[0.9*r_overturn, 50], xtol=1e-10, maxiter=50) File "C:\Anaconda\lib\site-packages\scipy\optimize_root_scalar.py", line 275, in root_scalar r, sol = methodc(f, a, b, args=args, **kwargs) File "C:\Anaconda\lib\site-packages\scipy\optimize_zeros_py.py", line 784, in brentq r = _zeros._brentq(f, a, b, xtol, rtol, maxiter, args, full_output, disp) ValueError: f(a) and f(b) must have different signs Fail foundation_validation_iea36_85 FoundationCost

Additional tracebacks.

Traceback (most recent call last): File "C:\Users\%USER%\Desktop\landbosse\LandBOSSE-master\landbosse\model\SitePreparationCost.py", line 868, in run_module self.calculate_costs(self.input_dict, self.output_dict) File "C:\Users\%USER%\Desktop\landbosse\LandBOSSE-master\landbosse\model\SitePreparationCost.py", line 509, in calculate_costs wind_delay_fraction = (calculate_cost_output_dict['wind_delay_time'] / calculate_cost_input_dict[ KeyError: 'operational_hrs_per_day' Fail foundation_validation_iea36_85 SitePreparationCost

Expected behavior

Module should run through and result in lower costs for the foundationcost module

Code versions

Model version 2.4.1. (base) C:\Users\%USER%\Desktop\landbosse\LandBOSSE-master>python Python 3.10.9 | packaged by Anaconda, Inc. | (main, Mar 1 2023, 18:18:15) [MSC v.1916 64 bit (AMD64)] on win32

FlorianMandel commented 1 year ago

Thanks in advance for any help!

gbarter commented 1 year ago

This should be fixed on the develop branch. Are you comfortable switching to that?