gcam-core icon indicating copy to clipboard operation
gcam-core copied to clipboard

Sectoral emission constraints not triggering CCS technologies

Open Aravind-Srinivasachari opened this issue 1 month ago • 3 comments

Hello,

I have been trying to do a sectoral emission constraint for the power sector in GCAM v5.2 and noticed that CCS technologies are not enabled to work with sectoral CO2_names since they are only triggered when there's a carbon price on CO2. So when I run the scenario with a small fixed tax on CO2 along with the sectoral constraints - I notice that the sequestration occurs on CO2, and not the new sectoral CO2 names.

For e.g. - If my electricity sector's technologies have a CO2 name of CO2_power - the sequestration happens on CO2. So coal ccs for example - emits everything in CO2_power and consequently gets taxed with the carbon price.

Is there a workaround for this? Would appreciate any feedback that you may have. @pkyle

Best regards Aravind S

Aravind-Srinivasachari avatar Nov 24 '25 10:11 Aravind-Srinivasachari

That's surprising to me that the model is behaving this way, just because I believe people have been running sectoral emissions policies for years without this issue. Perhaps @jayfuhrman has seen this? One thing that would be helpful is just to see the full set of CO2 emissions from a representative technology. Here is a query that will return the two different named CO2 quantities from all technologies.

<emissionsQueryBuilder title="CO2 emissions by tech and type">
    <axis1 name="technology">technology</axis1>
    <axis2 name="Year">emissions</axis2>
    <xPath buildList="true" dataName="emissions" group="false" sumAll="false">*[@type = 'sector' ]/*[@type='subsector']/*[@type='technology']//
            *[@type='GHG' and contains(@name,'CO2')]/emissions/node()</xPath>
    <comments/>
</emissionsQueryBuilder>

pkyle avatar Dec 09 '25 16:12 pkyle

CO2 emissions by tech.xlsx

I've attached the results of CO2 emissions by tech for a scenario with different CO2 names. If you compare the CO2, and CO2_Power GHG emission from the coal plants with CCS for example - you'll be able to see this difference.

  1. CCS plants with GHG name CO2 - sequestration occurs
  2. CCS plants with GHG name as user-defined - no sequestration occurs.

Kindly let me know your thoughts.

My guess is that this is happening perhaps because - CCS technologies don't get triggered with user-defined CO2_names since they are only triggered when there's a carbon price on CO2.

Aravind-Srinivasachari avatar Dec 10 '25 04:12 Aravind-Srinivasachari

OK I think I see what is happening. Again I have never done this before; @CandeBergero has, probably also others that don't monitor these issues. In the C++ code I see:

    // Default the target gas to CO2.
    if( mTargetGas.empty() ){
        mTargetGas = "CO2";
    }
...
    // Calculate the amount of sequestration.
    // Note the remove fraction is only greater than zero if the current GHG matches
    // the target gas of this capture component.

You can assign a different target-gas in the XML file, for the power technology. Here's what it would look like, if it's being added to electricity_water.xml:

                        <standard-capture-component>
                            <remove-fraction>0.85</remove-fraction>
                            <storage-market>carbon-storage</storage-market>
                            <target-gas>CO2_Power</target-gas>
                        </standard-capture-component>

That <target-gas>CO2_Power</target-gas> line should be added to every technology and year that is being assigned CO2_Power and that has a standard-capture-component. For implementation, multi-line search-and-replace can accomplish this, or you can make a standalone XML file that just assigns the target-gas. If you know gcamdata well and want to do this within gcamdata, this commit might help with the implementation. That's probably the option I would not recommend, as gcamdata does not currently include the capability to over-ride the default target-gas, and adding it requires a number of steps. I believe this structure is set up the way it is so that there is no potential for double counting of the CO2 being stored in the geologic reservoirs; only one GHG can be assigned as the target-gas. If you switch the target-gas from the default CO2 to CO2_Power, you'll need to be careful about regional CO2 reporting, as now the reported emissions of CO2 from these technologies will include the CO2 that was captured and stored. Also the information passed to the climate model will not be correct, so you wouldn't want to be using its outputs in the scenario set-up.

pkyle avatar Dec 10 '25 18:12 pkyle