ard.cost.orbit_wrap#

Functions

generate_orbit_location_from_graph(graph, ...)

go from a optiwindnet graph to an ORBIT input CSV

Classes

ORBITDetail(**kwargs)

Wrapper for WISDEM's ORBIT offshore BOS calculators.

ORBITDetailedGroup(**kwargs)

wrapper for ORBIT-WISDEM Fixed Substructure API, allowing manual IVC incorporation

ORBITWisdemDetail(**kwargs)

ORBIT-WISDEM Fixed Substructure API, modified for detailed layouts

ard.cost.orbit_wrap.generate_orbit_location_from_graph(graph, X_turbines, Y_turbines, X_substations, Y_substations, allow_branching_approximation=False)[source]#

go from a optiwindnet graph to an ORBIT input CSV

convert a optiwindnet graph representation of a collection system and get to a best-possible approximation of the same collection system for compatibility with ORBIT. ORBIT doesn't allow branching and optiwindnet does by default, so we allow some cable duplication if necessary to get a conservative approximation of the BOS costs if the graph isn't compatible with ORBIT

Parameters:
  • graph (networkx.Graph) -- the graph representation of the collection system design

  • X_turbines (np.array) -- the cartesian X locations, in kilometers, of the turbines

  • Y_turbines (np.array) -- the cartesian Y locations, in kilometers, of the turbines

  • X_substations (np.array) -- the cartesian X locations, in kilometers, of the substations

  • Y_substations (np.array) -- the cartesian Y locations, in kilometers, of the substations

Returns:

a dataframe formatted for ORBIT to specify a farm layout

Return type:

pandas.DataFrame

Raises:

RecursionError -- if the recursive setup seems to be stuck in a loop

class ard.cost.orbit_wrap.ORBITDetail(**kwargs)[source]#

Wrapper for WISDEM's ORBIT offshore BOS calculators.

A thicker wrapper of wisdem.orbit_api that 1) replaces capabilities that assume a grid farm layout that is default in WISDEM's ORBIT with a custom array layout, and 2) traps warning messages that are recognized not to be issues.

See: WISDEM/ORBIT

initialize()[source]#

Initialize for API connections.

setup()[source]#

Define all input variables from all models.

class ard.cost.orbit_wrap.ORBITWisdemDetail(**kwargs)[source]#

ORBIT-WISDEM Fixed Substructure API, modified for detailed layouts

initialize()[source]#

Initialize the API.

setup()[source]#

Define all the inputs.

compile_orbit_config_file(inputs, outputs, discrete_inputs, discrete_outputs)[source]#

Compiles the ORBIT configuration dictionary.

compute(inputs, outputs, discrete_inputs, discrete_outputs)[source]#

Creates and runs the project, then gathers the results.

class ard.cost.orbit_wrap.ORBITDetailedGroup(**kwargs)[source]#

wrapper for ORBIT-WISDEM Fixed Substructure API, allowing manual IVC incorporation

initialize()[source]#

Initialize the group and declare options.

setup()[source]#

Build this group.

This method should be overidden by your Group's method. The reason for using this method to add subsystem is to save memory and setup time when using your Group while running under MPI. This avoids the creation of systems that will not be used in the current process.

You may call 'add_subsystem' to add systems to this group. You may also issue connections, and set the linear and nonlinear solvers for this group level. You cannot safely change anything on children systems; use the 'configure' method instead.

Available attributes:

name pathname comm options