Posts: 26
Threads: 10
Joined: Mar 2012
I've been trying to use PRC_MARK to set an annual market share for a process. I don't understand what should be specified in "item"/"grp". I've tried a few things but have not been able to make the TIMES code produce any EQ_FLOMRK equations. Can you help?
As an aside, the manual and the TIMES code seem to use EQ_FLOMRK and EQ_FLMRK interchangeably, which is rather confusing.
Posts: 391
Threads: 18
Joined: May 2010
27-05-2019, 12:56 PM
(This post was last modified: 27-05-2019, 12:59 PM by Antti-L.)
From the documentation:
PRC_MARK(r,t,p,grp,c,l) – Market share of a group grp of processes in total production of commodity c.
PRC_MARK thus defines a share bound for a group of processes, identified by a user-specified group identifier, for the total commodity production/consumption of commodity c. Using PRC_MARK can thus be a more convenient way of defining market share bounds for groups of technologies than formulating user constraints. For PRC_MARK, you just need to put the group identifier in the grp position.
For example, let's say you want to define an upper bound for the market share of two processes PRC1 and PRC2, and you choose to name the group as 'TESTGRP':
PRC_MARK(r,t,'PRC1','TESTGRP',c,'UP') = 0.6;
PRC_MARK(r,t,'PRC2','TESTGRP',c,'UP') = 0.6;
As you can see, at first glance the two values may seem mutually redundant, but they actually aren't, because the constraint is formulated in the following way:
sum(s, VAR_FLO(r,v,t,'PRC1',c,s) / 0.6 + VAR_FLO(r,v,t,'PRC2',c,s) / 0.6 ) =L= sum(s, VAR_COMPRD(r,t,c,s) )
You can thus also define a sort of trade-off relation for the combined market share bound:
PRC_MARK(r,t,'PRC1','TESTGRP',c,'UP') = 0.6;
PRC_MARK(r,t,'PRC2','TESTGRP',c,'UP') = 0.3;
sum(s, VAR_FLO(r,v,t,'PRC1',c,s) / 0.6 + VAR_FLO(r,v,t,'PRC2',c,s) / 0.3 ) =L= sum(s, VAR_COMPRD(r,t,c,s) )
As mentioned in the doc, PRC_MARK is by default interpolated according to option 11.
Posts: 26
Threads: 10
Joined: Mar 2012
Thanks, Antti.
It wasn't clear to me how to define a process group.
In DD files, would that be achieved using SET PRC_GRP and then SET PRC_MAP?
I appreciate your role isn't VEDA or ANSWER support, but do you know how to define process groups in these applications? I know how to define commodity groups but I have not been able to find out how to define process groups. I'm not aware of any other parameters requiring user-defined process groups and I'm not even sure that it's possible to define such groups in these applications. For completeness, for those trying to use PRC_MARK, it would be useful to know.
Posts: 391
Threads: 18
Joined: May 2010
27-05-2019, 04:44 PM
(This post was last modified: 27-05-2019, 05:22 PM by Antti-L.)
You don't need to do anything to define the process group(s) used in PRC_MARK; they are implicit groupings.
Just choose some unique identifier (GAMS label) for the group, and use if for all the PRC_MARK that define the market share constraints for that group. You can of course use the same group label for UP/LO constraints.
In VEDA, you just need to put the label into the Other_Indexes column (works in ~FI_T, ~TFM_INS, ~TFM_UPD, ~TFM_DINS).
In ANSWER, PRC_MARK has been implemented as a special type of UC, and so there the label is the UC_N name. In both applications, filter masks for process names can be used for defining the PRC_MARK, which makes its use easy and compact.
Example:
PRC_MARK('UK','2020','PRC1','TESTGRP','CARPKM','UP') = 0.6;
PRC_MARK('UK','2020','PRC2','TESTGRP','CARPKM','UP') = 0.3;
With these two PRC_MARK parameters, the group is implicitly defined as: {PRC1, PRC2}. No need to define it any other way.
Posts: 26
Threads: 10
Joined: Mar 2012
Many thanks, Antti. That's very helpful. I have it working now.
Another problem I had was that PRC_MARK is not extrapolated by default, unlike FLO_MARK. The manual is clear about this but the VEDA-FE attributes sheet suggests that PRC_MARK is extrapolated.
Posts: 391
Threads: 18
Joined: May 2010
Thanks for the good news!
Concerning the extrapolation matter, I can see that
VEDA-FE says: Inter/Extrapolated by default method
TIMES Doc. says: Default i/e: 11
I am not really seeing inconsistency between the two, but that's probably because I am not a native English speaker. If your proficiency in English confirms it, maybe you could suggest some better wording for it to the VEDA developers?
Posts: 26
Threads: 10
Joined: Mar 2012
I've just realised I didn't reply - apologies.
The documentation says "The specific options that correspond to the default methods are 3 (the standard default) and 10 (alternative default method for bounds and RHS parameters)." PRC_MARK is listed as not being fully inter/extrapolated by default, as the default for PRC_MARK is 11.
VEDA-FE has PRC_MARK shaded green as "Inter/extrapolated by default method". Surely this would suggest method 3 or 10? That's what it suggested to me. I think it should be shaded red. Otherwise, interpreting "default method" literally would mean green shading for all attributes.
Posts: 391
Threads: 18
Joined: May 2010
Thanks. As it seems primarily a VEDA issue, I guess I can now just pass this suggestion to Amit. However, I fear users might understand red meaning that the it is not by default interpolated, although it is. But of course it is fine, if that's what users want to see there.
|