ecwood / GCAM-CDR-modeling

1 stars 0 forks source link

Implement a GCAM Scenario for 45Q #25

Open ecwood opened 2 years ago

ecwood commented 2 years ago

Spun off of #23

khw21 commented 2 years ago

H.R.5179 - NET Zero Act of 2021 - Raises 45Q tax credit to $180 per m ton for permanent storage and $130 for EOR/other carbon utilizations

S.986 - Carbon Capture, Utilization, and Storage Tax Credit Amendments Act of 2021 - Raises 45Q tax credit to $120 per m ton for permanent storage and $130 for EOR/other carbon utilizations

S.2118 - Clean Energy for America Act - Raises 45Q tax credit to $175 per m ton for permanent storage and $150 for EOR/other carbon utilizations

ecwood commented 2 years ago

I made these calculations of the values from those bills:

Bill S. 2118 S. 986 H.R. 5179
Original Text 45Q Value ($/tCO2) 175 120 180
$/tC Subsidy 641.2101407 439.6869536 659.5304304
1990$/tC Subsidy in 2020 282.4714276 193.6946932 290.5420398
2025 Subsidy (1990$/tC) 340.3778513 233.4019552 350.1029328
2030 Subsidy (1990$/tC) 410.1550471 281.2491751 421.8737627
2035 Subsidy (1990$/tC) 494.2365138 338.905038 508.357557
2040 Subsidy (1990$/tC) 595.554616 408.3803081 612.5704622
2045 Subsidy (1990$/tC) 717.6428507 492.0979548 738.1469322
2050 Subsidy (1990$/tC) 864.7590789 592.9776541 889.4664811
2055 Subsidy (1990$/tC) 1042.03402 714.5376136 1071.80642
2060 Subsidy (1990$/tC) 1255.650186 861.0172705 1291.525906
2065 Subsidy (1990$/tC) 1513.057501 1037.525144 1556.287715
2070 Subsidy (1990$/tC) 1823.233116 1250.216994 1875.325491
2075 Subsidy (1990$/tC) 2196.994492 1506.510509 2259.765763
2080 Subsidy (1990$/tC) 2647.37666 1815.343995 2723.015993
2085 Subsidy (1990$/tC) 3190.086823 2187.488107 3281.232161
2090 Subsidy (1990$/tC) 3844.052149 2635.921474 3953.882211
2095 Subsidy (1990$/tC) 4632.07986 3176.283333 4764.424999
2100 Subsidy (1990$/tC) 5581.652641 3827.418954 5741.128431

using these assumptions

Average US Inflation (%) Average US Five Year Inflation (Multiplier) Molar Mass of CO2 (g/mol) Molar Mass of C (g/mol) Mass Ratio of C to CO2 Inflation (1975->today) Inflation (1990->today)
3.8 1.204999225 44.009 12.011 0.2729214479 5.51 2.27
ecwood commented 2 years ago

Using the policy from 6697edd (and the configuration file from commit 6975385 and the forcing file from commit 2469cab), the scenario generated a bunch of these errors:

Period 14: 2065
ERROR:Model did not solve period 14 within set iteration 5568
ERROR:Currently Unsolved Markets: 
ERROR:Unsolved Part 1: Solvable Markets
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:776652    , 776652    , 776652    , 77.5173   , 77.5173   , 77.5173   , 0.487575  ,   0  , 81.468    , 158.985   , Normal    , Southwest gridonshore carbon-storage, 
ERROR:149569    , 149569    , 149569    , 262.246   , 262.246   , 262.246   , 0.487564  ,   0  , 275.624   , 537.87    , Normal    , Central East gridonshore carbon-storage, 
ERROR:1.05576e+06, 1.05576e+06, 1.05576e+06, 108.779   , 108.779   , 108.779   , 0.487573  ,    0  , 114.324   , 223.104   , Normal    , Central Northeast gridonshore carbon-storage, 
ERROR:1.00451e+06, 1.00451e+06, 1.00451e+06, 46.1723   , 46.1723   , 46.1723   , 0.487571  ,    0  , 48.5262   , 94.6985   , Normal    , Central Southwest gridonshore carbon-storage, 
ERROR:2.6428e+06, 2.6428e+06, 2.6428e+06, 27.9432   , 27.9432   , 27.9432   , 0.218347  ,   0  , 100.033   , 127.976   , Normal    , Mid-Atlantic gridonshore carbon-storage, 
ERROR:4.15659e+07, 4.15659e+07, 4.15659e+07, 17.7888   , 17.7888   , 17.7888   , 0.258396  ,    0  , 51.0542   , 68.8429   , Normal    , Northwest gridonshore carbon-storage, 
ERROR:245.164   , 243.999   , 243.999   , -137.726  , -134.651  , -134.651  , 0.642992  ,   0  , 351.922   , 214.196   , Normal    , Southeast gridonshore carbon-storage, 
ERROR:424561    , 424561    , 424561    , 73.7857   , 73.7857   , 73.7857   , 0.487571  ,   0  , 77.5477   , 151.333   , Normal    , Central Northwest gridonshore carbon-storage, 
ERROR:Unsolved Part 2: Unsolvable Markets Not Cleared
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:

Period 15: 2070
ERROR:Model did not solve period 15 within set iteration 5243
ERROR:Currently Unsolved Markets: 
ERROR:Unsolved Part 1: Solvable Markets
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:1.11267e+10, 1.11267e+10, 1.11267e+10, 158.662   , 158.662   , 158.662   , 1         ,    0  , 0         , 158.662   , Normal    , Southwest gridonshore carbon-storage, 
ERROR:2.14862e+09, 2.14862e+09, 2.14862e+09, 536.777   , 536.777   , 536.777   , 1         ,    0  , 0         , 536.777   , Normal    , Central East gridonshore carbon-storage, 
ERROR:1.51398e+10, 1.51398e+10, 1.51398e+10, 222.65    , 222.65    , 222.65    , 1         ,    0  , 0         , 222.65    , Normal    , Central Northeast gridonshore carbon-storage, 
ERROR:1.43893e+10, 1.43893e+10, 1.43893e+10, 94.5061   , 94.5061   , 94.5061   , 1         ,    0  , 0         , 94.5061   , Normal    , Central Southwest gridonshore carbon-storage, 
ERROR:3.79293e+10, 3.79293e+10, 3.79293e+10, 127.716   , 127.716   , 127.716   , 1         ,    0  , 0         , 127.716   , Normal    , Mid-Atlantic gridonshore carbon-storage, 
ERROR:5.95395e+11, 5.95395e+11, 5.95395e+11, 68.7031   , 68.7031   , 68.7031   , 1         ,    0  , 0         , 68.7031   , Normal    , Northwest gridonshore carbon-storage, 
ERROR:4.2357e+12, 4.2357e+12, 4.2357e+12, 85.131    , 85.131    , 85.131    , 1         ,   0  , 0         , 85.131    , Normal    , Southeast gridonshore carbon-storage, 
ERROR:6.08447e+09, 6.08447e+09, 6.08447e+09, 151.026   , 151.026   , 151.026   , 1         ,    0  , 0         , 151.026   , Normal    , Central Northwest gridonshore carbon-storage, 
ERROR:1.44589e+10, 1.44589e+10, 1.44589e+10, 0.349301  , 0.349301  , 0.349301  , 1         ,    0  , 0         , 0.349301  , Normal    , New England gridonshore carbon-storage, 
ERROR:Unsolved Part 2: Unsolvable Markets Not Cleared
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:

Period 16: 2075
ERROR:Model did not solve period 16 within set iteration 5609
ERROR:Currently Unsolved Markets: 
ERROR:Unsolved Part 1: Solvable Markets
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:1.51948e+14, 1.51948e+14, 1.51948e+14, 158.22    , 158.22    , 158.22    , 1         ,    0  , 0         , 158.22    , Normal    , Southwest gridonshore carbon-storage, 
ERROR:2.9342e+13, 2.9342e+13, 2.9342e+13, 535.28    , 535.28    , 535.28    , 1         ,   0  , 0         , 535.28    , Normal    , Central East gridonshore carbon-storage, 
ERROR:2.06752e+14, 2.06752e+14, 2.06752e+14, 222.029   , 222.029   , 222.029   , 1         ,    0  , 0         , 222.029   , Normal    , Central Northeast gridonshore carbon-storage, 
ERROR:1.96503e+14, 1.96503e+14, 1.96503e+14, 94.2424   , 94.2424   , 94.2424   , 1         ,    0  , 0         , 94.2424   , Normal    , Central Southwest gridonshore carbon-storage, 
ERROR:5.17971e+14, 5.17971e+14, 5.17971e+14, 127.36    , 127.36    , 127.36    , 1         ,    0  , 0         , 127.36    , Normal    , Mid-Atlantic gridonshore carbon-storage, 
ERROR:8.13085e+15, 8.13085e+15, 8.13085e+15, 68.5114   , 68.5114   , 68.5114   , 1         ,    0  , 0         , 68.5114   , Normal    , Northwest gridonshore carbon-storage, 
ERROR:672717    , 615.004   , 615.004   , 84.8936   , 84.8986   , 84.8986   , 1         ,   0  , 0         , 84.8936   , Normal    , Southeast gridonshore carbon-storage, 
ERROR:8.30908e+13, 8.30908e+13, 8.30908e+13, 150.605   , 150.605   , 150.605   , 1         ,    0  , 0         , 150.605   , Normal    , Central Northwest gridonshore carbon-storage, 
ERROR:1.97462e+14, 1.97462e+14, 1.97462e+14, 0.348327  , 0.348327  , 0.348327  , 1         ,    0  , 0         , 0.348327  , Normal    , New England gridonshore carbon-storage, 
ERROR:Unsolved Part 2: Unsolvable Markets Not Cleared
ERROR:X,         XL,        XR,        ED,        EDL,       EDR,       RED,       brk, Supply,    Demand,    Mrk Type,  Market,                             
ERROR:

I am changing the units to 1975$/kg (of CO2 or C, I'm guessing C but I don't totally know) to see if that fixes this issue. I am wondering if the model did not understand my unit input and instead treated it like the units of price within the DAC subsector technologies.

ecwood commented 2 years ago

To use the script from 209d047 to generate (a more complete version of) s2118.xml, I used this python call:

python3 generate_45Q_policy.py --initialValue 175 --interestRate 0.038 --startingYear 2020 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy s2118_auto.xml
ecwood commented 2 years ago

The run that used cb4f568 (which provided the value below) was actually not accurate, because the subsidy only applied to hightemp DAC NG: https://github.com/ecwood/GCAM-CDR-modeling/blob/cb4f568cd76800d202dcb5cf5f196a6ce0c33054/s2118.xml#L3350-L3403

Year 2 Degree Base Scenario S. 2118
2025 0.002744326369 0.281145622
2030 0.02537442997 6.745538622
2035 0.1737664393 125.6218701
2040 0.9318608219 873.2135681
2045 3.198201738 930.0757499
2050 11.99963649 219.1788911
2055 14.59170868 100.9086487
2060 19.19194518 107.9596263
2065 23.79433204 73.13085232
2070 28.72434922 108.0634946
2075 33.1420436 123.0264558
2080 37.86237672 142.3735952
2085 44.29984859 155.280542
2090 52.7065215 159.293884
2095 53.40823473 155.722367
2100 57.12493976 148.409211

Tagging @celinasb for documentation purposes.

ecwood commented 2 years ago

Here are the commands I used to generate these files: For S2118, S986, HR5179: 74c439a For BAU: e131033, af6369d, dbc1c7c

For S2118, I started the python script at 2025, since that's when the inflation started, and copied the 2025 value down to 2020. s2118_ng.xml:

python3 generate_45Q_policy.py --initialValue 175 --interestRate 0.02041176471 --startingYear 2025 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy s2118_ng.xml

s2118_nng.xml:

python3 generate_45Q_policy.py --initialValue 175 --interestRate 0.02041176471 --startingYear 2025 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy s2118_nng.xml

s986_ng.xml:

python3 generate_45Q_policy.py --initialValue 120 --interestRate 0.02041176471 --startingYear 2020 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy s986_ng.xml

s986_nng.xml:

python3 generate_45Q_policy.py --initialValue 120 --interestRate 0.02041176471 --startingYear 2020 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy s986_nng.xml

hr5179_ng.xml:

python3 generate_45Q_policy.py --initialValue 180 --interestRate 0.02041176471 --startingYear 2020 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy hr5179_ng.xml

hr5179_nng.xml:

python3 generate_45Q_policy.py --initialValue 180 --interestRate 0.02041176471 --startingYear 2020 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName S.2118 --subsidyName DAC-subsidy hr5179_nng.xml

bau_ng.xml:

python3 generate_45Q_policy.py --initialValue 50 --interestRate 0.02041176471 --startingYear 2025 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName BAU --subsidyName DAC-subsidy bau_ng.xml

bau_nng.xml:

python3 generate_45Q_policy.py --initialValue 50 --interestRate 0.02041176471 --startingYear 2025 --outputPriceYear 1975 --outputPriceSizeUnit kg --scenarioName BAU --subsidyName DAC-subsidy bau_nng.xml