01: Onshore layout-to-LCOE

01: Onshore layout-to-LCOE#

In this example, we will demonstrate Ard's ability to run a layout-to-LCOE analysis and optimization.

We can start by loading what we need to run the problem.

from pathlib import Path  # optional, for nice path specifications

import pprint as pp  # optional, for nice printing
import numpy as np  # numerics library
import matplotlib.pyplot as plt  # plotting capabilities

import ard  # technically we only really need this
from ard.utils.io import load_yaml  # we grab a yaml loader here
from ard.api import set_up_ard_model  # the secret sauce
from ard.viz.layout import plot_layout  # a plotting tool!

import openmdao.api as om  # for N2 diagrams from the OpenMDAO backend

%matplotlib inline
RuntimeWarning: <frozen importlib._bootstrap>:241
numpy.ndarray size changed, may indicate binary incompatibility. Expected 16 from C header, got 96 from PyObject

This will do for now. We can probably make it a bit cleaner for a later release.

Now, we can set up a case. We do it a little verbosely so that our documentation system can grab it, you can generally just use relative paths. We grab the file at inputs/ard_system.yaml, which describes the Ard system for this problem. It references, in turn, the inputs/windio.yaml file, which is where we define the plant we want to optimize, and an initial setup for it.

# load input
path_inputs = Path.cwd().absolute() / "inputs"
input_dict = load_yaml(path_inputs / "ard_system.yaml")

# create and setup system
prob = set_up_ard_model(input_dict=input_dict, root_data_path=path_inputs)
Adding top_level
Adding layout2aep
Adding layout to layout2aep
Adding aepFLORIS to layout2aep
	Activating approximate totals on layout2aep
Adding boundary
Adding landuse
Adding collection
Adding spacing_constraint
Adding tcc
Adding landbosse
Adding opex
Adding financese

Here, you should see each of the groups or components described as they are added to the Ard model and, occasionally, some options being turned on on them, like semi-total finite differencing on groups.

Next is some code you can flip on to use the N2 diagram vizualization tools from the backend toolset, OpenMDAO, that we use. This can be a really handy debugging tool, if somewhat tricky to use; turned on it will show a comprehensive view of the system in terms of its components, variables, and connections, although we leave it off for now.

if False:
    # visualize model
    om.n2(prob)

Now, we do a one-shot analysis. The one-shot analysis will run a wind farm as specified in inputs/windio.yaml and with the models specified in inputs/ard_system.yaml, then dump the outputs.

# run the model
prob.run_model()

# collapse the test result data
test_data = {
    "AEP_val": float(prob.get_val("AEP_farm", units="GW*h")[0]),
    "CapEx_val": float(prob.get_val("tcc.tcc", units="MUSD")[0]),
    "BOS_val": float(prob.get_val("landbosse.total_capex", units="MUSD")[0]),
    "OpEx_val": float(prob.get_val("opex.opex", units="MUSD/yr")[0]),
    "LCOE_val": float(prob.get_val("financese.lcoe", units="USD/MW/h")[0]),
    "area_tight": float(prob.get_val("landuse.area_tight", units="km**2")[0]),
    "coll_length": float(prob.get_val("collection.total_length_cables", units="km")[0]),
    "turbine_spacing": float(
        np.min(prob.get_val("spacing_constraint.turbine_spacing", units="km"))
    ),
}

print("\n\nRESULTS:\n")
pp.pprint(test_data)
print("\n\n")
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
RESULTS:

{'AEP_val': 405.9509560128528,
 'BOS_val': 41.68227106807093,
 'CapEx_val': 110.5,
 'LCOE_val': 37.32882040466371,
 'OpEx_val': 3.7400000000000007,
 'area_tight': 13.2496,
 'coll_length': 21.89865877023397,
 'turbine_spacing': 0.91}

Now, we can optimize the same problem! The optimization details are set under the analysis_options header in inputs/ard_system.yaml. Here, we use a four-dimensional rectilinear layout parameterization (\(\theta\)) as design variables, constrain the farm such that the turbines are in the boundaries and satisfactorily spaced, and then we optimize for LCOE. $\( \begin{aligned} \textrm{minimize}_\theta \quad & \mathrm{LCOE}(\theta, \ldots) \\ \textrm{subject to} \quad & f_{\mathrm{spacing}}(\theta, \ldots) < 0 \\ & f_{\mathrm{boundary}}(\theta, \ldots) < 0 \end{aligned} \)$

optimize = True  # set to False to skip optimization
if optimize:
    # run the optimization
    prob.run_driver()
    prob.cleanup()

    # collapse the test result data
    test_data = {
        "AEP_val": float(prob.get_val("AEP_farm", units="GW*h")[0]),
        "CapEx_val": float(prob.get_val("tcc.tcc", units="MUSD")[0]),
        "BOS_val": float(prob.get_val("landbosse.total_capex", units="MUSD")[0]),
        "OpEx_val": float(prob.get_val("opex.opex", units="MUSD/yr")[0]),
        "LCOE_val": float(prob.get_val("financese.lcoe", units="USD/MW/h")[0]),
        "area_tight": float(prob.get_val("landuse.area_tight", units="km**2")[0]),
        "coll_length": float(
            prob.get_val("collection.total_length_cables", units="km")[0]
        ),
        "turbine_spacing": float(
            np.min(prob.get_val("spacing_constraint.turbine_spacing", units="km"))
        ),
    }

    # clean up the recorder
    prob.cleanup()

    # print the results
    print("\n\nRESULTS (opt):\n")
    pp.pprint(test_data)
    print("\n\n")
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|0
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([0.]),
 'angle_skew': array([0.]),
 'spacing_primary': array([7.]),
 'spacing_secondary': array([7.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03732882])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|1
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([0.]),
 'angle_skew': array([0.]),
 'spacing_primary': array([7.]),
 'spacing_secondary': array([7.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03732882])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|2
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([0.]),
 'angle_skew': array([0.]),
 'spacing_primary': array([9.]),
 'spacing_secondary': array([7.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03630168])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|3
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([0.]),
 'angle_skew': array([0.]),
 'spacing_primary': array([9.]),
 'spacing_secondary': array([9.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03622781])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|4
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([2.]),
 'angle_skew': array([0.]),
 'spacing_primary': array([9.]),
 'spacing_secondary': array([9.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03589575])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|5
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([2.]),
 'angle_skew': array([2.]),
 'spacing_primary': array([9.]),
 'spacing_secondary': array([9.])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03576782])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|6
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([2.86472422]),
 'angle_skew': array([0.06259609]),
 'spacing_primary': array([9.88434648]),
 'spacing_secondary': array([7.42956533])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03536154])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|7
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([6.22490777]),
 'angle_skew': array([1.28516698]),
 'spacing_primary': array([11.09630212]),
 'spacing_secondary': array([6.10833465])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03371051])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|8
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.8179189]),
 'angle_skew': array([5.39985749]),
 'spacing_primary': array([10.77910227]),
 'spacing_secondary': array([4.23726263])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03370019])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|9
---------------------------------------------------------------
Design Vars
{'angle_orientation': array([13.43352046]),
 'angle_skew': array([4.42025032]),
 'spacing_primary': array([10.88669378]),
 'spacing_secondary': array([4.23301702])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03363015])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|10
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([11.66932338]),
 'angle_skew': array([3.48135349]),
 'spacing_primary': array([10.9646047]),
 'spacing_secondary': array([4.23638182])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03388484])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|11
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([13.42293284]),
 'angle_skew': array([4.52273825]),
 'spacing_primary': array([11.88118089]),
 'spacing_secondary': array([4.25249819])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03389399])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|12
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([13.9110236]),
 'angle_skew': array([4.37004262]),
 'spacing_primary': array([9.966357]),
 'spacing_secondary': array([5.94253454])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03379574])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|13
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([14.60218028]),
 'angle_skew': array([4.31279762]),
 'spacing_primary': array([8.68334444]),
 'spacing_secondary': array([4.57399363])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03460545])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|14
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([13.3376622]),
 'angle_skew': array([4.92017287]),
 'spacing_primary': array([9.75598626]),
 'spacing_secondary': array([6.51205851])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03361002])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|15
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.99135932]),
 'angle_skew': array([5.60764044]),
 'spacing_primary': array([9.52148067]),
 'spacing_secondary': array([7.10575017])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.0334899])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|16
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([13.18476279]),
 'angle_skew': array([6.18752374]),
 'spacing_primary': array([9.21380918]),
 'spacing_secondary': array([7.83490633])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03376325])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|17
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.98686319]),
 'angle_skew': array([5.61412717]),
 'spacing_primary': array([9.29270633]),
 'spacing_secondary': array([7.00525137])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03348642])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|18
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.53586044]),
 'angle_skew': array([5.41149971]),
 'spacing_primary': array([9.25864229]),
 'spacing_secondary': array([7.07141988])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03346255])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|19
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.44945642]),
 'angle_skew': array([5.52984685]),
 'spacing_primary': array([9.31502188]),
 'spacing_secondary': array([6.94752621])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03348012])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|20
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.51704296]),
 'angle_skew': array([5.47935403]),
 'spacing_primary': array([9.23201967]),
 'spacing_secondary': array([7.13724487])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03346332])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|21
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.52323083]),
 'angle_skew': array([5.25782414]),
 'spacing_primary': array([9.18084627]),
 'spacing_secondary': array([7.17227667])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03347316])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|22
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.51227052]),
 'angle_skew': array([5.39762111]),
 'spacing_primary': array([9.34494138]),
 'spacing_secondary': array([7.11388596])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03346171])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|23
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.70082489]),
 'angle_skew': array([5.43050979]),
 'spacing_primary': array([9.39401697]),
 'spacing_secondary': array([7.14482416])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03346614])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|24
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.47347085]),
 'angle_skew': array([5.42156471]),
 'spacing_primary': array([9.38402472]),
 'spacing_secondary': array([7.19384709])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345868])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|25
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.41339375]),
 'angle_skew': array([5.47605189]),
 'spacing_primary': array([9.44116447]),
 'spacing_secondary': array([7.18131963])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03346057])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|26
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.45375728]),
 'angle_skew': array([5.40969524]),
 'spacing_primary': array([9.37433645]),
 'spacing_secondary': array([7.19257106])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345842])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|27
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.45340396]),
 'angle_skew': array([5.38307751]),
 'spacing_primary': array([9.37723539]),
 'spacing_secondary': array([7.23479627])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.0334599])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|28
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.45253556]),
 'angle_skew': array([5.40533202]),
 'spacing_primary': array([9.38260635]),
 'spacing_secondary': array([7.18924262])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345844])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|29
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43993176]),
 'angle_skew': array([5.42351176]),
 'spacing_primary': array([9.37818197]),
 'spacing_secondary': array([7.19079048])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345825])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|30
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43586364]),
 'angle_skew': array([5.42620726]),
 'spacing_primary': array([9.37048343]),
 'spacing_secondary': array([7.17298831])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345858])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|31
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.4281214]),
 'angle_skew': array([5.42262356]),
 'spacing_primary': array([9.38052079]),
 'spacing_secondary': array([7.2067359])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345894])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|32
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.44630756]),
 'angle_skew': array([5.43006096]),
 'spacing_primary': array([9.38223296]),
 'spacing_secondary': array([7.19057455])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345837])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|33
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.44023832]),
 'angle_skew': array([5.42451457]),
 'spacing_primary': array([9.3761299]),
 'spacing_secondary': array([7.19175968])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345825])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|34
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.4367702]),
 'angle_skew': array([5.42286477]),
 'spacing_primary': array([9.379145]),
 'spacing_secondary': array([7.19448622])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345815])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|35
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.42910293]),
 'angle_skew': array([5.42154764]),
 'spacing_primary': array([9.38028913]),
 'spacing_secondary': array([7.20066434])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345895])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|36
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43718026]),
 'angle_skew': array([5.42059833]),
 'spacing_primary': array([9.37819402]),
 'spacing_secondary': array([7.19468805])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345815])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|37
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.44078788]),
 'angle_skew': array([5.42068967]),
 'spacing_primary': array([9.38013209]),
 'spacing_secondary': array([7.19755522])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345911])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|38
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43705825]),
 'angle_skew': array([5.42019733]),
 'spacing_primary': array([9.37901466]),
 'spacing_secondary': array([7.19429964])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345814])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|39
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43543004]),
 'angle_skew': array([5.42008105]),
 'spacing_primary': array([9.37837642]),
 'spacing_secondary': array([7.19333628])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345816])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|40
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43650783]),
 'angle_skew': array([5.42007117]),
 'spacing_primary': array([9.37924612]),
 'spacing_secondary': array([7.19509181])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345814])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|41
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43681399]),
 'angle_skew': array([5.41935775]),
 'spacing_primary': array([9.38103283]),
 'spacing_secondary': array([7.19554451])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345812])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|42
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43744951]),
 'angle_skew': array([5.41840863]),
 'spacing_primary': array([9.38216842]),
 'spacing_secondary': array([7.19673015])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345907])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|43
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43647661]),
 'angle_skew': array([5.41849403]),
 'spacing_primary': array([9.3808246]),
 'spacing_secondary': array([7.19523337])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345813])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|44
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43548007]),
 'angle_skew': array([5.42007902]),
 'spacing_primary': array([9.38182757]),
 'spacing_secondary': array([7.19451068])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345812])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|45
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43593907]),
 'angle_skew': array([5.42093449]),
 'spacing_primary': array([9.38329658]),
 'spacing_secondary': array([7.19545911])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345907])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|46
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43476898]),
 'angle_skew': array([5.41967583]),
 'spacing_primary': array([9.38145698]),
 'spacing_secondary': array([7.19406972])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345813])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|47
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43556694]),
 'angle_skew': array([5.41997457]),
 'spacing_primary': array([9.38196414]),
 'spacing_secondary': array([7.19435133])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345814])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|48
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43568659]),
 'angle_skew': array([5.42029042]),
 'spacing_primary': array([9.38151731]),
 'spacing_secondary': array([7.194253])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345814])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|49
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43543601]),
 'angle_skew': array([5.42014981]),
 'spacing_primary': array([9.38187278]),
 'spacing_secondary': array([7.194479])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345813])}
Driver debug print for iter coord: rank0:ScipyOptimize_COBYLA|50
----------------------------------------------------------------
Design Vars
{'angle_orientation': array([12.43545572]),
 'angle_skew': array([5.42004809]),
 'spacing_primary': array([9.38175586]),
 'spacing_secondary': array([7.19469318])}
RuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:328
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_deflection/gauss.py:163
invalid value encountered in divideRuntimeWarning: /opt/hostedtoolcache/Python/3.11.13/x64/lib/python3.11/site-packages/floris/core/wake_velocity/gauss.py:80
invalid value encountered in divide
Objectives
{'financese.lcoe': array([0.03345812])}
Return from COBYLA because the objective function has been evaluated MAXFUN times.
Number of function values = 50   Least value of F = 0.03345812328157641   Constraint violation = 0.0
The corresponding X is:
[ 9.38182757  7.19451068 12.43548007  5.42007902]
The constraint value is:
[-6.38182757e+00 -4.19451068e+00 -1.92435480e+02 -5.04200790e+01
 -1.06181724e+01 -1.28054893e+01 -1.67564520e+02 -3.95799210e+01
 -5.37879176e-01 -1.89778955e+00 -2.42306323e+00 -1.70697925e+00
 -8.36489258e-02 -1.39513342e+00 -3.45092019e+00 -4.21153162e+00
 -3.04182446e+00 -6.59776855e-01 -1.23590479e+00 -3.61795239e+00
 -5.99999604e+00 -3.61795239e+00 -1.23590479e+00 -6.59776855e-01
 -3.04182446e+00 -4.21153162e+00 -3.45092019e+00 -1.39513342e+00
 -8.36489258e-02 -1.70697925e+00 -2.42306323e+00 -1.89778955e+00
 -5.37879176e-01 -6.67637584e-01 -1.88727517e+00 -3.10691275e+00
 -4.32655034e+00 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00
 -3.13864829e+00 -4.32826959e+00 -1.32697381e+00 -1.58929155e+00
 -2.38308912e+00 -3.40013846e+00 -4.50755338e+00 -2.26646072e+00
 -2.41141750e+00 -2.99694315e+00 -3.85063368e+00 -4.84674067e+00
 -3.20594762e+00 -3.28776931e+00 -3.73058311e+00 -4.43921623e+00
 -5.31817824e+00 -6.67637584e-01 -1.88727517e+00 -3.10691275e+00
 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00
 -3.13864829e+00 -1.78273496e+00 -1.32697381e+00 -1.58929155e+00
 -2.38308912e+00 -3.40013846e+00 -2.62300079e+00 -2.26646072e+00
 -2.41141750e+00 -2.99694315e+00 -3.85063368e+00 -3.50700776e+00
 -3.20594762e+00 -3.28776931e+00 -3.73058311e+00 -4.43921623e+00
 -6.67637584e-01 -1.88727517e+00 -2.14348287e+00 -1.05629597e+00
 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00 -2.66459194e+00
 -1.78273496e+00 -1.32697381e+00 -1.58929155e+00 -2.38308912e+00
 -3.34576485e+00 -2.62300079e+00 -2.26646072e+00 -2.41141750e+00
 -2.99694315e+00 -4.11746991e+00 -3.50700776e+00 -3.20594762e+00
 -3.28776931e+00 -3.73058311e+00 -6.67637584e-01 -3.31059906e+00
 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01
 -3.71613447e+00 -2.66459194e+00 -1.78273496e+00 -1.32697381e+00
 -1.58929155e+00 -4.27288791e+00 -3.34576485e+00 -2.62300079e+00
 -2.26646072e+00 -2.41141750e+00 -4.93501980e+00 -4.11746991e+00
 -3.50700776e+00 -3.20594762e+00 -3.28776931e+00 -4.50257682e+00
 -3.31059906e+00 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01
 -4.83896574e+00 -3.71613447e+00 -2.66459194e+00 -1.78273496e+00
 -1.32697381e+00 -5.30816617e+00 -4.27288791e+00 -3.34576485e+00
 -2.62300079e+00 -2.26646072e+00 -5.88118389e+00 -4.93501980e+00
 -4.11746991e+00 -3.50700776e+00 -3.20594762e+00 -6.67637584e-01
 -1.88727517e+00 -3.10691275e+00 -4.32655034e+00 -3.87486906e-01
 -9.15544559e-01 -1.97777669e+00 -3.13864829e+00 -4.32826959e+00
 -1.32697381e+00 -1.58929155e+00 -2.38308912e+00 -3.40013846e+00
 -4.50755338e+00 -2.26646072e+00 -2.41141750e+00 -2.99694315e+00
 -3.85063368e+00 -4.84674067e+00 -6.67637584e-01 -1.88727517e+00
 -3.10691275e+00 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01
 -1.97777669e+00 -3.13864829e+00 -1.78273496e+00 -1.32697381e+00
 -1.58929155e+00 -2.38308912e+00 -3.40013846e+00 -2.62300079e+00
 -2.26646072e+00 -2.41141750e+00 -2.99694315e+00 -3.85063368e+00
 -6.67637584e-01 -1.88727517e+00 -2.14348287e+00 -1.05629597e+00
 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00 -2.66459194e+00
 -1.78273496e+00 -1.32697381e+00 -1.58929155e+00 -2.38308912e+00
 -3.34576485e+00 -2.62300079e+00 -2.26646072e+00 -2.41141750e+00
 -2.99694315e+00 -6.67637584e-01 -3.31059906e+00 -2.14348287e+00
 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01 -3.71613447e+00
 -2.66459194e+00 -1.78273496e+00 -1.32697381e+00 -1.58929155e+00
 -4.27288791e+00 -3.34576485e+00 -2.62300079e+00 -2.26646072e+00
 -2.41141750e+00 -4.50257682e+00 -3.31059906e+00 -2.14348287e+00
 -1.05629597e+00 -3.87486906e-01 -4.83896574e+00 -3.71613447e+00
 -2.66459194e+00 -1.78273496e+00 -1.32697381e+00 -5.30816617e+00
 -4.27288791e+00 -3.34576485e+00 -2.62300079e+00 -2.26646072e+00
 -6.67637584e-01 -1.88727517e+00 -3.10691275e+00 -4.32655034e+00
 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00 -3.13864829e+00
 -4.32826959e+00 -1.32697381e+00 -1.58929155e+00 -2.38308912e+00
 -3.40013846e+00 -4.50755338e+00 -6.67637584e-01 -1.88727517e+00
 -3.10691275e+00 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01
 -1.97777669e+00 -3.13864829e+00 -1.78273496e+00 -1.32697381e+00
 -1.58929155e+00 -2.38308912e+00 -3.40013846e+00 -6.67637584e-01
 -1.88727517e+00 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01
 -9.15544559e-01 -1.97777669e+00 -2.66459194e+00 -1.78273496e+00
 -1.32697381e+00 -1.58929155e+00 -2.38308912e+00 -6.67637584e-01
 -3.31059906e+00 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01
 -9.15544559e-01 -3.71613447e+00 -2.66459194e+00 -1.78273496e+00
 -1.32697381e+00 -1.58929155e+00 -4.50257682e+00 -3.31059906e+00
 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01 -4.83896574e+00
 -3.71613447e+00 -2.66459194e+00 -1.78273496e+00 -1.32697381e+00
 -6.67637584e-01 -1.88727517e+00 -3.10691275e+00 -4.32655034e+00
 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00 -3.13864829e+00
 -4.32826959e+00 -6.67637584e-01 -1.88727517e+00 -3.10691275e+00
 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00
 -3.13864829e+00 -6.67637584e-01 -1.88727517e+00 -2.14348287e+00
 -1.05629597e+00 -3.87486906e-01 -9.15544559e-01 -1.97777669e+00
 -6.67637584e-01 -3.31059906e+00 -2.14348287e+00 -1.05629597e+00
 -3.87486906e-01 -9.15544559e-01 -4.50257682e+00 -3.31059906e+00
 -2.14348287e+00 -1.05629597e+00 -3.87486906e-01 -6.67637584e-01
 -1.88727517e+00 -3.10691275e+00 -4.32655034e+00 -6.67637584e-01
 -1.88727517e+00 -3.10691275e+00 -6.67637584e-01 -1.88727517e+00
 -6.67637584e-01]

Optimization FAILED.
Return from COBYLA because the objective function has been evaluated MAXFUN times.
-----------------------------------
RESULTS (opt):

{'AEP_val': 453.7674329533471,
 'BOS_val': 42.06275855217371,
 'CapEx_val': 110.5,
 'LCOE_val': 33.45812367493978,
 'OpEx_val': 3.7400000000000007,
 'area_tight': 18.251690378005875,
 'coll_length': 24.305983955949202,
 'turbine_spacing': 0.9395106897687867}
plot_layout(
    prob,
    input_dict=input_dict,
    show_image=True,
    include_cable_routing=True,
)
plt.show()
../../_images/25b2f8accd03a0574659b9a43701234b734dab3002095d0c411ffeefbe32baa0.png

The result: a farm that fits in a stop-sign domain and minimzes the LCOE.