Veda2.0 Released!

Extremely high marginal costs on CO2 constraint
Antti, this is very interesting.  I would not have expected that some (or most) of the variables in TIMES are declared as non-negative. In fact, I have not observed negative emissions in the supply sector, the electric sector, or any of the sectors.  I have only seen them go to zero.  I just assumed that the model was able to go below zero in some sectors but for some reason it tried to force emissions back to zero if emissions were not too far below zero.  So what you've said makes very good sense.  However, it would still be good to receive a bit more explanation on how to set a negative lower bound on sectoral emissions. 

As of now, my I calculate emissions in each sector in my model.  In other words, supply sector technologies produce supply sector emissions (SUPCO2), transport sector techs produce transport emissions (TRACO2), and so on for the electricity, industrial, commercial, agricultural, and residential sectors.  Then, I use a ~COMAGG table to aggregate these sectoral emissions into a total emissions commodity (TOTGHG_IN).  [The "_IN" stands for emissions within the state of California.]  It is this total emissions category for which I set an upper limit emissions cap.  I use the attribute "COM_BNDNET" to do this.  Please see the file attachment.  uploads/29/

Are you saying that I should (in this file or another) define a lower limit on "COM_BNDNET" for each of the sectoral emissions, thereby over-writing the default TIMES assumption that their lower limit is zero?  In an earlier post, you mentioned the attribute "VAR_COMNET", but I think this is a VEDA-BE variable, and not a VEDA-FE variable, correct?  If I am right in this way of thinking, then should I just specify the limit to be ridiculously low, so that it never binds (e.g., -1,000,000,000 ktons)?

Attached Files
.zip (Size: 12.88 KB / Downloads: 8)
Yes, you understood correctly. VAR_COMNET is the GAMS variable name for the net commodity production (e.g. net emissions). In order to set a bound for this variable from within VEDA-FE, you need to use the COM_BNDNET attribute. I recommend that you set a negative lower bound for those sectors that can actually have negative emissions, and use a sufficiently (but not ridiculously) low value. The larger the bounds are in absolute terms, the more numerical ill-effects you may get in the solver. I would guess -1000 Mt  might already be sufficient for the sectoral emissions in California?

As the sectoral emissions are aggregated into TOTGHG_IN, the aggregated value of TOTGHG_IN emissions is represented by a VAR_COMPRD variable, and the net amount of TOTGHG_IN is again represented by a VAR_COMNET variable. Consequently, if you would also like to allow negative total emissions, you should additionally define a negative lower bound for these variables as well, using both COM_BNDPRD and COM_BNDNET for TOTGHG_IN.

Hope this helps,
It's becoming more and more clear.  Just one last question on your final point.  You say to use both COM_BNDPRD and COM_BNDNET for TOTGHG_IN.  Why both?  Wouldn't just one of these do the trick?
And actually, would I not want to use the COM_BNDPRD attribute to put a negative lower bound on sectoral emissions (only for some sectors), instead of COM_BNDNET?  The reason is that sectoral emissions will always be zero on a net basis, correct?  In other words, they are produced by technologies in each sector (positive values) and then they are aggregated into TOTGHG_IN (negative values of the same magnitude).  Therefore, in the commodity balance equation net emissions would be zero, while from a production standpoint (COM_BNDPRD), they are certainly positive.  At least, this is what I would think if I actually used a dummy process technology to aggregate the sectoral emissions, but actually I don't do this, opting instead to use the ~COMAGG table.  Maybe things are different when using the latter approach?
Hmmm... no. The aggregation does not affect the NET amounts in any way, but specifically means that the NET amounts are aggregated into the VAR_COMPRD of the target commodity. Therefore, if you want to allow negative sectoral emissions, you have to set the negative lower bounds for the VAR_COMNET variables. The VAR_COMPRD variables will be used for the sectoral emissions only if you have specified e.g. taxes on the gross production of the emissions, and I have assumed that you have not used any such.  But if you have, then you will also need to set negative lower bounds for the sectoral VAR_COMPRD variables.

Similarly, if you want to allow negative total TOTGHG_IN emissions, you will need to set a negative lower bound for both VAR_COMPRD and VAR_COMNET. Why both? Because there are two balance equations:
  1. First, the sum of the sectoral NET emissions (COM_AGG aggregation) is set equal to the VAR_COMPRD(TOTGHG_IN);
  2. Second, the VAR_COMPRD(TOTGHG_IN) is set equal to {VAR_COMNET(TOTGHG_IN) + any consumption of TOTGHG_IN} (e.g. exports).
I hope you can see that if either of the VAR_COMPRD or VAR_COMNET variables has a lower bound of zero, you will not be able to have negative TOTGHG_IN emissions, unless you have modeled your sinks to consume TOTGHG_IN (in which case a negative bound for VAR_COMNET(TOTGHG_IN) would be sufficient). But I understood that your sinks are modeled at the sectoral level.

Forum Jump:

Users browsing this thread: 1 Guest(s)