Posts: 128
Threads: 39
Likes Received: 1 in 1 posts
Likes Given: 16
Joined: Jan 2024
I observe that VAR_NCAPM is reported while VAR_NCAP is zero (not reported), for one specific process. However, the process still shows non-zero VAR_FIN and VAR_FOUT.
PRC_CAPACT is defined, and the process is active, but no capacity investment occurs. My understanding is that VAR_NCAP being at its lower bound can lead to VAR_NCAPM being reported, yet I am trying to understand which modeling features or parameter combinations allow activity (FIN/FOUT) to occur without any installed capacity, and whether this behavior is expected for certain flow- or function-based process formulations.
Any insight into common causes or recommended modeling practices would be appreciated.
Results:
Process Commodity Attribute Region - 2030 2040 2050 2060 2070 2080 2090 2100
Tra_EV_Batt-LFP_fromrecy - Cost_Act China 0.00023 0.0014 0.0024 0.0026 0.0028 0.0029 0.0030 0.0030
Cost_NPV China 0.011
VAR_NcapM China 23.20 22.33 14.38 21.47 19.93 23.83 28.56 23.35
TRAELC Val_Flo China 822.45 4986.57 8459.045 9308.54 9865.71 10243.67 10528.0040 10751.12
VAR_FIn China 566.50 3434.75 5826.59 6411.72 6795.50 7055.84 7251.69 7405.37
VAR_POut China -566.50 -3434.75 -5826.59 -6411.72 -6795.50 -7055.84 -7251.69 -7405.37
TRDELC Val_Flo China -822.45 -4986.57 -8459.048 -9308.54 -9865.71 -10243.67 -10528.0071 -10751.12
VAR_FOut China 509.85 3091.27 5243.93 5770.55 6115.95 6350.26 6526.52 6664.83
VAR_POut China 509.85 3091.27 5243.93 5770.55 6115.95 6350.26 6526.52 6664.83
Input table:
commodity_group commodity attribute scenario - 0 2019 2050
- - NCAP_COST Transport_woSodium 5 0.0010 0.0010
NCAP_PKCNT Transport_woSodium 1
NCAP_START Transport_woSodium 2030
NCAP_TLIFE Transport_woSodium 12
PRC_CAPACT Transport_woSodium 1.31
STG_EFF Transport_woSodium 0.90
STG_MAXCYC Transport_woSodium 4000
ELC STGOUT_BND zCO2Prices_0006 2
m_fromrecy_aluminum NCAP_ICOM Transport_woSodium 3.52
m_fromrecy_cobalt NCAP_ICOM Transport_woSodium 0.00
m_fromrecy_copper NCAP_ICOM Transport_woSodium 0.94
m_fromrecy_graphite NCAP_ICOM Transport_woSodium 1.085
m_fromrecy_lithium NCAP_ICOM Transport_woSodium 0.095
m_fromrecy_manganese NCAP_ICOM Transport_woSodium 0.00
m_fromrecy_nickel NCAP_ICOM Transport_woSodium 0.00
MultiR-LFP NCAP_OCOM Transport_woSodium 1
Posts: 2,175
Threads: 26
Likes Received: 113 in 99 posts
Likes Given: 37
Joined: Jun 2010
It is a bit hard to read your tables due to the columns not being aligned. But given the header line of the results table:
Process Commodity Attribute Region - 2030 2040 2050 2060 2070 2080 2090 2100
Why in your table the VAR_FIn and VAR_FOut look like this:
VAR_FIn China 566.50 3434.75 5826.59 6411.72 6795.50 7055.84 7251.69 7405.37
VAR_FOut China 509.85 3091.27 5243.93 5770.55 6115.95 6350.26 6526.52 6664.83
So, how is it possible that there is no process or commodity related to these flows? Only Attribute and Region? In TIMES, process flows are always reported with the process and commodity indexes included. Is this not TIMES, but OseMoSys?
Also, if this is a TIMES model, you are not showing the process topology, the FI_Process specification nor the FI_Comm specification for the commodities involved, and so I don't know which kind of a process it is, which kind of flows it has, and which is the PCG.
> which modeling features or parameter combinations allow activity (FIN/FOUT) to occur without any installed capacity
In TIMES, a process without any capacity impact defined for a process flow (either directly or indirectly) can have that flow active without capacity. Such may be modeled for regular processes and storage processes. It seems that you have chosen to model a storage without capacity impact defined for the flows you have. This is slightly odd if you have STG_MAXCYC parameter defined (because it defines a "penalty refurbishment cost" based on the relation of the output flows to the capacity, to be paid if the cycles are found to be exceeded), but if that cost is paid that might still be so.
If it is a storage, and you don't like that the process is letting VAR_FIn and VAR_FOut flows to be active without storage operation, you could impose a FLO_SHAR between the output and the activity, limiting the output flow in proportion to the activity for example: FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1;
Posts: 128
Threads: 39
Likes Received: 1 in 1 posts
Likes Given: 16
Joined: Jan 2024
(29-01-2026, 04:44 PM)Antti-L Wrote: It is a bit hard to read your tables due to the columns not being aligned. But given the header line of the results table:
Process Commodity Attribute Region - 2030 2040 2050 2060 2070 2080 2090 2100
Why in your table the VAR_FIn and VAR_FOut look like this:
VAR_FIn China 566.50 3434.75 5826.59 6411.72 6795.50 7055.84 7251.69 7405.37
VAR_FOut China 509.85 3091.27 5243.93 5770.55 6115.95 6350.26 6526.52 6664.83
So, how is it possible that there is no process or commodity related to these flows? Only Attribute and Region? In TIMES, process flows are always reported with the process and commodity indexes included. Is this not TIMES, but OseMoSys?
Also, if this is a TIMES model, you are not showing the process topology, the FI_Process specification nor the FI_Comm specification for the commodities involved, and so I don't know which kind of a process it is, which kind of flows it has, and which is the PCG.
> which modeling features or parameter combinations allow activity (FIN/FOUT) to occur without any installed capacity
In TIMES, a process without any capacity impact defined for a process flow (either directly or indirectly) can have that flow active without capacity. Such may be modeled for regular processes and storage processes. It seems that you have chosen to model a storage without capacity impact defined for the flows you have. This is slightly odd if you have STG_MAXCYC parameter defined (because it defines a "penalty refurbishment cost" based on the relation of the output flows to the capacity, to be paid if the cycles are found to be exceeded), but if that cost is paid that might still be so.
If it is a storage, and you don't like that the process is letting VAR_FIn and VAR_FOut flows to be active without storage operation, you could impose a FLO_SHAR between the output and the activity, limiting the output flow in proportion to the activity for example: FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1;
Hi Antti,
Sorry for the confusion. Each time I try to attach figures or screenshots, they do not display properly.
Adding FLO_SHAR does not change the results; please see below for the complete set of outputs for this process.
and the input as below:
I am going to check the commidity -group further, but would appreciate it if any further reply.
Best,
Xiao
Posts: 2,175
Threads: 26
Likes Received: 113 in 99 posts
Likes Given: 37
Joined: Jun 2010
29-01-2026, 11:03 PM
(This post was last modified: 29-01-2026, 11:04 PM by Antti-L.)
I suggested FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1. Your FLO_SHAR (in your new input table) is not what I suggested and will of course not work, because storage processes do not support such "standard" FLO_SHAR.
Posts: 128
Threads: 39
Likes Received: 1 in 1 posts
Likes Given: 16
Joined: Jan 2024
(29-01-2026, 11:03 PM)Antti-L Wrote: I suggested FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1. Your FLO_SHAR (in your new input table) is not what I suggested and will of course not work, because storage processes do not support such "standard" FLO_SHAR.
Hi Antti,
could you please point me to the specific TIMES documentation or reference examples that describe how FLO_SHAR for storage be parameterized?
Best,
Xiao
Posts: 2,175
Threads: 26
Likes Received: 113 in 99 posts
Likes Given: 37
Joined: Jun 2010
30-01-2026, 12:04 AM
(This post was last modified: 30-01-2026, 01:17 AM by Antti-L.)
You don't need any TIMES documentation for that, because it's all there:
FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1.
Under VEDA, the 'ACT' goes to the CommGrp column (aka Other_Indexes). Don't include the apostrophes. And the cout here refers to the output flow commodity. And p refers to the process, and y refers to the year (or '0'), and r to the region. So, what you may have needed is VEDA documentation...
So, your two FLO_SHAR instances for TRDELC were already close to what I suggested: Just change the group 'Tra_EV_Batt-LFP_fromrecy_NRGO' to 'ACT' in both of them. And remove the two for TRAELC.
Posts: 128
Threads: 39
Likes Received: 1 in 1 posts
Likes Given: 16
Joined: Jan 2024
(30-01-2026, 12:04 AM)Antti-L Wrote: You don't need any TIMES documentation for that, because it's all there:
FLO_SHAR(r,y,p,cout,'ACT','ANNUAL','UP')=1.
Under VEDA, the 'ACT' goes to the CommGrp column (aka Other_Indexes). Don't include the apostrophes. And the cout here refers to the output flow commodity. And p refers to the process, and y refers to the year (or '0'), and r to the region. So, what you may have needed is VEDA documentation...
So, your two FLO_SHAR instances for TRDELC were already close to what I suggested: Just change the group 'Tra_EV_Batt-LFP_fromrecy_NRGO' to 'ACT' in both of them. And remove the two for TRAELC.
Thank you Antti, this is helpful, many thanks
|