Skip to content

Cannot run the frequency domain RAFT optimisaion in WEIS examples #450

@maucollu

Description

@maucollu

Description

Unable to run the umaine_semi_raft_opt_driver.py

Steps to reproduce issue

Tried on a Mac and Windows machine, same result

  1. Installed WEIS 2.0 (all ok)
  2. cd to the WEIS/examples/04_frequency_domain_analysis_design
  3. python

Current behavior

DeprecationWarning: /Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/jsonmerge/__init__.py:27
Accessing Draft4Validator.resolver is deprecated as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library, which provides more compliant referencing behavior as well as more flexible APIs for customization.DeprecationWarning: /Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/jsonmerge/__init__.py:27
Accessing Draft4Validator.resolver is deprecated as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library, which provides more compliant referencing behavior as well as more flexible APIs for customization.DeprecationWarning: <frozen importlib._bootstrap>:488
builtin type SwigPyPacked has no __module__ attributeDeprecationWarning: <frozen importlib._bootstrap>:488
builtin type SwigPyObject has no __module__ attributeWARNING: AggregatedJoints hasn't included rectangular yet
WARNING: AggregatedJoints hasn't included rectangular yet
WARNING: AggregatedJoints hasn't included rectangular yet
The ROSCO (modeling) ps_percent does not match the WindIO (geometry) ps_percent.  Using the ROSCO value of 0.85.
/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/driver.py:776: OpenMDAOWarning:NLoptDriver: No matches for pattern '*_df' in recording_options['excludes'].
/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/visualization/n2_viewer/n2_viewer.py:115: OpenMDAOWarning:attempt to get argmin of an empty sequence
Driver debug print for iter coord: rank0:NLopt_LN_COBYLA|0
----------------------------------------------------------
Design Vars
{'floating.jointdv_0': array([-20.]),
 'floating.jointdv_1': array([51.75]),
 'floating.memgrp1.outer_diameter_in': array([12.5])}


================
wisdem.wt.wt_rna
================
NL: NLBGS 1 ; 4.83665354e+11 1
NL: NLBGS 2 ; 68270.0164 1.41151347e-07
NL: NLBGS 3 ; 0 0
NL: NLBGS Converged
Nonlinear constraints
{'raft.Max_Offset': array([0.]),
 'raft.Max_PtfmPitch': array([0.]),
 'raft.rotor_overspeed': array([0.]),
 'sse_tune.tune_rosco.PC_Ki': array([0.]),
 'sse_tune.tune_rosco.PC_Kp': array([0.])}

Linear constraints
None

Objectives
{'floatingse.platform_mass': array([0.])}

Traceback (most recent call last):
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/system.py", line 2992, in _call_user_function
    yield
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/explicitcomponent.py", line 302, in _compute_wrapper
    self.compute(self._inputs, self._outputs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/wisdem/commonse/cylinder_member.py", line 2451, in compute
    s_ghost1 = float(inputs["s_ghost1"])
TypeError: only 0-dimensional arrays can be converted to Python scalars

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/mcollu/WEIS/examples/04_frequency_domain_analysis_design/umaine_semi_raft_opt_driver.py", line 14, in <module>
    wt_opt, modeling_options, opt_options = weis_main(fname_wt_input,
                                            ~~~~~~~~~^^^^^^^^^^^^^^^^
                                                     fname_modeling_options,
                                                     ^^^^^^^^^^^^^^^^^^^^^^^
                                                     fname_analysis_options,
                                                     ^^^^^^^^^^^^^^^^^^^^^^^
                                                     test_run=TEST_RUN
                                                     ^^^^^^^^^^^^^^^^^
                                                     )
                                                     ^
  File "/Users/mcollu/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 "/Users/mcollu/WEIS/weis/glue_code/runWEIS.py", line 185, in run_weis
    wt_opt.run_driver()
    ~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/problem.py", line 728, in run_driver
    return driver._run()
           ~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/driver.py", line 829, in _run
    self.result.success = not self.run()
                              ~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/wisdem/optimization_drivers/nlopt_driver.py", line 233, in run
    model.run_solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/system.py", line 5151, in run_solve_nonlinear
    self._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/group.py", line 3846, in _solve_nonlinear
    self._nonlinear_solver._solve_with_cache_check()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 26, in _solve_with_cache_check
    self.solve()  # don't use caching
    ~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/nonlinear/nonlinear_runonce.py", line 45, in solve
    self._gs_iter()
    ~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/solvers/solver.py", line 937, in _gs_iter
    subsys._solve_nonlinear()
    ~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/explicitcomponent.py", line 328, in _solve_nonlinear
    self._compute_wrapper()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/explicitcomponent.py", line 282, in _compute_wrapper
    with self._call_user_function('compute'):
         ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/contextlib.py", line 162, in __exit__
    self.gen.throw(value)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/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 "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/system.py", line 2992, in _call_user_function
    yield
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/openmdao/core/explicitcomponent.py", line 302, in _compute_wrapper
    self.compute(self._inputs, self._outputs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/mcollu/miniforge3/envs/weis-rir-env/lib/python3.13/site-packages/wisdem/commonse/cylinder_member.py", line 2451, in compute
    s_ghost1 = float(inputs["s_ghost1"])
TypeError: 'wisdem.wt.floatingse.prop.member7_Y_pontoon_lower1.base.hydro' <class RectangularMemberHydro>: Error calling compute(), only 0-dimensional arrays can be converted to Python scalars

Expected behavior

That the optimisation run successfully

Code versions

List versions only if relevant

  • WEIS 2.0 (installed on 22 December 2025)
  • python 3.13.11

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions