Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
413 commits
Select commit Hold shift + click to select a range
1e33390
Merge pull request #55 from jaredthomas68/mooringconstraint
cfrontin Apr 18, 2025
2cfffef
Merge pull request #57 from jaredthomas68/offshore-optimization
cfrontin Apr 18, 2025
1f98993
recovering intended behavior for package imports and improved __init_…
cfrontin Apr 18, 2025
186bbce
start offshore example directory and move over mooring constraint san…
cfrontin Apr 21, 2025
d82224c
added optimization demo file and some changes to get things to work.
cfrontin Apr 21, 2025
e03410b
draft of simple mooring design
jaredthomas68 Apr 21, 2025
e5c54e5
run black
jaredthomas68 Apr 21, 2025
93a0407
Merge remote-tracking branch 'origin/offshore-development' into offsh…
jaredthomas68 Apr 21, 2025
d1262f8
run black
jaredthomas68 Apr 21, 2025
2324606
Merge pull request #58 from jaredthomas68/offshore-development
cfrontin Apr 22, 2025
3314065
changes before including jareds
cfrontin Apr 22, 2025
fdfcbd3
Merge branch 'offshore-development' of github.com:WISDEM/Ard into off…
cfrontin Apr 22, 2025
4beb555
got optimization working for collection length
cfrontin Apr 22, 2025
c0ed3b6
adjust optiwindnet wrapper to be able to deal with ghost helper nodes…
cfrontin Apr 22, 2025
68b423f
typo fix and updates to optimization problem
cfrontin Apr 22, 2025
9a50c29
black reformat
cfrontin Apr 22, 2025
d402505
offshore optimization demo coming along
cfrontin Apr 22, 2025
18341db
only adjust length for units and do all calculations in km
jaredthomas68 Apr 22, 2025
e495796
run black
jaredthomas68 Apr 22, 2025
5547b78
turn off pyomo solver printing by default
jaredthomas68 Apr 22, 2025
0c7072b
add opt to final print
jaredthomas68 Apr 22, 2025
231ea12
Merge pull request #59 from jaredthomas68/offshore-development
cfrontin Apr 23, 2025
01df555
optimization demo touchup
cfrontin Apr 23, 2025
4ed5b88
add turbine spacing component
jaredthomas68 Apr 23, 2025
e56855e
Merge remote-tracking branch 'origin/offshore-development' into offsh…
jaredthomas68 Apr 23, 2025
9db1490
include turbine_spacing in example
jaredthomas68 Apr 23, 2025
03e925e
run black
jaredthomas68 Apr 23, 2025
d6caa8b
add units to substation locations
cfrontin Apr 23, 2025
c51ff99
black reformat
cfrontin Apr 23, 2025
e31aa37
some vectorization and only jit top-level function used in openmdao c…
jaredthomas68 Apr 23, 2025
21470dc
run black
jaredthomas68 Apr 23, 2025
073d5a0
resolve conflicts
jaredthomas68 Apr 23, 2025
5bb4151
adjust jit usage
jaredthomas68 Apr 23, 2025
0b082b4
comment problematic imports
jaredthomas68 Apr 23, 2025
335692e
import all of ard in fullfarm.py
jaredthomas68 Apr 24, 2025
f6a90af
relative import to avoid circular imports
jaredthomas68 Apr 24, 2025
3d6213b
narrow import scope in spacing.py
jaredthomas68 Apr 24, 2025
d463863
include spacing constraint files
jaredthomas68 Apr 24, 2025
589bea8
correct spacing import
jaredthomas68 Apr 24, 2025
ef176d6
don't rename when using jit
jaredthomas68 Apr 24, 2025
7d66b8e
Merge pull request #60 from jaredthomas68/offshore-development
cfrontin Apr 24, 2025
3a25b43
don't use local import
jaredthomas68 Apr 24, 2025
6726b7a
attempt to deal with circular imports
cfrontin Apr 24, 2025
0f5896d
Merge branch 'offshore-development' into offshore-development
jaredthomas68 Apr 24, 2025
f07aa55
Merge pull request #61 from jaredthomas68/offshore-development
cfrontin Apr 24, 2025
48bd63b
working on tracking down real source of circular import
cfrontin Apr 24, 2025
ebd1e02
i think i fixed the package structure
cfrontin Apr 24, 2025
6bf6d24
commiting in some prototype stuff.
cfrontin Apr 25, 2025
8c207e8
Merge branch 'main' into develop
cfrontin Apr 29, 2025
f6a8390
Merge branch 'develop' into offshore-development
cfrontin Apr 29, 2025
602cf20
switch to floating in example
jaredthomas68 May 1, 2025
6d2c469
Merge pull request #65 from jaredthomas68/offshore-development
cfrontin May 2, 2025
1db6308
make utils directory and include geometery functions for boundary han…
jaredthomas68 May 2, 2025
3875622
set up to test broken up utils
jaredthomas68 May 2, 2025
bbc2fe4
mimic new file structure in unit tests
jaredthomas68 May 2, 2025
ae8c13b
complete refactoring changes for new utils organization
jaredthomas68 May 2, 2025
41e0282
remove boundary work for organization pr
jaredthomas68 May 2, 2025
7dbf156
refactor ard.utils.utils to ard.utils.core and remove init import of …
jaredthomas68 May 2, 2025
a14788d
fix typo
jaredthomas68 May 2, 2025
2cda91c
run black
jaredthomas68 May 2, 2025
71873f1
add initial documentation explanation for utils
jaredthomas68 May 6, 2025
f74470d
move create_FLORIS_turbine to floris.py and for load_turbine_spec to …
jaredthomas68 May 6, 2025
a5574b6
update docs for utils with new io file
jaredthomas68 May 6, 2025
60d5a33
include io.py
jaredthomas68 May 6, 2025
9036584
Merge pull request #66 from jaredthomas68/organize_utils
cfrontin May 6, 2025
64ea6e5
Feature/offshore development geomorphology (#64)
cfrontin May 9, 2025
c5e2f85
Boundary (#67)
jaredthomas68 May 9, 2025
3820332
add replace markers
cfrontin May 9, 2025
6e8c02c
fix opt demo
jaredthomas68 May 9, 2025
8e1be01
Merge remote-tracking branch 'origin/offshore-development' into offsh…
jaredthomas68 May 9, 2025
65e2492
Merge branch 'main' into develop
cfrontin May 9, 2025
5325eab
Merge branch 'main' into develop
cfrontin May 9, 2025
a648e3b
silly un-reversion to preserve history
cfrontin May 9, 2025
4a06ad2
Propogate python version (#70)
cfrontin May 12, 2025
574a518
Pull up testing settings to match develop and main
cfrontin May 15, 2025
9afea83
Docs (#71)
jaredthomas68 May 16, 2025
220189e
Offshore development: improve documentation (#74)
jaredthomas68 May 16, 2025
dd2f5de
include offshore fixed-foundation example (#77)
jaredthomas68 May 21, 2025
748a327
Prep for offshore meeting (#78)
cfrontin May 27, 2025
f20dc38
Better temporary script (#79)
cfrontin May 27, 2025
8c3d7ec
Landbosse cable connection from optiwindnet (#80)
jaredthomas68 May 30, 2025
6fe5368
prepartory merge for offshore-development into develop without bringi…
jaredthomas68 May 30, 2025
adefedb
point to floris release version instead of develop
jaredthomas68 May 30, 2025
a7d38b5
remove detailed mooring import
jaredthomas68 May 30, 2025
cabda1c
remove unnecessary commented code
jaredthomas68 May 30, 2025
073abe2
run black
jaredthomas68 May 30, 2025
2907bbb
remove secondary setup_partials method from PlaceholderAEP
jaredthomas68 May 30, 2025
bd51188
Merge branch 'develop' into offshore-dev-early-merge-2
cfrontin Jun 2, 2025
e985169
Feature/bos layout improvement (#73)
cfrontin Jun 2, 2025
deac8f0
Merge branch 'offshore-development' into offshore-dev-early-merge-2
jaredthomas68 Jun 2, 2025
4c4534f
Merge remote-tracking branch 'myfork/offshore-dev-early-merge-2' into…
jaredthomas68 Jun 2, 2025
bbbd1bb
Merge pull request #88 from jaredthomas68/offshore-dev-early-merge-2
jaredthomas68 Jun 2, 2025
b3c5bd6
add glue design doc temporarily (#89)
cfrontin Jun 2, 2025
693ca35
copy in input files for IEA 740 10 ROWP
jaredthomas68 Jun 5, 2025
4a78304
reorganize example 01 a bit
jaredthomas68 Jun 6, 2025
58e6b5c
wip
jaredthomas68 Jun 6, 2025
76f63fe
glue code working, but not with wisdem yet
jaredthomas68 Jun 6, 2025
4e2f28c
minor typo correction
jaredthomas68 Jun 6, 2025
361a82d
recursive glue mostly working
jaredthomas68 Jun 9, 2025
1b8bb3e
run script and input file for glue code example
jaredthomas68 Jun 9, 2025
51c66e0
attempt to get laten variable setting working with glue code
jaredthomas68 Jun 9, 2025
c8e560e
remove spacing connection to landbosse in favor of approximation from…
jaredthomas68 Jun 10, 2025
7092b84
update wisdem wrap and onshore and offshore examples to accomodate mo…
jaredthomas68 Jun 12, 2025
1f2ee48
correct logic and which landbosse components are used
jaredthomas68 Jun 12, 2025
209b995
remove unneeded group and adjust calls from group to component
jaredthomas68 Jun 17, 2025
e657e61
run black
jaredthomas68 Jun 17, 2025
47fcf4f
more comments, and break out duplicate code into its own function
jaredthomas68 Jun 17, 2025
a487f30
add test for set_values
jaredthomas68 Jun 17, 2025
e0af264
try turning off numba jit to see if that solves the numba problem
jaredthomas68 Jun 17, 2025
0ba15e0
remove disable numba jit
jaredthomas68 Jun 17, 2025
d97b2a8
address circular import
jaredthomas68 Jun 18, 2025
5d0ea2b
pin numpy
jaredthomas68 Jun 18, 2025
0e74107
only install ard once for each test suite
jaredthomas68 Jun 18, 2025
5fe572e
pin numpy to 1.24.3
jaredthomas68 Jun 18, 2025
11f3406
pin numpy to 2.0
jaredthomas68 Jun 18, 2025
54b185e
pin numpy < 2.3
jaredthomas68 Jun 18, 2025
8b2b6a4
cap numpy at 2.3 for numba compatibility
jaredthomas68 Jun 18, 2025
88bd3c0
restrict python version to less than 3.13
jaredthomas68 Jun 18, 2025
3595653
Merge pull request #97 from jaredthomas68/bugfix
jaredthomas68 Jun 23, 2025
3f114bc
Merge branch 'main' into develop
cfrontin Jun 23, 2025
712563b
remove comments
cfrontin Jun 23, 2025
9628a80
Merge branch 'develop' into gluedraft
cfrontin Jun 23, 2025
54e1494
merge develop into feature/wisdem
jaredthomas68 Jun 23, 2025
4f07c7f
use test dependencies for optiwindnet
jaredthomas68 Jun 23, 2025
9820637
pin optiwindnet version
jaredthomas68 Jun 23, 2025
f7db0a8
Merge pull request #96 from jaredthomas68/feature/wisdem
jaredthomas68 Jun 23, 2025
4f8a180
fix merge conflicts
jaredthomas68 Jun 23, 2025
e38be0e
Merge remote-tracking branch 'myfork/gluedraft' into gluedraft
jaredthomas68 Jun 23, 2025
325fb57
run black
jaredthomas68 Jun 23, 2025
b034fd4
Develop (#99)
cfrontin Jun 23, 2025
4e96ad1
Merge branch 'develop' into gluedraft
cfrontin Jun 23, 2025
12d23c9
get latent variable setting working automatically
jaredthomas68 Jun 23, 2025
2dcc163
get 02_onshore running
jaredthomas68 Jun 24, 2025
dd19ebf
fix mapping bug in glue code
jaredthomas68 Jun 24, 2025
d3e6fc6
get optimization working for onshore example using glue code
jaredthomas68 Jun 24, 2025
c9869b9
Merge remote-tracking branch 'myfork/gluedraft' into gluedraft
jaredthomas68 Jun 24, 2025
5493937
optimization onshore example working with gluecode prototype
jaredthomas68 Jun 24, 2025
45a34bb
include convergence plot
jaredthomas68 Jun 24, 2025
1dad700
run black
jaredthomas68 Jun 24, 2025
4ceaac1
remove commented connections
jaredthomas68 Jun 25, 2025
0f51aba
update onshore example for new glue code
jaredthomas68 Jun 25, 2025
2d2d2ec
update file paths
jaredthomas68 Jun 25, 2025
175a21b
update onshore example to use set_up_ard_model
jaredthomas68 Jun 26, 2025
46ce02b
Improve feature/system tests (#100)
cfrontin Jun 30, 2025
430de3f
Feature/wisdem upgrade (#102)
cfrontin Jul 2, 2025
4a1bf66
wip creating default systems for ard api
jaredthomas68 Jul 2, 2025
d81097e
resolve merge conflict
jaredthomas68 Jul 2, 2025
ad62862
move LCOE stack tests into api test directory
jaredthomas68 Jul 3, 2025
5fc0f88
wip api
jaredthomas68 Jul 3, 2025
c260431
api unit test
jaredthomas68 Jul 3, 2025
dc4acfa
bring clarity to pyrite test
jaredthomas68 Jul 3, 2025
72f2d95
working out wisdem differences
jaredthomas68 Jul 3, 2025
f7d85fd
wip debug wisdem
jaredthomas68 Jul 3, 2025
94ecd60
roll back to older ard compoent
jaredthomas68 Jul 3, 2025
f6d6e84
wip working on debugging LandBOSSE Ard wrapper
jaredthomas68 Jul 3, 2025
24d7dba
restore old landbosse comp naming
jaredthomas68 Jul 3, 2025
9356e60
get all tests passing
jaredthomas68 Jul 3, 2025
03dad17
convert LCOE stack test to new glue code
jaredthomas68 Jul 3, 2025
6cb2170
fixing tests with new inputs
jaredthomas68 Jul 7, 2025
a597150
new files to work with path restrictions
jaredthomas68 Jul 7, 2025
e197b4b
all tests passing again
jaredthomas68 Jul 7, 2025
5bbfbf7
set up offshore fixed bottom and floating w/o cable default systems
jaredthomas68 Jul 8, 2025
866bc84
include new default systems in unit test
jaredthomas68 Jul 8, 2025
d4371bc
run black
jaredthomas68 Jul 8, 2025
d1390e7
include default system design files
jaredthomas68 Jul 8, 2025
75d9961
including initial des var values in modeling options
jaredthomas68 Jul 8, 2025
102510c
use total capex from landbosse and bos capex in financese
jaredthomas68 Jul 8, 2025
5c46c86
use decorator
jaredthomas68 Jul 8, 2025
72157da
include input files
jaredthomas68 Jul 8, 2025
8e39043
run black
jaredthomas68 Jul 8, 2025
9185146
include input files for onshore example
jaredthomas68 Jul 8, 2025
bdc4350
include deprecated api
jaredthomas68 Jul 8, 2025
72ed9a4
working towards offshore optimization demo refactor, still not matchi…
cfrontin Jul 8, 2025
7050d1e
black refactor
cfrontin Jul 8, 2025
ffa9f79
black reformat 2
cfrontin Jul 8, 2025
7e6b80a
fixed 03_offshore
cfrontin Jul 14, 2025
80cf106
cleared out offshore folder of extraneous example data, still need to…
cfrontin Jul 14, 2025
6101f5b
remove old FLORIS power comparison examples, they're no longer relevant
cfrontin Jul 14, 2025
ea17984
debugging
jaredthomas68 Jul 14, 2025
7c1c527
finish merge
jaredthomas68 Jul 14, 2025
be5d6e1
run black
jaredthomas68 Jul 14, 2025
144dda7
edit .gitignore and include example 04_offshore_fixed
jaredthomas68 Jul 14, 2025
b024643
update offshore fixed example for glue code
jaredthomas68 Jul 14, 2025
9f4b8d2
swap numbering for fixed and floating examples
jaredthomas68 Jul 14, 2025
46271a8
run black
jaredthomas68 Jul 14, 2025
10c4eb9
include inputs for all examples
jaredthomas68 Jul 14, 2025
db57f26
include system tests for new glue code for floating and offshore fixed
jaredthomas68 Jul 14, 2025
06f37dc
run black
jaredthomas68 Jul 14, 2025
d9eefd8
include offshore fixed and floating systems defaults with cable design
jaredthomas68 Jul 14, 2025
c802750
include system test inputs for offshore fixed and floating tests
jaredthomas68 Jul 14, 2025
b071b9d
close back ticks in docstring
jaredthomas68 Jul 14, 2025
099c8e5
remove deprecated examples
jaredthomas68 Jul 14, 2025
5efe4f6
update doc strings
jaredthomas68 Jul 14, 2025
ce6ca4e
update doc string
jaredthomas68 Jul 14, 2025
4e60bc8
update doc string
jaredthomas68 Jul 14, 2025
e9559bb
updated the example, removed LCOE stack
cfrontin Jul 15, 2025
9ee3b13
Merge branch 'gluedraft' of github.com:jaredthomas68/Ard into gluedraft
cfrontin Jul 15, 2025
92fda37
black reformat
cfrontin Jul 15, 2025
dc4bc64
include approx totals in all default systems and remove old debug code
jaredthomas68 Jul 16, 2025
39daa84
Merge remote-tracking branch 'myfork/gluedraft' into gluedraft
jaredthomas68 Jul 16, 2025
eec3645
run black
jaredthomas68 Jul 16, 2025
fa4147a
Update test/unit/ard/farm_aero/test_templates.py
jaredthomas68 Jul 16, 2025
984a9e4
Update test/system/ard/api/test_LCOE_OFL_stack.py
jaredthomas68 Jul 16, 2025
9fbda7a
Update test/unit/ard/farm_aero/test_templates.py
jaredthomas68 Jul 16, 2025
20e00c4
remove trailing comma and comment out unused check tol
jaredthomas68 Jul 16, 2025
a38e76f
Merge remote-tracking branch 'myfork/gluedraft' into gluedraft
jaredthomas68 Jul 16, 2025
a8e42b8
Update OptiWindNet to version 0.0.4 (#101)
mdealencar Jul 16, 2025
164ae37
Merge remote-tracking branch 'upstream/develop' into gluedraft
cfrontin Jul 16, 2025
9c1f57c
minor changes to accomodate optiwind net version update
jaredthomas68 Jul 17, 2025
2ca59aa
run black
jaredthomas68 Jul 17, 2025
6890791
Merge pull request #94 from jaredthomas68/gluedraft
jaredthomas68 Jul 17, 2025
d386e95
Bugfix: gluecode model options (#113)
cfrontin Jul 21, 2025
10d4eb8
Update README.md with new badge order
cfrontin Jul 30, 2025
8a35ada
ORBIT BOS upgrade for detailed farms, redux (#106)
cfrontin Jul 30, 2025
f1e771a
Update README.md badge
cfrontin Jul 31, 2025
bfb9a54
hacky working with h2i
jaredthomas68 Aug 13, 2025
e69471e
include comments
jaredthomas68 Aug 13, 2025
f0892d1
enable passing opt_settings to openmdao
jaredthomas68 Aug 22, 2025
7c75195
Merge remote-tracking branch 'origin/develop' into develop
jaredthomas68 Aug 22, 2025
f8730d9
Improved OM driver interface, take II (#123)
cfrontin Aug 22, 2025
15cc417
WindIO conversion (#120)
cfrontin Aug 27, 2025
e4eb9a6
resolve conflict
jaredthomas68 Aug 28, 2025
28d752b
resolve merge conflicts
jaredthomas68 Aug 28, 2025
36d9f28
wip: time series wind
jaredthomas68 Aug 28, 2025
a41db3b
Hotfix/floris zeroed prob (#127)
cfrontin Sep 3, 2025
e7fb27b
example 05
jaredthomas68 Sep 9, 2025
20ac5b0
working optimization with timeseries
jaredthomas68 Sep 11, 2025
f5c0df6
Cherry-pick key general improvements from offshore-development for be…
cfrontin Sep 12, 2025
a6e2074
Docs overhaul (#133)
cfrontin Sep 15, 2025
97c03a3
fix: make optiwindnet wrapper compatible with optiwindnet v0.0.6 (#135)
mdealencar Sep 15, 2025
f7fa11d
Fix badge link in README.md
cfrontin Sep 17, 2025
ae59a4e
Merge remote-tracking branch 'origin/develop' into develop
jaredthomas68 Sep 19, 2025
312c823
fix to floris reference height (#140)
cfrontin Oct 1, 2025
4a2a2c0
Merge remote-tracking branch 'origin/develop' into develop
jaredthomas68 Oct 4, 2025
81c6417
Merge branch 'develop' into h2i
jaredthomas68 Oct 4, 2025
0456628
65 turbine example with timeseries wind working
jaredthomas68 Oct 4, 2025
aeadbe2
get time-series example working
jaredthomas68 Oct 6, 2025
b376bd7
add notebook version of onshore batch example
jaredthomas68 Oct 6, 2025
d528514
allow optional return of turbine outputs (power, thrust, etc)
jaredthomas68 Oct 7, 2025
ef83f19
run black
jaredthomas68 Oct 7, 2025
02745a6
remove unused input
jaredthomas68 Oct 7, 2025
f1b0b86
run black
jaredthomas68 Oct 7, 2025
11b064a
update examples with new flag
jaredthomas68 Oct 7, 2025
56c92a3
Merge commit '11b064a46c7932802bce0725246bce30f04fb639' into h2i
jaredthomas68 Oct 7, 2025
9ef3112
fix typo
jaredthomas68 Oct 7, 2025
095a33a
Merge pull request #144 from jaredthomas68/h2i
jaredthomas68 Oct 8, 2025
c851bdc
Develop updates to incorporate main (#146)
cfrontin Oct 20, 2025
0c5fb93
Merge branch 'main' into develop
cfrontin Oct 20, 2025
822dece
Merge branch 'main' into develop
cfrontin Oct 20, 2025
c0dbde2
Develop (#148)
cfrontin Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/python-tests-consolidated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ jobs:
test-examples:
name: Run all examples
needs: find-examples
if: needs.find-examples.outputs.scripts != '[]' # Add this line
if: needs.find-examples.outputs.scripts != '[]' # skip empty
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -208,7 +208,7 @@ jobs:
find-examples_nb:
name: Find all example notebooks
needs: [test-unit, test-system]
if: needs.find-examples_nb.outputs.scripts != '[]' # Add this line
if: needs.find-examples_nb.outputs.scripts != '[]' # skip empty
runs-on: ubuntu-latest
steps:
- name: Checkout code
Expand Down
104 changes: 104 additions & 0 deletions ard/api/default_systems/ard_system_onshore_batch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
type: group
systems:
layout2aep:
type: group
promotes: ["*"]
approx_totals:
method: "fd"
step: 1.0E-3
form: "central"
step_calc: "rel_avg"
systems:
layout:
type: component
module: ard.layout.gridfarm
object: GridFarmLayout
promotes: ["*"]
kwargs:
modeling_options:
aepFLORIS:
type: component
module: ard.farm_aero.floris
object: FLORISBatchPower
promotes: ["x_turbines", "y_turbines", "AEP_farm"]
kwargs:
modeling_options:
data_path:
case_title: "default"
approx_totals:
method: "fd"
step: 1.0E-3
form: "central"
step_calc: "rel_avg"
boundary:
type: component
module: ard.layout.boundary
object: FarmBoundaryDistancePolygon
promotes: ["*"]
kwargs:
modeling_options:
landuse:
type: component
module: ard.layout.gridfarm
object: GridFarmLanduse
promotes: ["*"]
kwargs:
modeling_options:
collection:
type: component
module: ard.collection.optiwindnet_wrap
object: OptiwindnetCollection
promotes: ["*"]
kwargs:
modeling_options:
spacing_constraint:
type: component
module: ard.layout.spacing
object: TurbineSpacing
promotes: ["*"]
kwargs:
modeling_options:
tcc:
type: component
module: ard.cost.wisdem_wrap
object: TurbineCapitalCosts
promotes: [
"turbine_number",
"machine_rating",
"tcc_per_kW",
"offset_tcc_per_kW",
]
landbosse:
type: component
module: ard.cost.wisdem_wrap
object: LandBOSSEWithSpacingApproximations
promotes: [
"total_length_cables",
]
kwargs:
modeling_options:
opex:
type: component
module: ard.cost.wisdem_wrap
object: OperatingExpenses
promotes: [
"turbine_number",
"machine_rating",
"opex_per_kW"
]
financese:
type: component
module: ard.cost.wisdem_wrap
object: FinanceSEGroup
promotes: [
"turbine_number",
"machine_rating",
"tcc_per_kW",
"offset_tcc_per_kW",
"opex_per_kW",
]
kwargs:
modeling_options:
connections:
- ["AEP_farm", "financese.plant_aep_in"]
- ["landbosse.total_capex_kW", "financese.bos_per_kW"]
1 change: 1 addition & 0 deletions ard/api/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def set_up_ard_model(input_dict: Union[str, dict], root_data_path: str = None):
# load default system if requested and available
available_default_systems = [
"onshore",
"onshore_batch",
"onshore_no_cable_design",
"offshore_monopile",
"offshore_monopile_no_cable_design",
Expand Down
7 changes: 4 additions & 3 deletions ard/farm_aero/floris.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,13 +374,14 @@ def compute(self, inputs, outputs):
self.fmodel.run()

# dump the yaml to re-run this case on demand
FLORISFarmComponent.dump_floris_yamlfile(self, self.dir_floris)
# FLORISFarmComponent.dump_floris_yamlfile(self, self.dir_floris)

# FLORIS computes the powers
outputs["AEP_farm"] = FLORISFarmComponent.get_AEP_farm(self)
outputs["power_farm"] = FLORISFarmComponent.get_power_farm(self)
outputs["power_turbines"] = FLORISFarmComponent.get_power_turbines(self)
outputs["thrust_turbines"] = FLORISFarmComponent.get_thrust_turbines(self)
if self.options["modeling_options"]["aero"]["return_turbine_output"]:
outputs["power_turbines"] = FLORISFarmComponent.get_power_turbines(self)
outputs["thrust_turbines"] = FLORISFarmComponent.get_thrust_turbines(self)


class FLORISAEP(templates.FarmAEPTemplate):
Expand Down
21 changes: 11 additions & 10 deletions ard/farm_aero/placeholder.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,17 @@ def setup(self):
np.zeros((self.N_wind_conditions,)),
units="W",
)
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)
if self.return_turbine_output:
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)

def setup_partials(self):
"""Derivative setup for OM component."""
Expand Down
58 changes: 36 additions & 22 deletions ard/farm_aero/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,12 @@ def setup(self):
# add the outputs we want for a batched power analysis:
# - farm and turbine powers
# - turbine thrusts

# self.add_output(
# "AEP_farm",
# np.array([0.0]),
# units="W*h",
# )
self.add_output(
"AEP_farm",
0.0,
Expand All @@ -322,16 +328,18 @@ def setup(self):
np.zeros((self.N_wind_conditions,)),
units="W",
)
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)

if self.options["modeling_options"]["aero"]["return_turbine_output"]:
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)

def setup_partials(self):
"""Derivative setup for OM component."""
Expand All @@ -357,8 +365,13 @@ def compute(self, inputs, outputs):

# the following should be set
outputs["power_farm"] = np.zeros((self.N_wind_conditions,))
outputs["power_turbines"] = np.zeros((self.N_turbines, self.N_wind_conditions))
outputs["thrust_turbines"] = np.zeros((self.N_turbines, self.N_wind_conditions))
if self.options["modeling_options"]["aero"]["return_turbine_output"]:
outputs["power_turbines"] = np.zeros(
(self.N_turbines, self.N_wind_conditions)
)
outputs["thrust_turbines"] = np.zeros(
(self.N_turbines, self.N_wind_conditions)
)


class FarmAEPTemplate(FarmAeroTemplate):
Expand Down Expand Up @@ -443,16 +456,17 @@ def setup(self):
np.zeros((self.N_wind_conditions,)),
units="W",
)
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)
if self.options["modeling_options"]["aero"]["return_turbine_output"]:
self.add_output(
"power_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="W",
)
self.add_output(
"thrust_turbines",
np.zeros((self.N_turbines, self.N_wind_conditions)),
units="N",
)
# ... more outputs can be added here

def setup_partials(self):
Expand Down
10 changes: 8 additions & 2 deletions ard/layout/gridfarm.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ def setup(self):
angle_skew = self.modeling_options["layout"]["angle_skew"]

# add four-parameter grid farm layout DVs
self.add_input("spacing_primary", spacing_primary)
self.add_input("spacing_secondary", spacing_secondary)
self.add_input("spacing_primary", spacing_primary, units="unitless")
self.add_input("spacing_secondary", spacing_secondary, units="unitless")
self.add_input("angle_orientation", angle_orientation, units="deg")
self.add_input("angle_skew", angle_skew, units="deg")

Expand Down Expand Up @@ -227,20 +227,26 @@ def setup(self):
self.add_input(
"spacing_primary",
self.modeling_options["layout"]["spacing_primary"],
units="unitless",
desc="turbine row spacing in rotor diameters",
)
self.add_input(
"spacing_secondary",
self.modeling_options["layout"]["spacing_secondary"],
units="unitless",
desc="turbine column spacing (along rows) in rotor diameters",
)
self.add_input(
"angle_orientation",
self.modeling_options["layout"]["angle_orientation"],
units="deg",
desc="orientation in degrees clockwise with respect to North",
)
self.add_input(
"angle_skew",
self.modeling_options["layout"]["angle_skew"],
units="deg",
desc="clockwise skew angle of turbine rows",
)

self.add_output(
Expand Down
2 changes: 1 addition & 1 deletion ard/viz/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ def plot_layout(

# show, save, or return
if save_path is not None:
plt.savefig(save_path, save_kwargs)
plt.savefig(save_path, **save_kwargs)

if show_image:
plt.show()
Expand Down
2 changes: 2 additions & 0 deletions examples/01_onshore/inputs/ard_system.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ modeling_options:
spacing_secondary: 7.0
angle_orientation: 0.0
angle_skew: 0.0
aero:
return_turbine_output: True
floris:
peak_shaving_fraction: 0.2
peak_shaving_TI_threshold: 0.0
Expand Down
2 changes: 2 additions & 0 deletions examples/02_offshore_fixed/inputs/ard_system.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ modeling_options: &modeling_options
spacing_secondary: 7.0
angle_orientation: 0.0
angle_skew: 0.0
aero:
return_turbine_output: True
collection:
max_turbines_per_string: 8
solver_name: highs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ modeling_options: &modeling_options
min_mooring_line_length_m: 500.0
N_anchor_dimensions: 2
site_depth: 50.0
aero:
return_turbine_output: True
collection:
max_turbines_per_string: 8
solver_name: highs
Expand Down
51 changes: 51 additions & 0 deletions examples/05_onshore_batch/inputs/NREL_Reference_5MW_126.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Wind Speed [m/s],Power [kW],Cp [-],Thrust [kN],Ct [-]
3,40.52,0.208546508,77.66,1.132034888
4,177.67,0.385795061,121.90,0.999470963
5,403.9,0.449038264,174.88,0.917697381
6,737.59,0.474546985,236.23,0.860849503
7,1187.18,0.480994449,304.55,0.815371198
7.1,1239.25,0.481172749,311.87,0.811614904
7.2,1292.52,0.481235678,319.27,0.807939328
7.3,1347.32,0.481305875,326.77,0.80443352
7.4,1403.26,0.481238912,334.35,0.800993851
7.5,1460.7,0.481167356,342.03,0.79768116
7.6,1519.64,0.481081935,349.82,0.794529244
7.7,1580.17,0.481007003,357.72,0.791495834
7.8,1642.11,0.480880409,365.71,0.788560434
7.9,1705.76,0.480789285,374.51,0.787217182
8,1771.17,0.480737341,384.00,0.787127977
9,2518.55,0.480111543,485.21,0.785839257
10,3448.38,0.479218839,597.48,0.783812219
10.1,3552.14,0.479120347,609.30,0.783568108
10.2,3657.95,0.479022984,621.23,0.783328285
10.3,3765.12,0.478834971,631.75,0.781194418
10.4,3873.93,0.478597234,640.86,0.777292539
10.5,3984.48,0.478324162,650.02,0.773464375
10.6,4096.58,0.477994289,659.23,0.769690236
10.7,4210.72,0.477665338,668.51,0.766001924
10.8,4326.15,0.477253698,677.81,0.762348072
10.9,4443.4,0.476819542,687.17,0.758760824
11,4562.5,0.476368667,696.60,0.755242872
11.1,4683.42,0.475896732,706.08,0.751792927
11.2,4806.16,0.475404347,715.65,0.748434131
11.3,4929.93,0.474814698,725.25,0.745113997
11.4,5000.92,0.469087611,711.09,0.717806682
11.5,5000.16,0.456886723,677.65,0.672204789
11.6,4999.98,0.445156758,654.72,0.63831272
11.7,4999.96,0.433837552,636.70,0.610176496
11.8,4999.98,0.422902868,621.40,0.585456847
11.9,5000,0.412332387,607.97,0.563222111
12,5000,0.402110045,595.94,0.542912273
13,5000.01,0.316270768,514.41,0.399312061
14,5000.01,0.253224057,463.93,0.310517829
15,5000.02,0.205881042,426.43,0.248633226
16,5000,0.169640239,397.20,0.203543725
17,5000.02,0.141430529,373.66,0.169616419
18,5000.03,0.119144335,354.36,0.143478955
19,5000.02,0.101304591,338.30,0.122938861
20,5000.04,0.086856409,324.77,0.106515296
21,5000.02,0.075029591,312.72,0.093026095
22,5000.05,0.065256635,301.23,0.081648606
23,5000.01,0.057109143,291.13,0.072197368
24,5000,0.050263779,282.71,0.064388275
25,5000.04,0.044470536,275.29,0.057782745
Loading
Loading