Nix derivations for HPC/Quantum chemistry software packages.
The goal of this project is to integrate software packages into nixos to make it suitable for running it on a HPC cluster. It provides popular quantum chemsitry packages and performance optionization to upstream nixpkgs.
The repository comes as a nixpkgs overlay (see Nixpkgs manual for how to install an overlay).
The contents of the overlay will be placed in an attribute set under nixpkgs (default qchem
). The original, but overriden nixpkgs will be placed in qchem.pkgs
. This allows for composition of the overlay with different variants.
There is a branch (release-XX.XX) for every stable version of nixpkgs (nixos-XX.XX).
Via release.nix
a nix channels compatible nixexprs tarball can be generated:
nix-build release.nix -A channel
The applications from the overlay are also available via Nix User Repository (NUR) (qchem repo).
Access via e.g.: nix-shell -p nur.repos.qchem.<package name>
.
The overlay can be configured either via an attribute set or via environment variables. If no attribute set is given the configuration the environment variables are automatically considered (impure).
Configuration options can be set directly via config.qchem-config
alongside other nixpkgs config options.
allowEnv
: Allow to override the configuration from the environment (default false whenconfig.qchem-config
is used).prefix
: The packages of the overlay will be placed in subset specified byprefix
(defaultqchem
).srcurl
: URL for non-free packages. If set this will override therequireFile
function of nixpkgs to pull all non-free packages from the specified URLoptpath
: Path to packages that reside outside the nix store. This is mainly relevant for Gaussian and Matlab.licMolpro
: Molpro license token string required to run molpro.optAVX
: If this variable is set to true (default) some packages will be explicitly compiled with AVX/AVX2 support. Some upstream packages will be overriden to use make use of AVX (seenixpkgs-opt.nix
).
The overlay will check for environment variables to configure some features:
NIXQC_PREFIX
NIXQC_SRCURL
NIXQC_OPTPATH
NIXQC_LICMOLPRO
NIXQC_AVX
: seeoptAVX
, setting this to 1 corresponds totrue
.