Veda2.0 Released!


DACCS Emissions Constraint not working
#1
Hi, I'm wondering if I could get some help on DACCS constraint? 

I'm trying to set the limit of DACCS emissions to be -15MtCO2. but after loading this constraint it says 'Unexpected Termination of Run!'. I'm if you help point me where I missed or if there is a better way to constraint DACCS emissions? 

Thank you


Attached Files Thumbnail(s)
   
Reply
#2
You are defining an upper bound of −15,000 for the net production of the DACCO2N commodity.  That would force the amount to be less than minus 15,000, and so it seems you want to force at least 15 Mt of DACCS starting from 2020?

If you have forgotten to define a consistent lower bound as well, this would result in a contradiction:

   VAR_COMNET ≥ 0         (lower bound)
   VAR_COMNET ≤ −15000    (upper bound)
Reply
#3
Sorry that 2020 should be 2050 (in my haste to re-create the constraint on another laptop I typed the wrong year!) Ideally I would like the DACCS emissions to be -15Mt fixed, but I'm not sure if I can do it in anyway? Would VAR_COMNET be only used for upper bound?
Reply
#4
VAR_COMNET is a variable. Variables can have both lower and upper bounds, but they must be consistent: lower bound ≤ upper bound.
Reply
#5
(05-10-2021, 06:32 PM)Antti-L Wrote: VAR_COMNET is a variable.  Variables can have both lower and upper bounds, but they must be consistent: lower bound ≤ upper bound.

Thank you, I've changed it to be lower bounds, the previous message disappeared but the result is not feasible. 

The ultimate aim for my current modelling is to model a scenario achieving negative emissions of -28MtCO2e by 2050 in the whole system, with DACCS contributes -15MtCO2. Since DACCS emissions constraint is not working, I tried to only focusing on total emissions, I've tried to set upper bound zero and lower bound -28MtCO2e to start with, but it still says infeasible. (when only using upper bound zero it was working). 

To me the model still has room to reduce emissions as aviation sector has no bio at the moment, adding bio could reduce emissions further. However, the model seems cannot identify that automatically, and even when I add a constraint to add bio in the aviation sector, it shows infeasible again. 

I'm wondering if you could help pointing me in the right direction to achieve -28MtCO2e by 2050, and where it's stuck at the moment? I've attached dd and lst files if they're useful. 

Thank you very much


Attached Files
.zip   dd and lst files.zip (Size: 611.68 KB / Downloads: 3)
Reply
#6
I can see the following in your listing file:

**** SOLVER STATUS    1 Normal Completion       
**** MODEL STATUS      7 Feasible Solution       
**** OBJECTIVE VALUE      2276695671.8757

RESOURCE USAGE, LIMIT        152.350    50000.000
ITERATION COUNT, LIMIT      124        999999

IBM ILOG CPLEX  25.1.1 r66732 Released May 19, 2018 WEI x86 64bit/MS Windows
--- GAMS/Cplex licensed for continuous and discrete problems.
Cplex 12.8.0.0

LP status(6): non-optimal
Cplex Time: 150.82sec (det. 166771.91 ticks)
Solution available but not proven optimal due to numerical difficulties.


Thus, I am sorry but I am seeing no evidence of "it still says infeasible" or "it shows infeasible again". 
The listing file says it's a Feasible solution.
What you have is "Solution available but not proven optimal due to numerical difficulties".
For troubleshooting that, see e.g. Scaling issue
Reply
#7
For pointing into the right direction, see: Negative emissions

Depending on your model design, you may need quite a few of COM_BNDNET(r,'0',c,'ANNUAL','N')=-1;
Some candidates for you to check out:
 GHGTOT_MT
 CO2TOT
 DACCO2N
 BIOGCO2N
 ELCCO2N
 HYGCO2N
 INDCO2N
 INDCO2P
 PRCCO2P
Reply
#8
(05-10-2021, 09:42 PM)Antti-L Wrote: For pointing into the right direction, see: Negative emissions

Depending on your model design, you may need quite a few of COM_BNDNET(r,'0',c,'ANNUAL','N')=-1;
Some candidates for you to check out:
 GHGTOT_MT
 CO2TOT
 DACCO2N
 BIOGCO2N
 ELCCO2N
 HYGCO2N
 INDCO2N
 INDCO2P
 PRCCO2P
thank you so much Antti, using COM_BNDNET(r,'0',c,'ANNUAL','N')=-1 I've got DACCO2N to be -15MtCO2 as intended. I'm wondering how can I declare GOGTOT_MT to be negative for year 2050 alone? with all other years still to be normal/positive? 
Reply
#9
(05-10-2021, 10:06 PM)UKTM User Wrote:
(05-10-2021, 09:42 PM)Antti-L Wrote: For pointing into the right direction, see: Negative emissions

Depending on your model design, you may need quite a few of COM_BNDNET(r,'0',c,'ANNUAL','N')=-1;
Some candidates for you to check out:
 GHGTOT_MT
 CO2TOT
 DACCO2N
 BIOGCO2N
 ELCCO2N
 HYGCO2N
 INDCO2N
 INDCO2P
 PRCCO2P
thank you so much Antti, using COM_BNDNET(r,'0',c,'ANNUAL','N')=-1 I've got DACCO2N to be -15MtCO2 as intended. I'm wondering how can I declare GOGTOT_MT to be negative for year 2050 alone? with all other years still to be normal/positive? 

Hi Antti, just want to double check with you if my understanding is correct. So a variable can only be positive or negative for all periods (declared as negative as you showed here), it cannot be declared positive for some years and negative for other years, is it correct understanding? Thank you
Reply
#10
No it is not correct.  COM_BNDNET(r,'0',c,'ANNUAL','N')=-1 just defines a lower bound of -Infinity for the VAR_COMNET of commodity C, for all years. Changing a lower bound does not mean that the upper bound would be changed.  The upper bound of VAR_COMNET is by default +INF, i.e. there is effectively no upper bound. So, unless you define an upper limit for the variables by yourself, the emissions can still be arbitrarily large in amount, for example +999,999,999,999 Gt.
Reply
#11
(07-10-2021, 03:22 PM)Antti-L Wrote: No it is not correct.  COM_BNDNET(r,'0',c,'ANNUAL','N')=-1 just defines a lower bound of -Infinity for the VAR_COMNET of commodity C, for all years. Changing a lower bound does not mean that the upper bound would be changed.  The upper bound of VAR_COMNET is by default +INF, i.e. there is effectively no upper bound. So, unless you define an upper limit for the variables by yourself, the emissions can still be arbitrarily large in amount, for example +999,999,999,999 Gt).

Ah, I see, thank you very much for the clarification!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)