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

How to set the upper bound for secondary outputs #518

Open
thuliuyang opened this issue Feb 19, 2025 · 2 comments
Open

How to set the upper bound for secondary outputs #518

thuliuyang opened this issue Feb 19, 2025 · 2 comments

Comments

@thuliuyang
Copy link

Hi GCAM team,

I have set up a secondary output for the industry sector and want to constrain the upper bound. I tried to constrain it using Policytype as RES and tax respectively, but it didn't work (code below). I am requesting help with this.

        <policy-portfolio-standard name="death">
            <market>death_market</market>
            <policyType>RES</policyType>
            <constraint year="2020">1600000</constraint>
            <min-price year="2020">0</min-price>
            <constraint year="2025">1280000</constraint>
            <min-price year="2025">0</min-price>
            <constraint year="2030">1024000</constraint>
            <min-price year="2030">0</min-price>
            <constraint year="2035">819200</constraint>
            <min-price year="2035">0</min-price>
            <constraint year="2040">655360</constraint>
            <min-price year="2040">0</min-price>
            <constraint year="2045">524288</constraint>
            <min-price year="2045">0</min-price>
            <constraint year="2050">419430.4</constraint>
            <min-price year="2050">0</min-price>
            <constraint year="2055">335544.32</constraint>
            <min-price year="2055">0</min-price>
            <constraint year="2060">268435.456</constraint>
            <min-price year="2060">0</min-price>
        </policy-portfolio-standard>
 <supplysector name="agricultural energy use" >
                <subsector name="coal" nocreate="1">
                    <stub-technology name="coal">
                        <period year="2015">
                            <res-secondary-output name="death">
                                <output-ratio>38258.2191075305</output-ratio>
                                <pMultiplier>0</pMultiplier>
                            </res-secondary-output>
                        </period>
                    </stub-technology>
                </subsector>
            </supplysector>
@pkyle
Copy link
Contributor

pkyle commented Mar 22, 2025

Normally the market is either a region or "global", so I'd recommend you try running it in a single region just to start, and assign that region's name as the market. Another thing is that assigning a pMultiplier of zero means that the constraint can't pass its price/cost to the agricultural energy use commodity, which is how the model would constrain the demand if it exceeds the target. So I'd set that to 1. Also check the price-elasticity of the energy-final-demand for agricultural energy use, and make sure it's something reasonably responsive. I'd probably start with -1.
One last thing to be aware of is that agricultural energy use is a final demand, typically classified with industrial energy use in post-processing. It is not an input to crop and livestock production. You could set agricultural energy use to zero, and that would have basically no discernible impact on food prices, yields, consumption, etc.

@thuliuyang
Copy link
Author

Thank you so much, Page! I really appreciate your suggestion, and I'll give it a try.
In the past weeks, I had tried not using the secondary output structure and instead adding death as a non-GHG to the model and then adding constraints. It looks like this approach works, and I was able to start my work on it, which is great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants