The welfare module enables the implementation of different social welfare functions.
Description | Unit | A | |
---|---|---|---|
cm_damage | cm_damage factor for forcing overshoot | x | |
cm_startyear | first optimized modelling time step | \(year\) | x |
pm_cesdata (tall, all_regi, all_in, cesParameter) |
parameters of the CES function | x | |
pm_ies (all_regi) |
intertemporal elasticity of substitution | x | |
pm_pop (tall, all_regi) |
population data | \(bn people\) | x |
pm_ts (tall) |
(t_n+1 - t_n-1)/2 for a timestep t_n | x | |
pm_ttot_val (ttot) |
value of ttot set element | x | |
sm_giga_2_non | giga to non | x | |
sm_GJ_2_TWa | multiplicative factor to convert from GJ to TWa | x | |
vm_cesIO (tall, all_regi, all_in) |
Production factor | x | |
vm_cons (ttot, all_regi) |
Consumption | x | |
vm_demFeSector (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
fe demand per sector and emission market. | \(TWa\) | x |
vm_prodSe (tall, all_regi, all_enty, all_enty, all_te) |
se production. | \(TWa\) | x |
Description | Unit | |
---|---|---|
pm_prtp (all_regi) |
Pure rate of time preference | |
pm_w (all_regi) |
Negishi weights | |
pm_welf (tall) |
Weight parameter in the welfare function to avoid jumps with cm_less_TS | |
vm_forcOs (ttot) |
Forcing overshoot | |
vm_welfareGlob | Global welfare |
The utilitarian realization loads the utilitarian aka. Benthamite social welfare function, in which social welfare is equal to the discounted intertemporal sum of utility, which itself is a function of per capita consumption.
The utilitarian realization loads the utilitarian aka. Benthamite social welfare function, in which social welfare is equal to the discounted intertemporal sum of utility, which itself is a function of per capita consumption.
Transformation of coal to liquids/gases/H2 brings local pollution, which is less accepted at higher incomes -> use the inconvenience cost channel
The objective of the optimization is to maximize the total discounted intertemporal utility. It is summed over all regions.
\[\begin{multline*} vm\_welfareGlob = \sum_{regi}\left( pm\_w(regi) \cdot v02\_welfare(regi) \right) \end{multline*}\]
Total discounted intertemporal regional welfare calculated from per capita consumption summing over all time steps taking into account the pure time preference rate. Assuming an intertemporal elasticity of substitution of 1, it holds:
q02_welfare(regi)..
v02_welfare(regi)
=e=
sum(ttot $(ttot.val ge 2005),
pm_welf(ttot) * pm_ts(ttot) * (1 / ( (1 + pm_prtp(regi))**(pm_ttot_val(ttot)-2005) ) )
* ( (pm_pop(ttot,regi)
* (
((( (vm_cons(ttot,regi)*(1-cm_damage*vm_forcOs(ttot)*vm_forcOs(ttot)))/pm_pop(ttot,regi))**(1-1/pm_ies(regi))-1)/(1-1/pm_ies(regi)) )$(pm_ies(regi) ne 1)
+ (log((vm_cons(ttot,regi)*(1-cm_damage*vm_forcOs(ttot)*vm_forcOs(ttot))) / pm_pop(ttot,regi)))$(pm_ies(regi) eq 1)
)
)
$if %cm_INCONV_PENALTY% == "on" - v02_inconvPen(ttot,regi) - v02_inconvPenCoalSolids(ttot,regi)
$if "%cm_INCONV_PENALTY_FESwitch%" == "on" - sum((entySe,entyFe,te,sector,emiMkt)$(se2fe(entySe,entyFe,te) AND entyFe2Sector(entyFe,sector) AND sector2emiMkt(sector,emiMkt) AND (entySeBio(entySe) OR entySeSyn(entySe) OR entySeFos(entySe)) ), v02_NegInconvPenFeBioSwitch(ttot,regi,entySe,entyFe,sector,emiMkt) + v02_PosInconvPenFeBioSwitch(ttot,regi,entySe,entyFe,sector,emiMkt))/1e3
)
)
;
Calculation of the inconvenience penalty:
\[\begin{multline*} v02\_inconvPen(t,regi) \geq \cdot ' local air pollution for all entySe production except for coal solids \left(=sesofos\right), which is treated separately \left(see below\right) SUM\left(pe2se(enty,entySe,te)\$\left(NOT sameas(entySe,"sesofos")\right), p02\_inconvpen\_lap(t,regi,te) \cdot vm\_prodSe(t,regi,enty,entySe,te) \right) \end{multline*}\]
\[\begin{multline*} v02\_inconvPenCoalSolids(t,regi) \geq \cdot ' local air pollution for coal: inconvinience penalty applies only for buildings use \end{multline*}\]
\[\begin{multline*} vm\_demFeSector(ttot,regi,entySe,entyFe,sector,emiMkt) - vm\_demFeSector(ttot-1,regi,entySe,entyFe,sector,emiMkt) + v02\_NegInconvPenFeBioSwitch(ttot,regi,entySe,entyFe,sector,emiMkt) - v02\_PosInconvPenFeBioSwitch(ttot,regi,entySe,entyFe,sector,emiMkt) = 0 \end{multline*}\]
The utilitarian realization loads the utilitarian aka. Benthamite social welfare function, in which social welfare is equal to the discounted intertemporal sum of utility, which itself is a function of per capita consumption.
Limitations There are no known limitations.
Description | Unit | A | |
---|---|---|---|
p02_inconvpen_lap (ttot, all_regi, all_te) |
Parameter for inconvenience penalty for local air pollution. | \(T\$/TWa at Consumption of 1000\$/cap\) | x |
p02_inconvPen_Switch_Track (ttot, all_regi) |
Parameter to track magnitude of inconvenience penalty for bio/synfuel share switching | \(share of consumption\) | x |
q02_inconvPen (ttot, all_regi) |
Calculate the inconvenience penalty v02_inconvPen | x | |
q02_inconvPenCoalSolids (ttot, all_regi) |
Calculate the inconvenience penalty v02_inconvPen | x | |
q02_inconvPenFeBioSwitch (ttot, all_regi, all_enty, all_enty, all_te, emi_sectors, all_emiMkt) |
Calculate the inconvenience penalty to avoid switching biomass and synfuel shares in hydrocarbons in buildings, transport and industry and emissions markets if costs are relatively close | x | |
q02_welfare | Regional welfare | x | |
q02_welfareGlob | Global welfare | x | |
v02_inconvPen (ttot, all_regi) |
Inconvenience penalty in the welfare function, e.g. for air pollution. Unit: ?Utils? | x | |
v02_inconvPenCoalSolids (ttot, all_regi) |
Inconvenience penalty in the welfare function, e.g. for air pollution. Unit: ?Utils? | x | |
v02_NegInconvPenFeBioSwitch (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
Negative inconvenience penalty in the welfare function for bio/synfuel shares switch between sectors and emissions markets | x | |
v02_PosInconvPenFeBioSwitch (ttot, all_regi, all_enty, all_enty, emi_sectors, all_emiMkt) |
Positive inconvenience penalty in the welfare function for bio/synfuel shares switch between sectors and emissions markets | x | |
v02_sesoInconvPenSlack (ttot, all_regi) |
Slack to avoid negative inconvenience penalty for Coal Solids | x | |
v02_welfare (all_regi) |
Regional welfare | x |
description | |
---|---|
all_emiMkt | emission markets |
all_enty | all types of quantities |
all_in | all inputs and outputs of the CES function |
all_regi | all regions |
all_te | all energy technologies, including from modules |
cesParameter | parameters of the CES functions and for calibration |
emi_sectors | comprehensive sector set used for more detailed emissions accounting (REMIND-EU) and for CH4 tier 1 scaling - potentially to be integrated with similar set all_exogEmi |
enty(all_enty) | all types of quantities |
entyFe(all_enty) | final energy types. |
entyFe2Sector(all_enty, emi_sectors) | final energy (stationary and transportation) mapping to sectors (industry, buildings, transportation and cdr) |
entySe(all_enty) | secondary energy types |
entySeBio(all_enty) | biomass secondary energy types |
entySeFos(all_enty) | secondary energy types from fossil primary energy |
entySeSyn(all_enty) | synfuel secondary energy types |
in(all_in) | All inputs and outputs of the CES function |
modules | all the available modules |
pe2se(all_enty, all_enty, all_te) | map primary energy carriers to secondary |
regi(all_regi) | all regions used in the solution process |
se2fe(all_enty, all_enty, all_te) | map secondary energy to end-use energy using a technology |
sector2emiMkt(emi_sectors, all_emiMkt) | mapping sectors to emission markets |
t(ttot) | modeling time, usually starting in 2005, but later for fixed delay runs |
tall | time index |
te(all_te) | energy technologies |
ttot(tall) | time index with spin up |
01_macro, 15_climate, 23_capitalMarket, 31_fossil, 45_carbonprice, 51_internalizeDamages, 80_optimization, core