Model settings parameters

The first step in configuring a GenX model is to specify the model settings parameters. These parameters are specified in a genx_settings.yml file inside a settings folder which must be located in the current working directory. Settings include those related to model structure, solution strategy and outputs, policy constraints, and others. In particular:

  • Model structure related settings parameters affect the formulation of the model constraints and objective function.
  • Computational performance related parameters affect the accuracy of the solution.
  • Policy related parameters specify the policy type and policy goal.
  • Network related parameters specify settings related to transmission network expansion and losses.

Note that all settings parameters are case sensitive.

(Optional) The user can also select the output files that they want to export using the output_settings.yml file. This file containes a list of yes/no options for each output file, and should be located in the settings folder. By default, if output_settings.yml is not included, GenX will export all output files.

The following tables summarize the model settings parameters and their default/possible values.

ParameterDescription
UCommitSelect technical resolution of of modeling thermal generators.
0 = no unit commitment.
1 = unit commitment with integer clustering.
2 = unit commitment with linearized clustering.
OperationalReservesFlag for modeling operational reserves .
0 = No operational reserves considered.
1 = Consider regulation (primary) and spinning (secondary) reserves.
StorageLossesFlag to account for storage related losses.
0 = VRE and CO2 constraints DO NOT account for energy lost.
1 = constraints account for energy lost.
TimeDomainReduction1 = Use time domain reduced inputs available in the folder with the name defined by settings parameter TimeDomainReductionFolder. If such a folder does not exist or it is empty, time domain reduction will reduce the input data and save the results there.
0 = Use the data in the main case folder; do not perform clustering.
VirtualChargeDischargeCostHypothetical cost of charging and discharging storage resources (in /MWh).
StorageVirtualDischargeFlag to enable contributions that a storage device makes to the capacity reserve margin without generating power.
1 = activate the virtual discharge of storage resources.
0 = do not activate the virtual discharge of storage resources.
HourlyMatchingConstraint to match generation from clean sources with hourly consumption.
1 = Constraint is active.
0 = Constraint is not active.
HydrogenHourlyMatchingFlag to allow hydrogen production to contribute to the hourly clean supply matching constraint.
1 = Hydrogen production contributes to the hourly clean supply matching constraint.
0 = Hydrogen production does not contribute to the hourly clean supply matching constraint.

2. Solution strategy

ParameterDescription
ParameterScaleFlag to turn on parameter scaling wherein demand, capacity and power variables defined in GW rather than MW. This flag aides in improving the computational performance of the model.
1 = Scaling is activated.
0 = Scaling is not activated.
ObjScaleParameter value to scale the objective function during optimization.
MultiStageModel multiple planning stages
1 = Model multiple planning stages as specified in multi_stage_settings.yml
0 = Model single planning stage
ModelingToGenerateAlternativesModeling to Generate Alternative Algorithm. For details, see here
1 = Use the algorithm.
0 = Do not use the algorithm.
ModelingtoGenerateAlternativeSlackvalue used to define the maximum deviation from the least-cost solution as a part of Modeling to Generate Alternative Algorithm. Can take any real value between 0 and 1.
MGAAnnualGenerationFlag to switch between different MGA formulations.
1 = Create constraint weighing annual generation.
0 = Create constraint without weighing annual generation.
MethodofMorrisMethod of Morris algorithm
1 = Use the algorithm.
0 = Do not use the algorithm.
ParameterDescription
CO2CapFlag for specifying the type of CO2 emission limit constraint.
0 = no CO2 emission limit
1 = mass-based emission limit constraint
2 = demand + rate-based emission limit constraint
3 = generation + rate-based emission limit constraint
EnergyShareRequirementFlag for specifying regional renewable portfolio standard (RPS) and clean energy standard policy (CES) related constraints.
Default = 0 (No RPS or CES constraints).
1 = activate energy share requirement related constraints.
CapacityReserveMarginFlag for Capacity Reserve Margin constraints.
Default = 0 (No Capacity Reserve Margin constraints)
1 = activate Capacity Reserve Margin related constraints
MinCapReqMinimum technology carve out requirement constraints.
1 = if one or more minimum technology capacity constraints are specified
0 = otherwise
MaxCapReqMaximum system-wide technology capacity limit constraints.
1 = if one or more maximum technology capacity constraints are specified
0 = otherwise
HydrogenMinimumProductionHydrogen production requirements from electrolyzers.
1 = Constraint is active.
0 = Constraint is not active.
ParameterDescription
NetworkExpansionFlag for activating or deactivating inter-regional transmission expansion.
1 = active
0 = modeling single zone or for multi-zone problems in which inter regional transmission expansion is not allowed.
DC_OPFFlag for using the DC-OPF formulation for calculating transmission line MW flows and imposing constraints.
1 = use DC-OPF formulation
0 = do not use DC-OPF formulation
Trans_Loss_SegmentsNumber of segments to use in piece-wise linear approximation of losses.
1: linear
>=2: piece-wise quadratic
IncludeLossesInESRFlag for including transmission losses and storage losses as part of ESR.
1 = include losses in ESR
0 = do not include losses in ESR

5. Outputs

ParameterDescription
PrintModelFlag for printing the model equations as .lp file.
1 = including the model equation as an output
0 = the model equation won't be included as an output
WriteShadowPricesGet the optimal values of dual variables of various model related constraints, including to estimate electricity prices, stored value of energy and the marginal CO2 prices.
WriteOutputsFlag for writing the model outputs with hourly resolution or just the annual sum.
"full" = write the model outputs with hourly resolution.
"annual" = write only the annual sum of the model outputs.
OutputFullTimeSeriesFlag for writing the full time series of the model outputs.
1 = write the full time series of the model outputs.
0 = write only the reduced time series of the model outputs.
OutputFullTimeSeriesFolderName of the folder where the full time series of the model outputs will be stored inside the results directory (default: Full_TimeSeries).
OverwriteResultsFlag for overwriting the output results from the previous run.
1 = overwrite the results.
0 = do not overwrite the results.
ParameterDescription
SolverOPTIONAL name of solver. Default is "HiGHS" effectively. It is necessary to set Solver: "Gurobi" when reusing the same gurobi environment for multiple solves.
EnableJuMPStringNamesFlag to enable/disable JuMP string names to improve the performance.
1 = enable JuMP string names.
0 = disable JuMP string names.
ComputeConflictsFlag to enable the computation of conflicts in case of infeasibility of the model (Note: the chosen solver must support this feature).
1 = enable the computation of conflicts.
0 = disable the computation of conflicts.
ParameterDescription
SystemFolderName of the folder inside the current working directory where the input data for the system is stored (default = "system").
PoliciesFolderName of the folder inside the current working directory where the input data for policies is stored (default = "policies").
ResourcesFolderName of the folder inside the current working directory where the input data for resources is stored (default = "resources").
ResourcePoliciesFolderName of the folder inside the ResourcesFolder where the input data for resource policy assignments is stored (default = "policy_assignments").
TimeDomainReductionFolderName of the folder inside the current working directory where time domain reduced input data is stored.

The next step in configuring a GenX model is to specify the solver settings parameters using a [solver_name]_settings.yml file inside the settings folder. The solver settings parameters are solver specific and are described in the following section.