Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syncing GreenSteel and GreenHEART features #322

Merged
merged 24 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
016df73
limit pyyaml-include version
kbrunik Apr 1, 2024
b1530dd
autoformatter
kbrunik Apr 1, 2024
072586a
merge PR changes
kbrunik Apr 2, 2024
39cb5db
ran black autoformatter
kbrunik Apr 2, 2024
4a21e2f
reformat examples
kbrunik Apr 2, 2024
0231cf0
Merge remote-tracking branch 'upstream/greensteel-eco-sync' into gree…
kbrunik Apr 18, 2024
bd324b4
update variable name
kbrunik Apr 18, 2024
ee7aae2
GreenSteel tests
kbrunik Apr 19, 2024
c92ed97
Merge remote-tracking branch 'upstream/greensteel-eco-sync' into gree…
kbrunik May 1, 2024
9e25783
Merge remote-tracking branch 'jared/uniform-output' into greenheart-l…
kbrunik May 1, 2024
14f1c38
fix ammonia lcoh value
kbrunik May 21, 2024
d50f28c
Merge remote-tracking branch 'upstream/greensteel-eco-sync' into gree…
kbrunik May 21, 2024
28f28dc
update financial inputs.
kbrunik May 24, 2024
db88f3a
update greensteel and greenheart tests
kbrunik May 24, 2024
9dc2f1a
update tests with updated greenheart features
kbrunik May 24, 2024
2f65406
Merge branch 'greensteel-eco-sync' into gs-test-pr
jaredthomas68 May 27, 2024
4e3aa5c
fix input check
jaredthomas68 May 27, 2024
c8191e8
Merge pull request #36 from jaredthomas68/gs-test-pr
kbrunik Jun 5, 2024
4d55862
Merge remote-tracking branch 'upstream/greensteel-eco-sync' into gree…
kbrunik Jun 5, 2024
611ba48
update key value for ss storage
kbrunik Jun 6, 2024
093de7d
update examples with key changes
kbrunik Jun 6, 2024
2f42947
fixed h2 storage sizing bug
kbrunik Jun 6, 2024
81e55f8
clean up hydrogen mgmt logic
kbrunik Jun 7, 2024
137b6ae
fix typo
kbrunik Jun 7, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,11 @@ h2_storage_compressor:
h2_transport_pipe:
outlet_pressure: 10 # bar - from example in code from Jamie #TODO check this value
h2_storage:
size_capacity_from_demand:
flag: True # If True, then storage is sized to provide steady-state storage
capacity_from_max_on_turbine_storage: False # if True, then days of storage is ignored and storage capacity is based on how much h2 storage fits on the turbines in the plant using Kottenstete 2003.
type: "lined_rock_cavern" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 8.57267 # from `hydrogen_storage_duration_hr` = 205.74419987482239 [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
days: 0 #8.57267 # from `hydrogen_storage_duration_hr` = 205.74419987482239 [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)

policy_parameters: # these should be adjusted for inflation prior to application - order of operations: rate in 1992 $,
#then prevailing wage multiplier if applicable, then inflation
Expand All @@ -92,37 +94,44 @@ policy_parameters: # these should be adjusted for inflation prior to application
electricity_itc: 0
electricity_ptc: 0
h2_ptc: 0
h2_storage_itc: 0
option2: # base credit levels with H2
electricity_itc: 0
electricity_ptc: 0.003 # $0.003/kW (this is base, see inflation adjustment in option 3)
h2_ptc: 0.6 # $0.60/kg h2 produced - assumes net zero but not meeting prevailing wage requirements - does this need to be
# adjusted for inflation from 2022 dollars to claim date, probably constant after claim date?
h2_storage_itc: 0.06
option3: # same as option 5, but assuming prevailing wages are met --> 5x multiplier on both PTCs
electricity_itc: 0
electricity_ptc: 0.015 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg 2022 dollars - do not adjust for inflation
h2_storage_itc: 0.3
# bonus options, option 5 and 6 but ITC equivalents
option4: # prevailing wages not met
electricity_itc: 0.06 # %/100 capex
electricity_ptc: 0.00 # $/kW 1992 dollars
h2_ptc: 0.6 # $0.60/kg produced 2022 dollars - assumes net zero but not meeting prevailing wage requirements - does this need to be
# do not adjust for inflation, probably constant after claim date?
h2_storage_itc: 0.06
option5: # prevailing wages met
electricity_itc: 0.30 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.3
option6: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.40 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.4
option7: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.0 # %/100 capex
electricity_ptc: 0.0165 # $/kWh 1992 dollars (0.015*1.1)
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
# you can elect itc_for_h2 in leu of the h2_ptc - this choice is independent of the other tech credit selections
# 6% or %50 for itc_for_h2
h2_storage_itc: 0.5

plant_design:
scenario0:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@

print("LCOE: ", lcoe, "[$/MWh]")
print("LCOH: ", lcoh, "[$/kg]")
print("LCOS: ", lcos, "[$/metric-tonne]")
print("LCOS: ", lcos, "[$/metric-tonne]")
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,11 @@ h2_storage_compressor:
h2_transport_pipe:
outlet_pressure: 10 # bar - from example in code from Jamie #TODO check this value
h2_storage:
size_capacity_from_demand:
flag: True # If True, then storage is sized to provide steady-state storage
capacity_from_max_on_turbine_storage: False # if True, then days of storage is ignored and storage capacity is based on how much h2 storage fits on the turbines in the plant using Kottenstete 2003.
type: "none" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 19.783 # from `hydrogen_storage_duration_hr` = 474.7948370015298 [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
type: "salt_cavern" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 0 #19.783 # from `hydrogen_storage_duration_hr` = 474.7948370015298 [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)

policy_parameters: # these should be adjusted for inflation prior to application - order of operations: rate in 1992 $,
#then prevailing wage multiplier if applicable, then inflation
Expand All @@ -92,37 +94,44 @@ policy_parameters: # these should be adjusted for inflation prior to application
electricity_itc: 0
electricity_ptc: 0
h2_ptc: 0
h2_storage_itc: 0
option2: # base credit levels with H2
electricity_itc: 0
electricity_ptc: 0.003 # $0.003/kW (this is base, see inflation adjustment in option 3)
h2_ptc: 0.6 # $0.60/kg h2 produced - assumes net zero but not meeting prevailing wage requirements - does this need to be
# adjusted for inflation from 2022 dollars to claim date, probably constant after claim date?
h2_storage_itc: 0.06
option3: # same as option 5, but assuming prevailing wages are met --> 5x multiplier on both PTCs
electricity_itc: 0
electricity_ptc: 0.015 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg 2022 dollars - do not adjust for inflation
h2_storage_itc: 0.3
# bonus options, option 5 and 6 but ITC equivalents
option4: # prevailing wages not met
electricity_itc: 0.06 # %/100 capex
electricity_ptc: 0.00 # $/kW 1992 dollars
h2_ptc: 0.6 # $0.60/kg produced 2022 dollars - assumes net zero but not meeting prevailing wage requirements - does this need to be
# do not adjust for inflation, probably constant after claim date?
h2_storage_itc: 0.06
option5: # prevailing wages met
electricity_itc: 0.30 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.3
option6: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.40 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.4
option7: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.0 # %/100 capex
electricity_ptc: 0.0165 # $/kWh 1992 dollars (0.015*1.1)
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
# you can elect itc_for_h2 in leu of the h2_ptc - this choice is independent of the other tech credit selections
# 6% or %50 for itc_for_h2
h2_storage_itc: 0.5

plant_design:
scenario0:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@

print("LCOE: ", lcoe, "[$/MWh]")
print("LCOH: ", lcoh, "[$/kg]")
print("LCOA: ", lcoa, "[$/kg]")
print("LCOA: ", lcoa, "[$/kg]")
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,11 @@ h2_storage_compressor:
h2_transport_pipe:
outlet_pressure: 10 # bar - from example in code from Jamie #TODO check this value
h2_storage:
# capacity_kg: 18750 # kg
size_capacity_from_demand:
flag: True # If True, then storage is sized to provide steady-state storage
capacity_from_max_on_turbine_storage: False # if True, then days of storage is ignored and storage capacity is based on how much h2 storage fits on the turbines in the plant using Kottenstete 2003.
type: "none" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 3 # [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
type: "salt_cavern" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 0 # [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
# platform:
# opex_rate: 0.0111 # % of capex to determine opex (see table 5 in https://www.acm.nl/sites/default/files/documents/study-on-estimation-method-for-additional-efficient-offshore-grid-opex.pdf)
# installation_days: 14 # days
Expand Down Expand Up @@ -118,37 +119,44 @@ policy_parameters: # these should be adjusted for inflation prior to application
electricity_itc: 0
electricity_ptc: 0
h2_ptc: 0
h2_storage_itc: 0
option2: # base credit levels with H2
electricity_itc: 0
electricity_ptc: 0.003 # $0.003/kW (this is base, see inflation adjustment in option 3)
h2_ptc: 0.6 # $0.60/kg h2 produced - assumes net zero but not meeting prevailing wage requirements - does this need to be
# adjusted for inflation from 2022 dollars to claim date, probably constant after claim date?
h2_storage_itc: 0.06
option3: # same as option 5, but assuming prevailing wages are met --> 5x multiplier on both PTCs
electricity_itc: 0
electricity_ptc: 0.015 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg 2022 dollars - do not adjust for inflation
h2_storage_itc: 0.3
# bonus options, option 5 and 6 but ITC equivalents
option4: # prevailing wages not met
electricity_itc: 0.06 # %/100 capex
electricity_ptc: 0.00 # $/kW 1992 dollars
h2_ptc: 0.6 # $0.60/kg produced 2022 dollars - assumes net zero but not meeting prevailing wage requirements - does this need to be
# do not adjust for inflation, probably constant after claim date?
h2_storage_itc: 0.06
option5: # prevailing wages met
electricity_itc: 0.30 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.3
option6: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.40 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.4
option7: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.0 # %/100 capex
electricity_ptc: 0.0165 # $/kWh 1992 dollars (0.015*1.1)
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
# you can elect itc_for_h2 in leu of the h2_ptc - this choice is independent of the other tech credit selections
# 6% or %50 for itc_for_h2
h2_storage_itc: 0.5

plant_design:
scenario0:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

# ORBIT imports
from ORBIT.core.library import initialize_library

initialize_library(os.path.join(os.getcwd(), "./input/"))

# run the stuff
Expand All @@ -32,7 +33,7 @@
filename_turbine_config = "./input/turbines/" + turbine_model + ".yaml"
filename_floris_config = "./input/floris/floris_input_osw_17MW.yaml"
filename_hopp_config = "./input/plant/hopp_config_gom.yaml"
filename_orbit_config= "./input/plant/orbit-config-"+turbine_model+"-gom.yaml"
filename_orbit_config = "./input/plant/orbit-config-" + turbine_model + "-gom.yaml"
filename_greenheart_config = "./input/plant/greenheart_config_offshore_gom.yaml"

config = GreenHeartSimulationConfig(
Expand Down Expand Up @@ -61,4 +62,4 @@
lcoh = prob.get_val("lcoh", units="USD/kg")

print("LCOE: ", lcoe, "[$/MWh]")
print("LCOH: ", lcoh, "[$/kg]")
print("LCOH: ", lcoh, "[$/kg]")
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,11 @@ h2_storage_compressor:
h2_transport_pipe:
outlet_pressure: 10 # bar - from example in code from Jamie #TODO check this value
h2_storage:
# capacity_kg: 18750 # kg
size_capacity_from_demand:
flag: True # If True, then storage is sized to provide steady-state storage
capacity_from_max_on_turbine_storage: False # if True, then days of storage is ignored and storage capacity is based on how much h2 storage fits on the turbines in the plant using Kottenstete 2003.
type: "none" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 3 # [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
type: "lined_rock_cavern" # can be one of ["none", "pipe", "turbine", "pressure_vessel", "salt_cavern", "lined_rock_cavern"]
days: 0 # [days] how many days worth of production we should be able to store (this is ignored if `capacity_from_max_on_turbine_storage` is set to True)
# platform:
# opex_rate: 0.0111 # % of capex to determine opex (see table 5 in https://www.acm.nl/sites/default/files/documents/study-on-estimation-method-for-additional-efficient-offshore-grid-opex.pdf)
# installation_days: 14 # days
Expand Down Expand Up @@ -118,37 +119,44 @@ policy_parameters: # these should be adjusted for inflation prior to application
electricity_itc: 0
electricity_ptc: 0
h2_ptc: 0
h2_storage_itc: 0
option2: # base credit levels with H2
electricity_itc: 0
electricity_ptc: 0.003 # $0.003/kW (this is base, see inflation adjustment in option 3)
h2_ptc: 0.6 # $0.60/kg h2 produced - assumes net zero but not meeting prevailing wage requirements - does this need to be
# adjusted for inflation from 2022 dollars to claim date, probably constant after claim date?
h2_storage_itc: 0.06
option3: # same as option 5, but assuming prevailing wages are met --> 5x multiplier on both PTCs
electricity_itc: 0
electricity_ptc: 0.015 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg 2022 dollars - do not adjust for inflation
h2_storage_itc: 0.3
# bonus options, option 5 and 6 but ITC equivalents
option4: # prevailing wages not met
electricity_itc: 0.06 # %/100 capex
electricity_ptc: 0.00 # $/kW 1992 dollars
h2_ptc: 0.6 # $0.60/kg produced 2022 dollars - assumes net zero but not meeting prevailing wage requirements - does this need to be
# do not adjust for inflation, probably constant after claim date?
h2_storage_itc: 0.06
option5: # prevailing wages met
electricity_itc: 0.30 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.3
option6: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.40 # %/100 capex
electricity_ptc: 0.0 # $/kWh 1992 dollars
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
h2_storage_itc: 0.4
option7: # assumes prevailing wages are met, and includes 10% bonus credit of domestic content (100% of steel and iron
# and mfg. components from the US)
electricity_itc: 0.0 # %/100 capex
electricity_ptc: 0.0165 # $/kWh 1992 dollars (0.015*1.1)
h2_ptc: 3.00 # $/kg of h2 produced 2022 dollars - do adjust for inflation every year applied and until application year
# you can elect itc_for_h2 in leu of the h2_ptc - this choice is independent of the other tech credit selections
# 6% or %50 for itc_for_h2
h2_storage_itc: 0.5

plant_design:
scenario0:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

# ORBIT imports
from ORBIT.core.library import initialize_library

initialize_library(os.path.join(os.getcwd(), "./input/"))

# run the stuff
Expand All @@ -32,7 +33,7 @@
filename_turbine_config = "./input/turbines/" + turbine_model + ".yaml"
filename_floris_config = "./input/floris/floris_input_osw_15MW.yaml"
filename_hopp_config = "./input/plant/hopp_config_ny.yaml"
filename_orbit_config= "./input/plant/orbit-config-"+turbine_model+"-ny.yaml"
filename_orbit_config = "./input/plant/orbit-config-" + turbine_model + "-ny.yaml"
filename_greenheart_config = "./input/plant/greenheart_config_offshore_ny.yaml"

config = GreenHeartSimulationConfig(
Expand Down Expand Up @@ -61,4 +62,4 @@
lcoh = prob.get_val("lcoh", units="USD/kg")

print("LCOE: ", lcoe, "[$/MWh]")
print("LCOH: ", lcoh, "[$/kg]")
print("LCOH: ", lcoh, "[$/kg]")
Loading
Loading