Elk
License information
Elk is freely available under the GNU General Public License version 3.
User documentation
Elk is "an all-electron full-potential linearised augmented-planewave (FP-LAPW) code. Designed to be as developer friendly as possible so that new developments in the field of density functional theory (DFT) can be added quickly and reliably.". Elk can be run on LUMI-C.
There is currently no version of Elk that can use the AMD GPUs in the LUMI-G.
Installing Elk
We provide automatic installation scripts for several versions of Elk. In general, the installation procedure is described on the EasyBuild page. The step by step procedure to install Elk 10.3.12 is:
- Load the LUMI software environment:
module load LUMI/24.03
. - Select the LUMI-C partition:
module load partition/C
. - Load the EasyBuild module:
module load EasyBuild-user
.
Then, you can run the install command
The installation takes about 3 minutes. Afterwards, you will have a module called "Elk/10.3.12-cpeGNU-24.03" installed in your home directory. Load the module to use it
The main Elk binary, elk
, as well as the spacegroup
and eos
utility programs
will now be in your PATH
. Launch Elk via the Slurm scheduler
with srun elk
. Please note that you must do module load LUMI/24.03 partition/C
to see your Elk module in the module system. The same applies to the Slurm batch
scripts which you send to the compute nodes.
You can see other versions of Elk that can be automatically installed by running the EasyBuild command
or checking the list further down on this page
Example batch script
A typical batch job with 16 MPI ranks per node and 8 OpenMP threads per rank:
#!/bin/bash
#SBATCH -A project_XYZ
#SBATCH -J elkjob
#SBATCH -p standard
#SBATCH -t 10:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=16
#SBATCH --cpus-per-task=8
ml LUMI/24.03
ml Elk/10.3.12-cpeGNU-24.03
export SRUN_CPUS_PER_TASK=$SLURM_CPUS_PER_TASK
export OMP_NUM_THREADS=8
export OMP_PLACES=cores
export OMP_PROC_BIND=false
export OMP_STACKSIZE=256M
ulimit -Ss unlimited
echo "Script initiated at `date` on `hostname`"
srun elk > out.log
echo "Script finished at `date` on `hostname`"
Species files, example input files, and Elk make.inc file.
Elk species files and example input files can be found in the directories
For the case that you would like to build a custom version of Elk, you can find the Elkmake.inc
file which was generated
when building with EasyBuild at
User-installable modules (and EasyConfigs)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider Elk/<version>
.
EasyConfig:
Technical documentation
EasyBuild
-
There is no support for Elk in the CSCS repository.
Version 8.4.6 for CPE 21.12
-
Own development
-
Some scripts copied in the regular EasyBuilders EasyConfig are not installed in this version.
Version 8.4.30 for CPE 22.06
-
Straightforward port of the 8.4.6 EasyConfig.
-
A few from the scripts from the
utilities
subdirectory are now included, but notutilities/xps
as that still contains uncompiled C code so it is not clear what should be copied there or be built that is not yet built.
Version 8.7.10 for CPE 22.08 and 22.12
-
The make.inc is generated by the EasyConfig.
-
Builds with support for Libxc and Wannier90.
Version 10.3.12 for CPE 24.03
- Derived from the 8.7.10 EasyConfig.
Archived EasyConfigs
The EasyConfigs below are additonal easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-EasyBuild-contrib - previously user-installable software
-
EasyConfig Elk-8.4.30-cpeGNU-22.06.eb, with module Elk/8.4.30-cpeGNU-22.06
-
EasyConfig Elk-8.4.30-cpeGNU-22.08.eb, with module Elk/8.4.30-cpeGNU-22.08
-
EasyConfig Elk-8.4.6-cpeGNU-21.12.eb, with module Elk/8.4.6-cpeGNU-21.12
-
EasyConfig Elk-8.7.10-cpeGNU-22.08.eb, with module Elk/8.7.10-cpeGNU-22.08
-
EasyConfig Elk-8.7.10-cpeGNU-22.12.eb, with module Elk/8.7.10-cpeGNU-22.12
-