-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
Description
The tower design WEIS example does not seem to run properly
Steps to reproduce issue
Please provide a minimum working example (MWE) if possible
- Install WEIS
- Run the
tower_design_driver.pyWEIS example
Current behavior
Traceback (most recent call last):
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\wisdem\optimization_drivers\nlopt_driver.py", line 382, in run
opt_prob.optimize(x_init)
~~~~~~~~~~~~~~~~~^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\nlopt.py", line 452, in optimize
return _nlopt.opt_optimize(self, *args)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\wisdem\optimization_drivers\nlopt_driver.py", line 459, in _objfunc
return float(f_new[0])
~~~~~^^^
TypeError: 'float' object is not subscriptable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\mauri\WEIS\examples\03_design_with_openfast\tower_design_driver.py", line 13, in <module>
wt_opt, modeling_options, opt_options = weis_main(fname_wt_input,
~~~~~~~~~^^^^^^^^^^^^^^^^
fname_modeling_options,
^^^^^^^^^^^^^^^^^^^^^^^
fname_analysis_options,
^^^^^^^^^^^^^^^^^^^^^^^
test_run=TEST_RUN
^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\mauri\WEIS\weis\main.py", line 110, in weis_main
wt_opt, modeling_options, opt_options = run_weis(fname_wt_input,
~~~~~~~~^^^^^^^^^^^^^^^^
fname_modeling_options,
^^^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
prepMPI=False,
^^^^^^^^^^^^^^
maxnP=maxnP)
^^^^^^^^^^^^
File "C:\Users\mauri\WEIS\weis\glue_code\runWEIS.py", line 185, in run_weis
wt_opt.run_driver()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\problem.py", line 728, in run_driver
return driver._run()
~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\driver.py", line 829, in _run
self.result.success = not self.run()
~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\wisdem\optimization_drivers\nlopt_driver.py", line 391, in run
self._reraise()
~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\wisdem\optimization_drivers\nlopt_driver.py", line 533, in _reraise
raise exc
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\wisdem\optimization_drivers\nlopt_driver.py", line 432, in _objfunc
model.run_solve_nonlinear()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\system.py", line 5151, in run_solve_nonlinear
self._solve_nonlinear()
~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\group.py", line 3846, in _solve_nonlinear
self._nonlinear_solver._solve_with_cache_check()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\solvers\nonlinear\nonlinear_runonce.py", line 26, in _solve_with_cache_check
self.solve() # don't use caching
~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\solvers\nonlinear\nonlinear_runonce.py", line 45, in solve
self._gs_iter()
~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\solvers\solver.py", line 937, in _gs_iter
subsys._solve_nonlinear()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\explicitcomponent.py", line 328, in _solve_nonlinear
self._compute_wrapper()
~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\explicitcomponent.py", line 282, in _compute_wrapper
with self._call_user_function('compute'):
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\contextlib.py", line 162, in __exit__
self.gen.throw(value)
~~~~~~~~~~~~~~^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\system.py", line 2998, in _call_user_function
raise err_type(
f"{self.msginfo}: Error calling {fname}(), {err}").with_traceback(trace)
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\system.py", line 2992, in _call_user_function
yield
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\openmdao\core\explicitcomponent.py", line 299, in _compute_wrapper
self.compute(self._inputs, self._outputs,
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self._discrete_inputs, self._discrete_outputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\WEIS\weis\aeroelasticse\openmdao_openfast.py", line 703, in compute
case_list, case_name, dlc_generator = self.run_FAST(inputs, discrete_inputs, fst_vt)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\WEIS\weis\aeroelasticse\openmdao_openfast.py", line 2344, in run_FAST
self.cruncher = fastBatch.run_serial()
~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\mauri\WEIS\weis\aeroelasticse\runFAST_pywrapper.py", line 352, in run_serial
self.cruncher.add_output(iout)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\crunch.py", line 153, in add_output
fname, stats, extremes, dels, damage = self.process_single(output, **kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\crunch.py", line 138, in process_single
output.process(**kwargs)
~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\aeroelastic_output.py", line 682, in process
self.dels, self.damage = self.get_DELs(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\aeroelastic_output.py", line 650, in get_DELs
DELs[chan] = fatparams.compute_del(self[chan], self.elapsed_time,
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
goodman_correction=goodman,
^^^^^^^^^^^^^^^^^^^^^^^^^^^
rainflow_bins=bins)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\fatigue.py", line 354, in compute_del
Nrf, Frf = self.get_rainflow_counts(chan, bins, S_ult=self.S_ult/load2, goodman=goodman)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\pCrunch\fatigue.py", line 317, in get_rainflow_counts
return fatpack.find_range_count(S, bins)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\fatpack\rainflow.py", line 646, in find_range_count
N, bns = np.histogram(ranges, bins=bins, weights=weights)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\numpy\lib\_histograms_impl.py", line 792, in histogram
bin_edges, uniform_bins = _get_bin_edges(a, bins, range, weights)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mauri\miniforge3\envs\weis-env-rir\Lib\site-packages\numpy\lib\_histograms_impl.py", line 449, in _get_bin_edges
raise ValueError(
f'Too many bins for data range. Cannot create {n_equal_bins} '
f'finite-sized bins.')
ValueError: 'aeroelastic' <class FASTLoadCases>: Error calling compute(), Too many bins for data range. Cannot create 100 finite-sized bins.
Expected behavior
Run successfully the WEIS optmisation
Code versions
List versions only if relevant
- Python
- WEIS 2.0
Metadata
Metadata
Assignees
Labels
No labels