Skip to content

Commit 2b76bf5

Browse files
authored
Update commodity from pig iron to sponge iron (#670)
* update from pig iron to sponge iron * changelog * update lco naming in test
1 parent 34e2e86 commit 2b76bf5

18 files changed

Lines changed: 134 additions & 117 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Changelog
22

33
## Unreleased
4+
- Change commodity in DRI and EAF model from pig iron to sponge iron based on likely carbon content [PR 670](https://github.com/NatLabRockies/H2Integrate/pull/670)
5+
6+
## 0.8 [April 15, 2026]
47
- Updated README and docs intro page with expanded H2I description, reorganized sections, and streamlined installation instructions [PR 677](https://github.com/NatLabRockies/H2Integrate/pull/677)
58
- Update energy conversion ratio in H2 SMR model [PR 606](https://github.com/NatLabRockies/H2Integrate/pull/606)
69
- Update iron models and examples [PR 601](https://github.com/NatLabRockies/H2Integrate/pull/601)

docs/technology_models/iron_dri.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ The models implemented in H2I are:
1212
- `HydrogenIronReductionPlantPerformanceComponent`
1313
- `HydrogenIronReductionPlantCostComponent`
1414

15+
```{note}
16+
The DRI model outputs sponge iron, which is low in carbon content. The LBNL model calls the outputs pig iron, but that's typically produced using a blast furnace rather than through the DRI process and has higher carbon impurities.
17+
```
18+
1519
Citation:
1620
```bibtex
1721
@article{rosner2023green,

docs/technology_models/steel_eaf.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
H2I contains two steel electric arc furnace (EAF) models, one is for a facility that utilizes iron pellets from natural gas (NG) direct iron reduction and another facility that utilizes iron pellets from hydrogen (H2)direct iron reduction.
44

55
The main difference is the required feedstocks for processing the pellets.
6-
- NG-EAF requires: natural gas, water, pig iron and electricity.
7-
- H2-EAF requires: natural gas, water, carbon, lime, pig iron and electricity.
6+
- NG-EAF requires: natural gas, water, sponge iron and electricity.
7+
- H2-EAF requires: natural gas, water, carbon, lime, sponge iron and electricity.
8+
89

910
The original models were constructed in Aspen Pro and translated into Python and added to H2I. The models were developed in conjunction with [Lawrence Berkeley National Laboratory (LBNL)](https://www.lbl.gov/).
1011

@@ -16,6 +17,10 @@ The models implemented in H2I are:
1617
- `HydrogenEAFPlantPerformanceComponent`
1718
- `HydrogenEAFPlantCostComponent`
1819

20+
```{note}
21+
The EAF model use sponge iron as an input rather than pig iron, which is lower in carbon content. The LBNL model calls the input to the EAF pig iron, but that's typically produced using a blast furnace rather than through the DRI process and has higher carbon impurities.
22+
```
23+
1924
Citation:
2025
```bibtex
2126
@article{rosner2023green,

examples/21_iron_examples/iron_dri/plant_config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ technology_interconnections:
2323
- [eaf_grid_feedstock, steel_plant, electricity, cable]
2424
- [eaf_water_feedstock, steel_plant, water, pipe]
2525
- [eaf_natural_gas_feedstock, steel_plant, natural_gas, pipe]
26-
- [iron_plant, steel_plant, pig_iron, pig_iron_transport]
26+
- [iron_plant, steel_plant, sponge_iron, sponge_iron_transport]
2727
plant:
2828
plant_life: 30
2929
simulation:
@@ -64,8 +64,8 @@ finance_parameters:
6464
- iron_mine
6565
- mine_electricity_feedstock
6666
- mine_crude_ore_feedstock
67-
pig_iron:
68-
commodity: pig_iron
67+
sponge_iron:
68+
commodity: sponge_iron
6969
commodity_stream: iron_plant
7070
technologies:
7171
- processed_ore_feedstock

examples/21_iron_examples/iron_dri/run_iron.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
In this example, iron ore pellets are produced at different iron mine locations in NE Minnesota.
44
These mines send processed ore pellets to a separate iron DRI plant located outside Chicago.
55
Four different cases are generated for four different iron mine setups in the `test_inputs.csv`.
6-
The first two cases generate standard blast furnace gradepellets at two different mine locations.
6+
The first two cases generate standard blast furnace grade pellets at two different mine locations.
77
The second two cases generate DR grade pellets at the same location, with the output capacity
88
varied to show how the capacity of the mine does not affect the levelized cost of iron_ore pellets
9-
(LCOI), nor does it affect the final cost of the pig_iron produced by DRI (LCOP) or the cost of the
10-
steel produced by the EAF (LCOS).
9+
(LCOI), nor does it affect the final cost of the sponge_iron produced by DRI (LCOS) or the cost
10+
of the steel produced by the EAF (LCOS).
1111
1212
"""
1313

@@ -78,22 +78,26 @@
7878
)
7979
)
8080
lcois_iron.append(
81-
float(model.model.get_val("finance_subgroup_pig_iron.price_pig_iron", units="USD/kg")[0])
81+
float(
82+
model.model.get_val("finance_subgroup_sponge_iron.price_sponge_iron", units="USD/kg")[0]
83+
)
8284
)
8385
capexes_iron.append(
84-
float(model.model.get_val("finance_subgroup_pig_iron.total_capex_adjusted", units="USD")[0])
86+
float(
87+
model.model.get_val("finance_subgroup_sponge_iron.total_capex_adjusted", units="USD")[0]
88+
)
8589
)
8690
fopexes_iron.append(
8791
float(
88-
model.model.get_val("finance_subgroup_pig_iron.total_opex_adjusted", units="USD/year")[
89-
0
90-
]
92+
model.model.get_val(
93+
"finance_subgroup_sponge_iron.total_opex_adjusted", units="USD/year"
94+
)[0]
9195
)
9296
)
9397
vopexes_iron.append(
9498
float(
9599
model.model.get_val(
96-
"finance_subgroup_pig_iron.total_varopex_adjusted", units="USD/year"
100+
"finance_subgroup_sponge_iron.total_varopex_adjusted", units="USD/year"
97101
)[0]
98102
)
99103
)

examples/21_iron_examples/iron_dri/tech_config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,18 +163,18 @@ technologies:
163163
model: NaturalGasIronReductionPlantCostComponent
164164
model_inputs:
165165
shared_parameters:
166-
pig_iron_production_rate_tonnes_per_hr: 161.8829908675799 # equivalent to 1418095 t/yr
166+
sponge_iron_production_rate_tonnes_per_hr: 161.8829908675799 # equivalent to 1418095 t/yr
167167
performance_parameters:
168168
water_density: 1000 # kg/m3
169169
cost_parameters:
170170
skilled_labor_cost: 40.85 # 2022 USD/hr
171171
unskilled_labor_cost: 30.0 # 2022 USD/hr
172-
pig_iron_transport:
172+
sponge_iron_transport:
173173
performance_model:
174174
model: GenericTransporterPerformanceModel
175175
model_inputs:
176176
performance_parameters:
177-
commodity: pig_iron
177+
commodity: sponge_iron
178178
commodity_rate_units: kg/h
179179
eaf_grid_feedstock: # electricity feedstock for EAF
180180
performance_model:

examples/21_iron_examples/iron_mapping/driver_config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ design_variables:
3434
lower: 0
3535
upper: 10
3636
objective:
37-
name: finance_subgroup_pig_iron.LCOP
37+
name: finance_subgroup_sponge_iron.LCOS
3838
recorder:
3939
file: cases.sql
4040
overwrite_recorder: true
4141
flag: true
42-
includes: [site.latitude, site.longitude, finance_subgroup_pig_iron.LCOP]
42+
includes: [site.latitude, site.longitude, finance_subgroup_sponge_iron.LCOS]
4343
excludes: ['*']

examples/21_iron_examples/iron_mapping/ex_out/cases.csv

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
,site.latitude (deg),site.longitude (deg),dri_grid_feedstock.price (USD/MW/h),hydrogen_feedstock.price (USD/kg),finance_subgroup_pig_iron.LCOP (USD/kg)
1+
,site.latitude (deg),site.longitude (deg),dri_grid_feedstock.price (USD/MW/h),hydrogen_feedstock.price (USD/kg),finance_subgroup_sponge_iron.LCOS (USD/kg)
22
0,39.179,-94.644,58.24602573,7.819127689,0.7850112572903336
33
1,40.639,-94.179,51.41859144,6.486845574,0.7039548783993137
44
2,42.135,-74.231,54.87195632,9.087358988,0.8611145933067907
@@ -45,7 +45,7 @@
4545
43,46.295,-97.814,50.4352344,6.861520616,0.726439613726291
4646
44,41.415,-84.014,57.72454279,7.748746212,0.7807120287164648
4747
45,40.169,-88.725,55.9963289,6.822567835,0.7246859586288446
48-
46,41.603,-93.416,50.76824359,6.498809353,0.7046066294238851
48+
46,41.603,-93.416,50.76824359,6.498809353,0.7046066294238849
4949
47,44.258,-96.218,48.08888229,6.484302926,0.7034453872616688
5050
48,42.783,-75.227,58.89441507,8.518178578,0.8272278321191734
5151
49,43.47,-94.398,48.64393387,6.650122757,0.7135023812546356
@@ -70,7 +70,7 @@
7070
68,40.403,-92.166,51.16250247,6.74221526,0.7193242468559962
7171
69,38.862,-93.101,52.61488688,6.996040576,0.7347832629480767
7272
70,41.717,-88.398,58.02462706,7.10284254,0.7418012700736446
73-
71,44.056,-72.423,57.60315341,9.361197001,0.8779170147170843
73+
71,44.056,-72.423,57.60315341,9.361197001,0.877917014717084
7474
72,45.586,-87.582,57.64037358,7.851745274,0.786913049961754
7575
73,44.721,-93.281,54.55981386,7.286968665,0.7525319703228306
7676
74,40.227,-85.106,55.34456603,7.546306027,0.7682519002330839
@@ -140,7 +140,7 @@
140140
138,42.209,-95.172,49.93455623,6.639947411,0.7130269507479543
141141
139,40.386,-79.688,63.86411489,9.17986164,0.8676536883118218
142142
140,41.225,-97.815,48.29404304,6.887453274,0.727774096858826
143-
141,43.101,-88.679,53.03067508,6.615076123,0.7118586114493456
143+
141,43.101,-88.679,53.03067508,6.615076123,0.7118586114493455
144144
142,46.066,-92.269,61.42938904,8.143522162,0.8049102012304439
145145
143,45.91,-90.383,57.83685565,7.028809928,0.7373176052605699
146146
144,43.227,-75.538,75.42836767,11.27986223,0.9955041042695535
@@ -180,7 +180,7 @@
180180
178,42.24,-76.323,69.36892469,11.02959371,0.9797667028885654
181181
179,40.26,-95.917,48.50109937,6.553833735,0.7076816387944875
182182
180,45.441,-88.545,55.8526599,6.659344602,0.7148295257785313
183-
181,41.361,-72.544,53.88391198,7.614258476,0.7721926421678088
183+
181,41.361,-72.544,53.88391198,7.614258476,0.7721926421678089
184184
182,43.881,-74.532,58.37302204,7.950019899,0.7929166027975763
185185
183,46.375,-93.045,55.3918541,7.021579046,0.7366200908703626
186186
184,39.137,-85.003,61.51175413,8.628449283,0.8341562646653646
@@ -206,15 +206,15 @@
206206
204,40.577,-81.398,62.90874286,9.207572255,0.8692222190216685
207207
205,46.361,-84.431,60.67660851,8.526102871,0.8278962509744834
208208
206,44.053,-97.747,49.14434791,7.507503977,0.7652491876919038
209-
207,40.592,-75.951,52.92795272,7.774752517,0.7817668956631634
209+
207,40.592,-75.951,52.92795272,7.774752517,0.7817668956631636
210210
208,39.147,-79.282,50.22245241,7.648694799,0.7738772007716359
211211
209,38.644,-76.981,60.48685661,9.107058567,0.8629029652934552
212212
210,42.699,-95.913,47.57093505,6.650574037,0.7134148077286483
213213
211,40.276,-80.446,64.19364001,9.581061709,0.8918781152361044
214214
212,46.002,-94.17,55.75347218,7.786657918,0.7827869516303637
215215
213,43.769,-95.151,47.31078488,6.411883727,0.6989958493683212
216216
214,42.828,-83.285,54.80541876,7.452960164,0.7625662120288659
217-
215,42.306,-85.339,58.19811541,7.738857599,0.7801664835008522
217+
215,42.306,-85.339,58.19811541,7.738857599,0.7801664835008524
218218
216,45.817,-96.539,52.01958202,7.034215719,0.7370212390937694
219219
217,40.981,-72.087,47.38085805,7.581109738,0.769498384106217
220220
218,43.651,-84.949,58.31734328,7.714266851,0.7786966109612123
@@ -364,7 +364,7 @@
364364
362,42.695,-97.11,47.29014174,6.582336603,0.7092705952544859
365365
363,46.317,-86.678,50.57965136,7.544514147,0.7676341459041081
366366
364,39.278,-85.55,55.89197093,8.15175868,0.8048144424536288
367-
365,45.259,-87.002,49.62045856,6.510959335,0.7052163945598876
367+
365,45.259,-87.002,49.62045856,6.510959335,0.7052163945598875
368368
366,45.913,-83.725,51.24562465,7.70481277,0.7773701205726504
369369
367,38.913,-91.406,53.51277698,6.99251437,0.7346667109256176
370370
368,43.752,-90.126,58.17486708,7.480069934,0.7645611564600783
@@ -399,7 +399,7 @@
399399
397,38.392,-88.5,57.86180863,8.146670896,0.8047184093570208
400400
398,44.244,-90.231,58.69672689,7.387475541,0.7590342752558699
401401
399,43.469,-97.73,49.2252985,7.077334545,0.7393220482476153
402-
400,38.105,-94.806,49.62168947,6.735856204,0.7187760205954808
402+
400,38.105,-94.806,49.62168947,6.735856204,0.7187760205954807
403403
401,41.24,-85.519,53.29636267,7.026106974,0.7366689275159279
404404
402,39.257,-77.09,60.22997497,9.200428081,0.8685049256999342
405405
403,45.223,-83.711,57.52598123,7.826185595,0.7853597674770538
@@ -416,7 +416,7 @@
416416
414,41.059,-88.915,56.09943255,7.088687211,0.7407418719709922
417417
415,38.728,-75.52,55.35219581,8.633813323,0.8338207659543093
418418
416,39.353,-90.096,58.12244541,7.782775604,0.7828062956046264
419-
417,45.818,-95.751,48.45444571,6.964379638,0.7324293042045387
419+
417,45.818,-95.751,48.45444571,6.964379638,0.7324293042045384
420420
418,41.765,-83.501,57.41290156,8.084847126,0.800942906196559
421421
419,41.709,-90.317,58.05576703,6.956987333,0.7330106910756611
422422
420,41.223,-88.31,59.46589028,7.512207926,0.7666369269279907
@@ -491,7 +491,7 @@
491491
489,46.583,-87.917,52.02200649,6.6587893,0.7143862682010519
492492
490,38.862,-80.212,64.90563199,10.12406768,0.9246932250882576
493493
491,46.506,-90.645,67.55517351,9.152558169,0.8664023503170806
494-
492,44.595,-84.463,60.91517064,7.760417109,0.7817570027709664
494+
492,44.595,-84.463,60.91517064,7.760417109,0.7817570027709662
495495
493,45.955,-85.624,49.64725022,7.121041155,0.7420023471036234
496496
494,42.325,-79.325,60.74805435,9.191121493,0.8679992329984643
497497
495,44.135,-83.625,56.50144774,7.908995333,0.7902429391098073

examples/21_iron_examples/iron_mapping/plant_config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ finance_parameters:
5959
- iron_mine
6060
- mine_electricity_feedstock
6161
- mine_crude_ore_feedstock
62-
pig_iron:
63-
commodity: pig_iron
62+
sponge_iron:
63+
commodity: sponge_iron
6464
commodity_stream: iron_plant
6565
technologies:
6666
- processed_ore_feedstock

examples/21_iron_examples/iron_mapping/run_iron.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
# NOTE: you can swap './ex_28_out/cases.sql' with './ex_28_out/cases.csv' to read results from csv
4343
fig, ax, lcoi_layer_gdf = plot_geospatial_point_heat_map(
4444
case_results_fpath=case_results_filepath,
45-
metric_to_plot="finance_subgroup_pig_iron.LCOP (USD/kg)",
45+
metric_to_plot="finance_subgroup_sponge_iron.LCOS (USD/kg)",
4646
map_preferences={
4747
"figsize": (10, 8),
4848
"colorbar_label": "Levelized Cost of\nIron [$/kg]",

0 commit comments

Comments
 (0)