Model Configuration
Here are the configuration settings as can be defined in ConfigModel.json,
along with a description of each setting, the options that can be chosen for the setting (if relevant) and the value of
the default/currently chosen option.
The objective options refer to:
‘costs’: minimize total annual system cost
‘emissions_pos’: minimize postive emissions (negative emissions are not part of the objective function)
‘emissions_net’: minimize net emissions (sum of positive and negative emissions)
‘emissions_minC’: find the minimum cost system at minimum emissions (minimizes net emissions in the first step and cost as a second step)
‘costs_emissionlimit’: minimize cost at an emission limit. The emission limit can be set using the
emission_limitoption‘pareto’: optimizes the pareto front, documented here
Category |
Setting |
Sub-setting |
Description |
Options |
Value |
|---|---|---|---|---|---|
optimization |
objective |
String specifying the objective/type of optimization. |
[‘costs’, ‘emissions_pos’, ‘emissions_net’, ‘emissions_minC’, ‘costs_emissionlimit’, ‘pareto’] |
costs |
|
optimization |
emission_limit |
emission limit to be enforced if objective function is costs_emissionlimit |
0 |
||
optimization |
monte_carlo |
N |
Number of Monte Carlo simulations (0 = off). |
0 |
|
optimization |
monte_carlo |
type |
Type of Monte Carlo simulation. For type 1 the user defines the standard deviation and the components to vary. For type 2 the user provides a csv file with the parameters and their min, max and reference values. |
[‘normal_dis’, ‘uniform_dis_from_file’] |
normal_dis |
optimization |
monte_carlo |
sd |
Value defining the range in which variables are varied in Monte Carlo simulations (defined as the standard deviation of the original value). |
0.2 |
|
optimization |
monte_carlo |
on_what |
List: Defines component to vary. |
[‘Technologies’, ‘Networks’, ‘Import’, ‘Export’] |
[‘Technologies’] |
optimization |
pareto_points |
Number of Pareto points. |
5 |
||
optimization |
timestaging |
Defines number of timesteps that are averaged (0 = off). |
0 |
||
optimization |
typicaldays |
N |
Determines number of typical days (0 = off). |
0 |
|
optimization |
typicaldays |
method |
Determine method used for modeling technologies with typical days. |
[1, 2] |
2 |
optimization |
typicaldays |
technologies_with_full_res |
If method 2 is chosen, list determines which technologies are modelled at full resolution. Should be at least all storage technologies. |
[] |
[‘RES’, ‘STOR’, ‘Hydro_Open’] |
optimization |
multiyear |
Enable multiyear analysis, if turned off max time horizon is 1 year. |
[0, 1] |
0 |
|
solveroptions |
solver |
String specifying the solver used. |
gurobi |
||
solveroptions |
mipgap |
Value to define MIP gap. |
0.001 |
||
solveroptions |
timelim |
Value to define time limit in hours. |
10 |
||
solveroptions |
threads |
Value to define number of threads (default is maximum available). |
0 |
||
solveroptions |
mipfocus |
Modifies high level solution strategy. |
[0, 1, 2, 3] |
0 |
|
solveroptions |
nodefilestart |
Parameter to decide when nodes are compressed and written to disk. |
60 |
||
solveroptions |
method |
Defines algorithm used to solve continuous models. |
[-1, 0, 1, 2, 3, 4, 5] |
-1 |
|
solveroptions |
heuristics |
Parameter to determine amount of time spent in MIP heuristics. |
0.05 |
||
solveroptions |
presolve |
Controls the presolve level. |
[-1, 0, 1, 2] |
-1 |
|
solveroptions |
branchdir |
Determines which child node is explored first in the branch-and-cut. |
[-1, 0, 1] |
0 |
|
solveroptions |
lpwarmstart |
Controls whether and how warm start information is used for LP. |
[0, 1, 2] |
0 |
|
solveroptions |
intfeastol |
Value that determines the integer feasibility tolerance. |
1e-05 |
||
solveroptions |
feastol |
Value that determines feasibility for all constraints. |
1e-06 |
||
solveroptions |
numericfocus |
Degree of which Gurobi tries to detect and manage numeric issues. |
[0, 1, 2, 3] |
0 |
|
solveroptions |
cuts |
Setting defining the aggressiveness of the global cut. |
[-1, 0, 1, 2, 3] |
-1 |
|
reporting |
write_results |
Write results (h5 file and to Summary.xlsx) directly after the optimization. |
[0, 1] |
1 |
|
reporting |
save_summary_path |
Path to save the summary file path to. |
./userData/ |
||
reporting |
save_path |
Option to define the save path. |
./userData/ |
||
reporting |
case_name |
Option to define a case study name that is added to the results folder name. |
-1 |
||
reporting |
write_solution_diagnostics |
If 1, writes solution quality, if 2 also writes pyomo to Gurobi variable map and constraint map to file. |
[0, 1, 2] |
0 |
|
energybalance |
violation |
Determines the energy balance violation price (-1 is no violation allowed). |
-1 |
||
energybalance |
copperplate |
Determines if a copperplate approach is used. |
[0, 1] |
0 |
|
economic |
global_discountrate |
Determines if and which global discount rate is used. This holds for the CAPEX of all technologies and networks. |
-1 |
||
economic |
global_simple_capex_model |
Determines if the CAPEX model of technologies is set to 1 for all technologies. |
[0, 1] |
0 |
|
performance |
dynamics |
Determines if dynamics are used. |
[0, 1] |
0 |
|
scaling |
scaling_on |
Determines if the model is scaled. If 1, it uses global and component specific scaling factors. |
[0, 1] |
0 |
|
scaling |
scaling_factors |
energy_vars |
Scaling factor used for all energy variables. |
0.001 |
|
scaling |
scaling_factors |
cost_vars |
Scaling factor used for all cost variables. |
0.001 |
|
scaling |
scaling_factors |
objective |
Scaling factor used for the objective function. |
1 |