Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
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
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 15
Joined: Jun 2010
05-10-2021, 06:19 PM
(This post was last modified: 05-10-2021, 06:21 PM by Antti-L.)
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)
Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
05-10-2021, 06:26 PM
(This post was last modified: 05-10-2021, 06:27 PM by UKTM User.)
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?
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 15
Joined: Jun 2010
VAR_COMNET is a variable. Variables can have both lower and upper bounds, but they must be consistent: lower bound ≤ upper bound.
Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
(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
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 15
Joined: Jun 2010
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
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 15
Joined: Jun 2010
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
Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
(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?
Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
(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
Posts: 1,956
Threads: 26
Likes Received: 55 in 47 posts
Likes Given: 15
Joined: Jun 2010
07-10-2021, 03:22 PM
(This post was last modified: 07-10-2021, 03:31 PM by Antti-L.)
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.
Posts: 31
Threads: 5
Likes Received: 0 in 0 posts
Likes Given: 0
Joined: Jan 2018
(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!
|