Welcome to TEMOA Model documentation

Introduction

To synchronize model development and documentation efforts, we are using autodocumentation generators. This document is autogenerated directly from model source code.

Please refer to the main website (http://temoaproject.org) for more details.

Objective Formulation

temoa_rules.TotalCost_rule(model)[source]

Objective function. This function is currently a simple summation of all items in V_FlowOut multiplied by CommunityProductionCost. For the time being (i.e. during development), this is intended to make development and debugging simpler.

\sum_{time\_optimize} \sum_{time\_of\_day} \sum_{tech\_all} \sum_{vintage\_all} \sum_{commodity\_physical} \sum_{inputs} \{ V\_FlowOut( period,season,time\_of\_day,inputs,Commodity\_physical)\\
* CommodityProductionCost( period, tech, vintage) \}

Key Model Constraints

temoa_rules.ActivityConstraint_rule(A_period, A_season, A_time_of_day, A_tech, A_vintage, M)[source]

As V_Activity is a derived variable, the constraint sets V_Activity to the sum over input and output energy carriers of a process.

(for each period, season, time_of_day, tech, vintage) V_Activity[p,s,d,t,v] = sum((inp,out), V_FlowOut[p,s,d,inp,t,v,out])

V\_Activity [period,season,time\_of\_day, tech, vintage] = \sum_{input} \sum_{output} V\_FlowOut [period,season,time\_of\_day,input,tech,vintage,output]\\
\forall ( period,season,time\_of\_day,tech,vintage )

temoa_rules.CapacityConstraint_rule(A_period, A_season, A_time_of_day, A_tech, A_vintage, M)[source]

V_Capacity is a derived variable; this constraint sets V_Capacity to at least be able to handle the activity in any optimization time slice. In effect, this sets V_Capacity[p,t,v] to the max of the activity for similar indices: max(Activity[p,*,*t,v])

(for each period, season, time_of_day, tech, vintage) V_Capacity[t,v] * CapacityFactor[t,v] >= V_Activity[p,s,d,t,v]

V\_Capacity [tech,vintage]*CapacityFactor [tech,vintage] <= V\_Activity [period,season,time\_of\_day,tech,vintage]\\
\forall (period,season,time\_of\_day,tech,vintage)

temoa_rules.ExistingCapacityConstraint_rule(A_tech, A_vintage, M)[source]

For vintage periods that the model is not to optimize, explicitly set the capacity values based on dat file input.

(for each tech, vintage_exist) V_Capacity[t,v] = Param(Existingcapacity[t,v])

V\_Capacity [tech,vintage] = Param(Existingcapacity [tech, vintage])\\
\forall (tech,vintage\_exist)

temoa_rules.ResourceExtractionConstraint_rule(A_period, A_resource, M)[source]

Prevent TEMOA from extracting an endless supply of energy from “the ether”.

(for each period, resource) sum((season,time_of_day,tech,vintage),V_FlowIn[p,*,*,r,*,*r]) <= Param(ResourceBound[p,r])

\sum_{season} \sum_{time\_of\_day} \sum_{tech} \sum_{vintage} V\_FlowIn [period,season,time\_of\_day,resource,tech,vintage,resource]\\
\forall (period,resource)

temoa_rules.CommodityBalanceConstraint_rule(A_period, A_season, A_time_of_day, A_carrier, M)[source]

Ensure that the FlowOut of a produced energy carrier at least meets the demand of the needed FlowIn of that energy carrier. That is, this constraint maintains energy flows between processes.

(for each period, season, time_of_day, energy_carrier) sum((inp,tech,vintage),V_FlowOut[p,s,t,*,*,*,c]) >= sum((tech,vintage,out),V_FlowIn[p,s,t,c,*,*,*]) sum((inp,tech,vintage),V_FlowOut[period,season,time_of_day,*,*,*,carrier]) >= sum((tech,vintage,out),V_FlowIn[period,season,time_of_day,carrier,*,*,*])

\sum_{input} \sum_{vintage} \sum_{tech} V\_FlowOut [period,season,time\_of\_day,input,tech,vintage,carrier]\\
\sum_{input} \sum_{vintage} \sum_{tech} V\_FlowOut [period,season,time_of_day,carrier,tech,vintage,output]\\
\forall (period,season, time\_of\_day, energy\_carrier)

temoa_rules.ProcessBalanceConstraint_rule(A_period, A_season, A_time_of_day, A_inp, A_tech, A_vintage, A_out, M)[source]

Analogous to CommodityBalance, this constraint ensures that the amount of energy leaving a process is not more than the amount entering it.

(for each period, season, time_of_day, inp_carrier, vintage, out_carrier) V_FlowOut[p,s,d,t,v,o] <= V_FlowIn[p,s,d,t,v,o] * Efficiency[i,t,v,o]

V\_FlowOut [period,season,time\_of\_day,input,tech,vintage,output] <=  \\
V_FlowIn [period,season,time\_of\_day,input,tech,vintage,output]* Efficiency [input,tech,vintage,output] \\
\forall (period,season, time\_of\_day, inp\_carrier,tech,vintage,out\_carrier)

temoa_rules.DemandConstraint_rule(A_period, A_season, A_time_of_day, A_comm, M)[source]

The driving constraint, this rule ensures that supply at least equals demand.

(for each period, season, time_of_day, commodity) sum((inp,tech,vintage),V_FlowOut[p,s,d,*,*,*,commodity]) >= Demand[p,s,d,commodity]

\sum_{tech\_all} \sum_{vintage\_all} \sum_{input} V\_FlowOut [period,season,time\_of\_day,input,tech,vintage,comm]\\
\forall (period,season,time\_of\_day,comm)

Indices and tables

Table Of Contents

This Page