Environment variables

sisl understands some environment variables that may be used to tweak, or change the default behaviour of sisl.

Here we list the different options:


Default the number of processors used in parallel calculations. Currently only certain Brillouin zone operations has this enabled.

Please test this for your machine before relying on it giving a lot of performance. Especially in conjunction with the OMP_NUM_THREADS flag for OpenMP in linear algebra libraries. Benchmark and see if it actually improves (certain combinations will severly hurt performance).


whether or not to autoload the visualization module. The visualization module imports many dependent modules. If you run small scripts that does not use the sisl.viz module, then it is recommended to keep this to be false.


Certain sisl routines has a builtin progress bar. This variable can default whether or not those will be shown. It can be nice for slow brillouinzone calculations to see if progress is actually being made.


The default IO methods sisl.get_sile will select files with this file-endings. For instance there are many stdout file types (for each DFT code). Setting this to Siesta would force all files to first search for classes ending in Siesta (see sisl.io for class names).

SISL_TMP = '.sisl_tmp'

certain internal methods of sisl will use a temporary folder for storing data. The default is a new folder in the currently executed directory.


Full path to a folder containing tests files. Primarily used for developers.

SISL_CONFIGDIR = $HOME/.config/sisl

where certain configuration files should be stored.

Currently not in use.


if provided sisl will log to the provided file.


the log-level used if writing to a log-file. The value will be taken from the logging module, so it should be a variable in that module.

Code specific environment variables


SISL_UNIT_SIESTA = codata2018 | legacy

determine the default units for Siesta files.

Since Siesta 5.0, the default units are updated to follow the CODATA 2018 values. This means that quite a bit of results changed. This will force the internal variables to be consistent with this.