Configuration files
When you calculate a scenario with NEMO, you can provide a configuration file that specifies run-time options. The file should be named nemo.ini
or nemo.cfg
and should be available in Julia's working directory. To check the working directory in a Julia session, use the pwd
function. To change the working directory, use cd
.
NEMO configuration files are text files written in ini
syntax. The following run-time options can be set in a configuration file.
calculatescenarioargs
blockvarstosave
- Comma-delimited list of output variables to save to the scenario database. NEMO adds values specified in a configuration file to those requested in thevarstosave
argument forcalculatescenario
.numprocs
- Number of Julia processes to use for parallelized operations (a positive integer or 0 for half the number of logical processors on the executing machine). If this option is specified in a configuration file, it overrides thenumprocs
argument forcalculatescenario
.targetprocs
- Comma-delimited list of identifiers of Julia processes that NEMO should use in parallelized operations. NEMO adds values specified in a configuration file to those requested in thetargetprocs
argument forcalculatescenario
.restrictvars
- Indicates whether NEMO should conduct additional data analysis to limit the set of model variables created for the scenario (true
orfalse
). By default, to improve performance, NEMO selectively creates certain variables to avoid combinations of subscripts that do not exist in the scenario's data. This option increases the stringency of this filtering. It requires more processing time as the model is built, but it can substantially reduce the solve time for large models. If this option is specified in a configuration file, it overrides therestrictvars
argument forcalculatescenario
.reportzeros
- Indicates whether results saved in the scenario database should include values equal to zero (true
orfalse
). Forgoing zeros can substantially improve the performance of large models. If this option is specified in a configuration file, it overrides thereportzeros
argument forcalculatescenario
.continuoustransmission
- Indicates whether continuous (true
) or binary (false
) variables are used to represent investment decisions for candidate transmission lines. This option can decrease model run-time but reduces the realism of transmission simulations. It is not relevant in scenarios that do not model transmission. If this option is specified in a configuration file, it overrides thecontinuoustransmission
argument forcalculatescenario
.quiet
- Indicates whether NEMO should suppress low-priority status messages (which are otherwise printed toSTDOUT
). If this option is specified in a configuration file, it overrides thequiet
argument forcalculatescenario
.
includes
blockbeforescenariocalc
- Path to a Julia script that should be run before NEMO calculates the scenario. The path should be defined relative to the Julia working directory (e.g.,./my_script.jl
).customconstraints
- Path to a Julia script that should be run when NEMO builds constraints for the scenario. The script can be used to add custom constraints to the model. The path should be defined relative to the Julia working directory.
NEMO comes with a sample configuration file saved at utils/nemo.ini
in the NEMO package directory. You can find the NEMO package directory in Julia as follows:
julia> using NemoMod
julia> println(normpath(joinpath(pathof(NemoMod), "..", "..")))
Here's an example of a configuration file that sets a few of the available options.
[calculatescenarioargs]
varstosave=vnewcapacity,vtotalcapacityannual
continuoustransmission=true
[includes]
beforescenariocalc=./before_scenario_script.jl
customconstraints=./custom_constraints.jl