Materials and Emission Streams#

This is a continuation of the Multiscale MILP example

We will be adding the following considerations:

  1. material for the establishment of operations

  2. global warming potential induced as a sum of our decisions and choices

See Multiscale MILP#

# !pip install energiapy # uncomment and run to install Energia, if not in environment
from energia import *

m = Model('design_scheduling_material')
m.q = Periods()
m.y = 4 * m.q
m.usd = Currency()
m.declare(Resource, ['power', 'wind', 'solar'])
m.solar.consume(m.q) <= 100
m.wind.consume <= 400
m.power.release.prep(180) >= [0.6, 0.7, 0.8, 0.3]

m.wf = Process()
m.wf(m.power) == -1 * m.wind
m.wf.capacity.x <= 100
m.wf.capacity.x >= 10
m.wf.operate.prep(norm=True) <= [0.9, 0.8, 0.5, 0.7]
m.usd.spend(m.wf.capacity) == 990637 + 3354
m.usd.spend(m.wf.operate) == 49

m.pv = Process()
m.pv(m.power) == -1 * m.solar
m.pv.capacity.x <= 100
m.pv.capacity.x >= 10
m.pv.operate.prep(norm=True) <= [0.6, 0.8, 0.9, 0.7]
m.usd.spend(m.pv.capacity) == 567000 + 872046
m.usd.spend(m.pv.operate) == 90000

m.lii = Storage()
m.lii(m.power) == 0.9
m.lii.capacity.x <= 100
m.lii.capacity.x >= 10
m.usd.spend(m.lii.capacity) == 1302182 + 41432
m.usd.spend(m.lii.inventory) == 2000
βš–  Initiated solar balance in (l0, q)                                       ⏱ 0.0003 s
πŸ”—  Bound [≀] solar consume in (l0, q)                                       ⏱ 0.0013 s
βš–  Initiated wind balance in (l0, y)                                        ⏱ 0.0001 s
πŸ”—  Bound [≀] wind consume in (l0, y)                                        ⏱ 0.0008 s
βš–  Initiated power balance in (l0, q)                                       ⏱ 0.0001 s
πŸ”—  Bound [β‰₯] power release in (l0, q)                                       ⏱ 0.0007 s
πŸ”—  Bound [≀] wf capacity in (l0, y)                                         ⏱ 0.0002 s
πŸ”—  Bound [β‰₯] wf capacity in (l0, y)                                         ⏱ 0.0001 s
πŸ”—  Bound [≀] wf operate in (l0, q)                                          ⏱ 0.0003 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0003 s
🧭  Mapped time for operate (wf, l0, q) ⟺ (wf, l0, y)                        ⏱ 0.0003 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0002 s
πŸ”—  Bound [≀] pv capacity in (l0, y)                                         ⏱ 0.0002 s
πŸ”—  Bound [β‰₯] pv capacity in (l0, y)                                         ⏱ 0.0002 s
πŸ”—  Bound [≀] pv operate in (l0, q)                                          ⏱ 0.0003 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0002 s
🧭  Mapped time for operate (pv, l0, q) ⟺ (pv, l0, y)                        ⏱ 0.0002 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0002 s
πŸ”—  Bound [≀] lii.stored invcapacity in (l0, y)                              ⏱ 0.0003 s
πŸ”—  Bound [β‰₯] lii.stored invcapacity in (l0, y)                              ⏱ 0.0001 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0002 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0002 s

Indicator Stream#

Indicators scale the impact of some decision or flow and project it only a common dimension allowing the calculation of overall impact as a single metric value

In this case, we consider global warming potential (GWP).

m.gwp = Environ()

Now say that we want to consider the impact of setting up operations (specific to the act of construction)

These can be provided as calculations

m.gwp.emit(m.wf.capacity) == 1000
m.gwp.emit(m.pv.capacity) == 2000
m.gwp.emit(m.lii.capacity) == 3000
m.emit.show()
πŸ”—  Bound [=] gwp emit in (l0, y)                                            ⏱ 0.0003 s
πŸ”—  Bound [=] gwp emit in (l0, y)                                            ⏱ 0.0003 s
πŸ”—  Bound [=] gwp emit in (l0, y)                                            ⏱ 0.0003 s
\[\displaystyle [22]\text{ }{\mathbf{{\mathbf{emit}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{wf}} - 1000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [23]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{pv}} - 2000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [24]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 3000 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]

Note that impact streams are mapped across scales but not balanced, unless a negative (relatively) impact is also assessed! In the case of emission, this would be abatement.

Material Stream#

Note that all the objects found in energia.components.commodity.misc are still resources (Land, Material, etc.)

This will allow for the modeling of an expansive type of processes.

Examples:

  1. land clearance to transform agricultural land into industrial, or land remediation

  2. resource intense material recycling

  3. some resource flowing being treated as emission flows

The possibilities are vast… The advanced modeler may prefer to use Resource() for everything [see Resource Task Network (RTN) Framework]

In the following example, we consider a limit to cement consumption, as also an expense and gwp impact associated with it

m.cement = Material()
m.cement.consume <= 1000000
m.usd.spend(m.cement.consume) == 17
m.gwp.emit(m.cement.consume) == 0.9
βš–  Initiated cement balance in (l0, y)                                      ⏱ 0.0001 s
πŸ”—  Bound [≀] cement consume in (l0, y)                                      ⏱ 0.0011 s
πŸ”—  Bound [=] usd spend in (l0, y)                                           ⏱ 0.0003 s
πŸ”—  Bound [=] gwp emit in (l0, y)                                            ⏱ 0.0003 s

Next, we provide details of the use of cement across all operations

m.cement.use(m.wf.capacity) == 400
m.cement.use(m.pv.capacity) == 560
m.cement.use(m.lii.capacity) == 300
βš–  Updated cement balance with use(cement, l0, y, capacity, wf)             ⏱ 0.0001 s
πŸ”—  Bound [=] cement use in (l0, y)                                          ⏱ 0.0012 s
βš–  Updated cement balance with use(cement, l0, y, capacity, pv)             ⏱ 0.0001 s
πŸ”—  Bound [=] cement use in (l0, y)                                          ⏱ 0.0008 s
βš–  Updated cement balance with use(cement, l0, y, invcapacity, lii.stored)  ⏱ 0.0003 s
πŸ”—  Bound [=] cement use in (l0, y)                                          ⏱ 0.0010 s

Material use is summed up across all operations, and adheres to an upper bound in terms of consumption.

m.cement.show()
\[\displaystyle [31]\text{ }{\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 300 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]
\[\displaystyle [27]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{cons}}},{cement}} - 17 \cdot {\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} = 0\]
\[\displaystyle [29]\text{ }{\mathbf{{\mathbf{use}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{wf}} - 400 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [28]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cons}}},{cement}} - 0.9 \cdot {\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} = 0\]
\[\displaystyle [25]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} - {\mathbf{{\mathbf{use}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{wf}} - {\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{icap}}},{lii.stored}} = 0\]
\[\displaystyle [30]\text{ }{\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{pv}} - 560 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [26]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} - 1000000 \leq 0\]

GWP impact is now the sum of impact from material use as well as constuction

m.emit.show()
\[\displaystyle [22]\text{ }{\mathbf{{\mathbf{emit}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{wf}} - 1000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [23]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{pv}} - 2000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [28]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cons}}},{cement}} - 0.9 \cdot {\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} = 0\]
\[\displaystyle [24]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 3000 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]

Locate Operations#

m.network.locate(m.wf, m.pv, m.lii)
πŸ’‘  Assumed wf capacity unbounded in (l0, y)                                 ⏱ 0.0001 s
πŸ’‘  Assumed wf operate bounded by capacity in (l0, q)                        ⏱ 0.0001 s
βš–  Updated power balance with produce(power, l0, q, operate, wf)            ⏱ 0.0001 s
πŸ”—  Bound [=] power produce in (l0, q)                                       ⏱ 0.0010 s
βš–  Updated wind balance with expend(wind, l0, y, operate, wf)               ⏱ 0.0001 s
πŸ”—  Bound [=] wind expend in (l0, y)                                         ⏱ 0.0008 s
🏭  Operating streams introduced for wf in l0                                ⏱ 0.0031 s
πŸ—  Construction streams introduced for wf in l0                             ⏱ 0.0000 s
🌍  Located wf in l0                                                         ⏱ 0.0045 s
πŸ’‘  Assumed pv capacity unbounded in (l0, y)                                 ⏱ 0.0001 s
πŸ’‘  Assumed pv operate bounded by capacity in (l0, q)                        ⏱ 0.0001 s
βš–  Updated power balance with produce(power, l0, q, operate, pv)            ⏱ 0.0001 s
πŸ”—  Bound [=] power produce in (l0, q)                                       ⏱ 0.0010 s
βš–  Updated solar balance with expend(solar, l0, q, operate, pv)             ⏱ 0.0001 s
πŸ”—  Bound [=] solar expend in (l0, q)                                        ⏱ 0.0008 s
🏭  Operating streams introduced for pv in l0                                ⏱ 0.0025 s
πŸ—  Construction streams introduced for pv in l0                             ⏱ 0.0000 s
🌍  Located pv in l0                                                         ⏱ 0.0038 s
πŸ’‘  Assumed lii capacity unbounded in (l0, y)                                ⏱ 0.0001 s
🧭  Mapped time for inventory (lii.stored, l0, q) ⟺ (lii.stored, l0, y)      ⏱ 0.0001 s
βš–  Initiated lii.stored balance in (l0, q)                                  ⏱ 0.0003 s
πŸ”—  Bound [≀] lii.stored inventory in (l0, q)                                ⏱ 0.0030 s
πŸ’‘  Assumed lii inventory bounded by capacity in (l0, q)                     ⏱ 0.0034 s
πŸ’‘  Assumed lii.charge capacity unbounded in (l0, y)                         ⏱ 0.0002 s
πŸ”—  Bound [≀] lii.charge operate in (l0, y)                                  ⏱ 0.0003 s
πŸ’‘  Assumed lii.charge operate bounded by capacity in (l0, y)                ⏱ 0.0005 s
🧭  Mapped time for operate (lii.charge, l0, q) ⟺ (lii.charge, l0, y)        ⏱ 0.0001 s
βš–  Updated lii.stored balance with produce(lii.stored, l0, q, operate, lii.charge) ⏱ 0.0001 s
πŸ”—  Bound [=] lii.stored produce in (l0, q)                                  ⏱ 0.0008 s
βš–  Updated power balance with expend(power, l0, q, operate, lii.charge)     ⏱ 0.0001 s
πŸ”—  Bound [=] power expend in (l0, q)                                        ⏱ 0.0008 s
🏭  Operating streams introduced for lii.charge in l0                        ⏱ 0.0028 s
πŸ—  Construction streams introduced for lii.charge in l0                     ⏱ 0.0000 s
🌍  Located lii.charge in l0                                                 ⏱ 0.0044 s
πŸ’‘  Assumed lii.discharge capacity unbounded in (l0, y)                      ⏱ 0.0002 s
πŸ”—  Bound [≀] lii.discharge operate in (l0, y)                               ⏱ 0.0003 s
πŸ’‘  Assumed lii.discharge operate bounded by capacity in (l0, y)             ⏱ 0.0005 s
🧭  Mapped time for operate (lii.discharge, l0, q) ⟺ (lii.discharge, l0, y)  ⏱ 0.0001 s
βš–  Updated power balance with produce(power, l0, q, operate, lii.discharge) ⏱ 0.0001 s
πŸ”—  Bound [=] power produce in (l0, q)                                       ⏱ 0.0008 s
βš–  Updated lii.stored balance with expend(lii.stored, l0, q, operate, lii.discharge) ⏱ 0.0002 s
πŸ”—  Bound [=] lii.stored expend in (l0, q)                                   ⏱ 0.0012 s
🏭  Operating streams introduced for lii.discharge in l0                     ⏱ 0.0036 s
πŸ—  Construction streams introduced for lii.discharge in l0                  ⏱ 0.0000 s
🌍  Located lii.discharge in l0                                              ⏱ 0.0053 s
πŸ—  Construction streams introduced for lii in l0                            ⏱ 0.0000 s
🌍  Located lii in l0                                                        ⏱ 0.0145 s

Optimization#

Minimize GWP#

Let us minimize GWP this time. Note that m.usd.spend.opt() can still be used!

m.gwp.emit.opt()
🧭  Mapped samples for emit (gwp, l0, y, capacity, wf) ⟺ (gwp, l0, y)        ⏱ 0.0001 s
🧭  Mapped samples for emit (gwp, l0, y, capacity, pv) ⟺ (gwp, l0, y)        ⏱ 0.0002 s
🧭  Mapped samples for emit (gwp, l0, y, invcapacity, lii.stored) ⟺ (gwp, l0, y) ⏱ 0.0003 s
🧭  Mapped samples for emit (gwp, l0, y, consume, cement) ⟺ (gwp, l0, y)     ⏱ 0.0002 s
πŸ“  Generated Program(design_scheduling_material).mps                        ⏱ 0.0034 s
Set parameter Username
Academic license - for non-commercial use only - expires 2026-08-01
Read MPS format model from file Program(design_scheduling_material).mps
Reading time = 0.00 seconds
PROGRAM(DESIGN_SCHEDULING_MATERIAL): 93 rows, 87 columns, 215 nonzeros
πŸ“  Generated gurobipy model. See .formulation                               ⏱ 0.0153 s
Gurobi Optimizer version 12.0.3 build v12.0.3rc0 (win64 - Windows 11.0 (26100.2))

CPU model: 13th Gen Intel(R) Core(TM) i7-13700, instruction set [SSE2|AVX|AVX2]
Thread count: 16 physical cores, 24 logical processors, using up to 24 threads

Optimize a model with 93 rows, 87 columns and 215 nonzeros
Model fingerprint: 0x347f9574
Variable types: 84 continuous, 3 integer (3 binary)
Coefficient statistics:
  Matrix range     [6e-01, 1e+06]
  Objective range  [1e+00, 1e+00]
  Bounds range     [1e+00, 1e+00]
  RHS range        [7e+01, 1e+06]
Presolve removed 88 rows and 81 columns
Presolve time: 0.00s
Presolved: 5 rows, 6 columns, 18 nonzeros
Variable types: 6 continuous, 0 integer (0 binary)

Root relaxation: objective 4.752148e+05, 2 iterations, 0.00 seconds (0.00 work units)

    Nodes    |    Current Node    |     Objective Bounds      |     Work
 Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time

*    0     0               0    475214.81481 475214.815  0.00%     -    0s

Explored 1 nodes (2 simplex iterations) in 0.01 seconds (0.00 work units)
Thread count was 24 (of 24 available processors)

Solution count 1: 475215 

Optimal solution found (tolerance 1.00e-04)
Best objective 4.752148148148e+05, best bound 4.752148148148e+05, gap 0.0000%
πŸ“  Generated Solution object for Program(design_scheduling_material). See .solution ⏱ 0.0007 s
βœ…  Program(design_scheduling_material) optimized using gurobi. Display using .output() ⏱ 0.0263 s

Minimize Cost#

The same problem can also be minimized in terms of cost

m.usd.spend.opt()
🧭  Mapped samples for spend (usd, l0, y, capacity, wf) ⟺ (usd, l0, y)       ⏱ 0.0001 s
🧭  Mapped samples for spend (usd, l0, y, operate, wf) ⟺ (usd, l0, y)        ⏱ 0.0003 s
🧭  Mapped samples for spend (usd, l0, y, capacity, pv) ⟺ (usd, l0, y)       ⏱ 0.0002 s
🧭  Mapped samples for spend (usd, l0, y, operate, pv) ⟺ (usd, l0, y)        ⏱ 0.0001 s
🧭  Mapped samples for spend (usd, l0, y, invcapacity, lii.stored) ⟺ (usd, l0, y) ⏱ 0.0001 s
🧭  Mapped samples for spend (usd, l0, y, inventory, lii.stored) ⟺ (usd, l0, y) ⏱ 0.0002 s
🧭  Mapped samples for spend (usd, l0, y, consume, cement) ⟺ (usd, l0, y)    ⏱ 0.0002 s
πŸ“  Generated Program(design_scheduling_material).mps                        ⏱ 0.0031 s
Warning: row name O0 in column section at line 321 not defined.
Read MPS format model from file Program(design_scheduling_material).mps
Reading time = 0.00 seconds
PROGRAM(DESIGN_SCHEDULING_MATERIAL): 94 rows, 88 columns, 223 nonzeros
πŸ“  Generated gurobipy model. See .formulation                               ⏱ 0.0123 s
Gurobi Optimizer version 12.0.3 build v12.0.3rc0 (win64 - Windows 11.0 (26100.2))

CPU model: 13th Gen Intel(R) Core(TM) i7-13700, instruction set [SSE2|AVX|AVX2]
Thread count: 16 physical cores, 24 logical processors, using up to 24 threads

Optimize a model with 94 rows, 88 columns and 223 nonzeros
Model fingerprint: 0x59224a16
Variable types: 85 continuous, 3 integer (3 binary)
Coefficient statistics:
  Matrix range     [6e-01, 1e+06]
  Objective range  [1e+00, 1e+00]
  Bounds range     [1e+00, 1e+00]
  RHS range        [7e+01, 1e+06]
Presolve removed 82 rows and 76 columns
Presolve time: 0.00s
Presolved: 12 rows, 12 columns, 34 nonzeros
Variable types: 12 continuous, 0 integer (0 binary)

Root relaxation: objective 3.024203e+08, 6 iterations, 0.00 seconds (0.00 work units)

    Nodes    |    Current Node    |     Objective Bounds      |     Work
 Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time

*    0     0               0    3.024203e+08 3.0242e+08  0.00%     -    0s

Explored 1 nodes (6 simplex iterations) in 0.01 seconds (0.00 work units)
Thread count was 24 (of 24 available processors)

Solution count 1: 3.0242e+08 

Optimal solution found (tolerance 1.00e-04)
Best objective 3.024202544136e+08, best bound 3.024202544136e+08, gap 0.0000%
πŸ“  Generated Solution object for Program(design_scheduling_material). See .solution ⏱ 0.0005 s
βœ…  Program(design_scheduling_material) optimized using gurobi. Display using .output() ⏱ 0.0230 s
m.show()

Mathematical Program for Program(design_scheduling_material)



Index Sets

\[\displaystyle {currencies} = \{ {{usd}} \}\]
\[\displaystyle {resources} = \{ {{power}, {wind}, {solar}, {lii.stored}} \}\]
\[\displaystyle {locations} = \{ {{l0}} \}\]
\[\displaystyle {y} = \{ {{{{y}_{0}}}} \}\]
\[\displaystyle {q} = \{ {{{{q}_{0}}}, {{{q}_{1}}}, {{{q}_{2}}}, {{{q}_{3}}}} \}\]
\[\displaystyle {processes} = \{ {{wf}, {pv}, {lii.charge}, {lii.discharge}} \}\]
\[\displaystyle {storages} = \{ {{lii}} \}\]
\[\displaystyle {materials} = \{ {{cement}} \}\]



Objective

\[\displaystyle min \hspace{0.2cm} {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}}}\]
\[\displaystyle min \hspace{0.2cm} {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}}}\]



s.t.

Balance Constraint Sets

\[\displaystyle [0]\text{ }{\mathbf{{\mathbf{{cons}}}}}_{{solar},{l0},{y},{q}} - {\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{solar},{l0},{y},{q},{\mathbf{{opr}}},{pv}} = 0\]
\[\displaystyle [2]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{wind},{l0},{y}} - {\mathbf{{\mathbf{{expd}}}}}_{{wind},{l0},{y},{\mathbf{{opr}}},{wf}} = 0\]
\[\displaystyle [4]\text{ }-{\mathbf{{\mathbf{{rlse}}}}}_{{power},{l0},{y},{q}} + {\mathbf{{\mathbf{prod}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{wf}} + {\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{lii.charge}} + {\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{lii.discharge}} = 0\]
\[\displaystyle [25]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} - {\mathbf{{\mathbf{use}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{wf}} - {\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{icap}}},{lii.stored}} = 0\]
\[\displaystyle [37]\text{ }-{\mathbf{{\mathbf{{\mathbf{{\mathbf{{inv}}}}}}}}}_{{lii.stored},{l0},{y},{q}} + {\mathbf{{\mathbf{{\mathbf{{\mathbf{{inv}}}}}}}}}_{{lii.stored},{l0},{y},{{q}-1}} + {\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{lii.stored},{l0},{y},{q},{\mathbf{{opr}}},{lii.charge}} - {\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{lii.stored},{l0},{y},{q},{\mathbf{{opr}}},{lii.discharge}} = 0\]

Binds Constraint Sets

\[\displaystyle [1]\text{ }{\mathbf{{\mathbf{{cons}}}}}_{{solar},{l0},{y},{q}} - 100 \leq 0\]
\[\displaystyle [3]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{wind},{l0},{y}} - 400 \leq 0\]
\[\displaystyle [5]\text{ }-{\mathbf{{\mathbf{{rlse}}}}}_{{power},{l0},{y},{q}} + {\mathrm{Ο†}}_{{}} \leq 0\]
\[\displaystyle [6]\text{ }{\mathbf{{\mathbf{{cap}}}}}_{{wf},{l0},{y}} - 100 \cdot {\mathbf{{\mathbf{{\breve{{cap}}}}}}}_{{wf},{l0},{y}} \leq 0\]
\[\displaystyle [7]\text{ }10 \cdot {\mathbf{{\mathbf{{\breve{{cap}}}}}}}_{{wf},{l0},{y}} - {\mathbf{{\mathbf{{cap}}}}}_{{wf},{l0},{y}} \leq 0\]
\[\displaystyle [8]\text{ }{\mathbf{{\mathbf{{opr}}}}}_{{wf},{l0},{y},{q}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{cap}}}}}_{{wf},{l0},{y}} \leq 0\]
\[\displaystyle [12]\text{ }{\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} - 100 \cdot {\mathbf{{\mathbf{{\mathbf{{\breve{{cap}}}}}}}}}_{{pv},{l0},{y}} \leq 0\]
\[\displaystyle [13]\text{ }10 \cdot {\mathbf{{\mathbf{{\mathbf{{\breve{{cap}}}}}}}}}_{{pv},{l0},{y}} - {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} \leq 0\]
\[\displaystyle [14]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv},{l0},{y},{q}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} \leq 0\]
\[\displaystyle [18]\text{ }{\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} - 100 \cdot {\mathbf{{\mathbf{{\breve{{icap}}}}}}}_{{lii.stored},{l0},{y}} \leq 0\]
\[\displaystyle [19]\text{ }10 \cdot {\mathbf{{\mathbf{{\breve{{icap}}}}}}}_{{lii.stored},{l0},{y}} - {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} \leq 0\]
\[\displaystyle [26]\text{ }{\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} - 1000000 \leq 0\]
\[\displaystyle [38]\text{ }{\mathbf{{\mathbf{{\mathbf{{inv}}}}}}}_{{lii.stored},{l0},{y},{q}} - {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} \leq 0\]
\[\displaystyle [39]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.charge},{l0},{y}} - {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{lii.charge},{l0},{y}} \leq 0\]
\[\displaystyle [43]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.discharge},{l0},{y}} - {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{lii.discharge},{l0},{y}} \leq 0\]

Calculations Constraint Sets

\[\displaystyle [9]\text{ }{\mathbf{{\mathbf{spend}}}}_{{usd},{l0},{y},{\mathbf{{cap}}},{wf}} - 993991 \cdot {\mathbf{{\mathbf{{cap}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [11]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{opr}}},{wf}} - 49 \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [15]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{cap}}},{pv}} - 1439046 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [17]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{opr}}},{pv}} - 90000 \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [20]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 1343614 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]
\[\displaystyle [21]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{inv}}},{lii.stored}} - 2000 \cdot {\mathbf{{\mathbf{{inv}}}}}_{{lii.stored},{l0},{y}} = 0\]
\[\displaystyle [22]\text{ }{\mathbf{{\mathbf{emit}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{wf}} - 1000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [23]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{pv}} - 2000 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [24]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 3000 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]
\[\displaystyle [27]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y},{\mathbf{{cons}}},{cement}} - 17 \cdot {\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} = 0\]
\[\displaystyle [28]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y},{\mathbf{{cons}}},{cement}} - 0.9 \cdot {\mathbf{{\mathbf{{\mathbf{{cons}}}}}}}_{{cement},{l0},{y}} = 0\]
\[\displaystyle [29]\text{ }{\mathbf{{\mathbf{use}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{wf}} - 400 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [30]\text{ }{\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{cap}}},{pv}} - 560 \cdot {\mathbf{{\mathbf{{\mathbf{{cap}}}}}}}_{{pv},{l0},{y}} = 0\]
\[\displaystyle [31]\text{ }{\mathbf{{\mathbf{{\mathbf{use}}}}}}_{{cement},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - 300 \cdot {\mathbf{{\mathbf{{icap}}}}}_{{lii.stored},{l0},{y}} = 0\]
\[\displaystyle [32]\text{ }{\mathbf{{\mathbf{prod}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{wf}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{wf},{l0},{y},{q}} = 0\]
\[\displaystyle [33]\text{ }{\mathbf{{\mathbf{{expd}}}}}_{{wind},{l0},{y},{\mathbf{{opr}}},{wf}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{wf},{l0},{y}} = 0\]
\[\displaystyle [34]\text{ }{\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{pv}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv},{l0},{y},{q}} = 0\]
\[\displaystyle [35]\text{ }{\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{solar},{l0},{y},{q},{\mathbf{{opr}}},{pv}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv},{l0},{y},{q}} = 0\]
\[\displaystyle [41]\text{ }{\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{lii.stored},{l0},{y},{q},{\mathbf{{opr}}},{lii.charge}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.charge},{l0},{y},{q}} = 0\]
\[\displaystyle [42]\text{ }{\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{lii.charge}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.charge},{l0},{y},{q}} = 0\]
\[\displaystyle [45]\text{ }{\mathbf{{\mathbf{{\mathbf{prod}}}}}}_{{power},{l0},{y},{q},{\mathbf{{opr}}},{lii.discharge}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.discharge},{l0},{y},{q}} = 0\]
\[\displaystyle [46]\text{ }{\mathbf{{\mathbf{{\mathbf{{expd}}}}}}}_{{lii.stored},{l0},{y},{q},{\mathbf{{opr}}},{lii.discharge}} - {\mathrm{Ο†}}_{{}} \cdot {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.discharge},{l0},{y},{q}} = 0\]

Mapping Constraint Sets

\[\displaystyle [10]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{wf},{l0},{y}} - \sum_{i \in {q}} {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{wf}, {l0}, {y}, i} = 0\]
\[\displaystyle [16]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv},{l0},{y}} - \sum_{i \in {q}} {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{pv}, {l0}, {y}, i} = 0\]
\[\displaystyle [36]\text{ }{\mathbf{{\mathbf{{\mathbf{{inv}}}}}}}_{{lii.stored},{l0},{y}} - \sum_{i \in {q}} {\mathbf{{\mathbf{{\mathbf{{inv}}}}}}}_{{lii.stored}, {l0}, {y}, i} = 0\]
\[\displaystyle [40]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.charge},{l0},{y}} - \sum_{i \in {q}} {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.charge}, {l0}, {y}, i} = 0\]
\[\displaystyle [44]\text{ }{\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.discharge},{l0},{y}} - \sum_{i \in {q}} {\mathbf{{\mathbf{{\mathbf{{opr}}}}}}}_{{lii.discharge}, {l0}, {y}, i} = 0\]
\[\displaystyle [47]\text{ }{\mathbf{{\mathbf{{\mathbf{emit}}}}}}_{{gwp},{l0},{y}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{emit}}}}}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{wf}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{emit}}}}}}}}_{{gwp},{l0},{y},{\mathbf{{cap}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{emit}}}}}}}}_{{gwp},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{emit}}}}}}}}_{{gwp},{l0},{y},{\mathbf{{cons}}},{cement}} = 0\]
\[\displaystyle [48]\text{ }{\mathbf{{\mathbf{{\mathbf{spend}}}}}}_{{usd},{l0},{y}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{cap}}},{wf}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{opr}}},{wf}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{cap}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{opr}}},{pv}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{icap}}},{lii.stored}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{inv}}},{lii.stored}} - {\mathbf{{\mathbf{{\mathbf{{\mathbf{spend}}}}}}}}_{{usd},{l0},{y},{\mathbf{{cons}}},{cement}} = 0\]

Function Sets

\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}}}\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}}}\]
m.output()

Solution for Program(design_scheduling_material)



Objective

\[\displaystyle min \hspace{0.2cm} {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}}}=475214.8148148147\]



Variables

\[\displaystyle {\mathbf{{cons}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{0}}}}=66.6666666666667\]
\[\displaystyle {\mathbf{{cons}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{1}}}}=88.88888888888894\]
\[\displaystyle {\mathbf{{cons}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{2}}}}=100.00000000000006\]
\[\displaystyle {\mathbf{{cons}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{3}}}}=77.77777777777781\]
\[\displaystyle {\mathbf{{cons}}}_{{wind},{l0},{{{y}_{0}}}}=322.22222222222223\]
\[\displaystyle {\mathbf{{cons}}}_{{cement},{l0},{{{y}_{0}}}}=104148.14814814815\]
\[\displaystyle {\mathbf{{rlse}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{0}}}}=159.78395061728415\]
\[\displaystyle {\mathbf{{rlse}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{1}}}}=157.49999999999997\]
\[\displaystyle {\mathbf{{rlse}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{2}}}}=180.0\]
\[\displaystyle {\mathbf{{rlse}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{3}}}}=155.5555555555556\]
\[\displaystyle {\mathbf{{cap}}}_{{wf},{l0},{{{y}_{0}}}}=100.0\]
\[\displaystyle {\mathbf{{cap}}}_{{pv},{l0},{{{y}_{0}}}}=100.00000000000006\]
\[\displaystyle {\mathbf{{cap}}}_{{lii.charge},{l0},{{{y}_{0}}}}=27.160493827160423\]
\[\displaystyle {\mathbf{{cap}}}_{{lii.discharge},{l0},{{{y}_{0}}}}=24.44444444444438\]
\[\displaystyle {\mathbf{{\breve{{cap}}}}}_{{wf},{l0},{{{y}_{0}}}}=1.0\]
\[\displaystyle {\mathbf{{\breve{{cap}}}}}_{{pv},{l0},{{{y}_{0}}}}=1.0\]
\[\displaystyle {\mathbf{{opr}}}_{{wf},{l0},{{{y}_{0}}},{{{q}_{0}}}}=100.0\]
\[\displaystyle {\mathbf{{opr}}}_{{wf},{l0},{{{y}_{0}}},{{{q}_{1}}}}=88.8888888888889\]
\[\displaystyle {\mathbf{{opr}}}_{{wf},{l0},{{{y}_{0}}},{{{q}_{2}}}}=55.55555555555556\]
\[\displaystyle {\mathbf{{opr}}}_{{wf},{l0},{{{y}_{0}}},{{{q}_{3}}}}=77.77777777777777\]
\[\displaystyle {\mathbf{{opr}}}_{{wf},{l0},{{{y}_{0}}}}=322.22222222222223\]
\[\displaystyle {\mathbf{{opr}}}_{{pv},{l0},{{{y}_{0}}},{{{q}_{0}}}}=66.6666666666667\]
\[\displaystyle {\mathbf{{opr}}}_{{pv},{l0},{{{y}_{0}}},{{{q}_{1}}}}=88.88888888888894\]
\[\displaystyle {\mathbf{{opr}}}_{{pv},{l0},{{{y}_{0}}},{{{q}_{2}}}}=100.00000000000006\]
\[\displaystyle {\mathbf{{opr}}}_{{pv},{l0},{{{y}_{0}}},{{{q}_{3}}}}=77.77777777777781\]
\[\displaystyle {\mathbf{{opr}}}_{{pv},{l0},{{{y}_{0}}}}=333.33333333333354\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.charge},{l0},{{{y}_{0}}}}=27.160493827160423\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.charge},{l0},{{{y}_{0}}},{{{q}_{0}}}}=6.882716049382552\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.charge},{l0},{{{y}_{0}}},{{{q}_{1}}}}=20.27777777777787\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.charge},{l0},{{{y}_{0}}},{{{q}_{2}}}}=0.0\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.charge},{l0},{{{y}_{0}}},{{{q}_{3}}}}=0.0\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.discharge},{l0},{{{y}_{0}}}}=24.44444444444438\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.discharge},{l0},{{{y}_{0}}},{{{q}_{0}}}}=0.0\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.discharge},{l0},{{{y}_{0}}},{{{q}_{1}}}}=0.0\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.discharge},{l0},{{{y}_{0}}},{{{q}_{2}}}}=24.44444444444438\]
\[\displaystyle {\mathbf{{opr}}}_{{lii.discharge},{l0},{{{y}_{0}}},{{{q}_{3}}}}=0.0\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{wf}}=99399100.0\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{opr}}},{wf}}=15788.888888888889\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{pv}}=143904600.0000001\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{opr}}},{pv}}=30000000.00000002\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{icap}}},{lii.stored}}=36493219.75308632\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{inv}}},{lii.stored}}=68086.41975308595\]
\[\displaystyle {\mathbf{spend}}_{{usd},{l0},{{{y}_{0}}},{\mathbf{{cons}}},{cement}}=1770518.5185185184\]
\[\displaystyle {\mathbf{{icap}}}_{{lii.stored},{l0},{{{y}_{0}}}}=27.160493827160423\]
\[\displaystyle {\mathbf{{\breve{{icap}}}}}_{{lii.stored},{l0},{{{y}_{0}}}}=1.0\]
\[\displaystyle {\mathbf{{inv}}}_{{lii.stored},{l0},{{{y}_{0}}}}=34.043209876542974\]
\[\displaystyle {\mathbf{{inv}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{0}}}}=6.882716049382552\]
\[\displaystyle {\mathbf{{inv}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{1}}}}=27.160493827160423\]
\[\displaystyle {\mathbf{{inv}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{2}}}}=0.0\]
\[\displaystyle {\mathbf{{inv}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{3}}}}=0.0\]
\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{wf}}=100000.0\]
\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{pv}}=200000.00000000012\]
\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}},{\mathbf{{icap}}},{lii.stored}}=81481.48148148127\]
\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}},{\mathbf{{cons}}},{cement}}=93733.33333333333\]
\[\displaystyle {\mathbf{emit}}_{{gwp},{l0},{{{y}_{0}}}}=475214.8148148147\]
\[\displaystyle {\mathbf{use}}_{{cement},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{wf}}=40000.0\]
\[\displaystyle {\mathbf{use}}_{{cement},{l0},{{{y}_{0}}},{\mathbf{{cap}}},{pv}}=56000.00000000003\]
\[\displaystyle {\mathbf{use}}_{{cement},{l0},{{{y}_{0}}},{\mathbf{{icap}}},{lii.stored}}=8148.148148148127\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{wf}}=100.0\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{wf}}=88.8888888888889\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{wf}}=55.55555555555556\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{wf}}=77.77777777777777\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{pv}}=66.6666666666667\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{pv}}=88.88888888888894\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{pv}}=100.00000000000006\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{pv}}=77.77777777777781\]
\[\displaystyle {\mathbf{prod}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{lii.charge}}=6.882716049382552\]
\[\displaystyle {\mathbf{prod}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{lii.charge}}=20.27777777777787\]
\[\displaystyle {\mathbf{prod}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{lii.charge}}=0.0\]
\[\displaystyle {\mathbf{prod}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{lii.charge}}=0.0\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{lii.discharge}}=24.44444444444438\]
\[\displaystyle {\mathbf{prod}}_{{power},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]
\[\displaystyle {\mathbf{{expd}}}_{{wind},{l0},{{{y}_{0}}},{\mathbf{{opr}}},{wf}}=322.22222222222223\]
\[\displaystyle {\mathbf{{expd}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{pv}}=66.6666666666667\]
\[\displaystyle {\mathbf{{expd}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{pv}}=88.88888888888894\]
\[\displaystyle {\mathbf{{expd}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{pv}}=100.00000000000006\]
\[\displaystyle {\mathbf{{expd}}}_{{solar},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{pv}}=77.77777777777781\]
\[\displaystyle {\mathbf{{expd}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{lii.charge}}=6.882716049382552\]
\[\displaystyle {\mathbf{{expd}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{lii.charge}}=20.27777777777787\]
\[\displaystyle {\mathbf{{expd}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{lii.charge}}=0.0\]
\[\displaystyle {\mathbf{{expd}}}_{{power},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{lii.charge}}=0.0\]
\[\displaystyle {\mathbf{{expd}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{0}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]
\[\displaystyle {\mathbf{{expd}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{1}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]
\[\displaystyle {\mathbf{{expd}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{2}}},{\mathbf{{opr}}},{lii.discharge}}=27.160493827160423\]
\[\displaystyle {\mathbf{{expd}}}_{{lii.stored},{l0},{{{y}_{0}}},{{{q}_{3}}},{\mathbf{{opr}}},{lii.discharge}}=0.0\]