The Elk FP-LAPW Code
An all-electron full-potential linearised augmented-plane wave (FP-LAPW) code with many advanced features. Written originally at Karl-Franzens-Universität Graz as a milestone of the EXCITING EU Research and Training Network, the code is designed to be as simple as possible so that new developments in the field of density functional theory (DFT) can be added quickly and reliably. The code is freely available under the GNU General Public License.

Latest version: 0.9.279

Features | Download | Documentation | FAQ | Forums | Mailing list | Contributions | Links
Features
General
• High precision all-electron DFT code
• FP-LAPW basis with local-orbitals
• APW radial derivative matching to arbitrary orders at muffin-tin surface (super-LAPW, etc.)
• Arbitrary number of local-orbitals allowed (all core states can be made valence for example)
• Every element in the periodic table available
• Total energies resolved into components
• LSDA and GGA functionals available
• Core states treated with the radial Dirac equation
• Simple to use: just one input file required with all input parameters optional
• Multiple tasks can be run consecutively

Structure and symmetry
• Determination of lattice and crystal symmetry groups from input lattice and atomic coordinates
• Determination of atomic coordinates from space group data (with the Spacegroup utility)
• XCrysDen and V_Sim file output
• Automatic reduction from conventional to primitive unit cell
• Automatic determination of muffin-tin radii
• Full symmetrisation of density and magnetisation and their conjugate fields
• Automatic determination and reduction of the k-point set

Magnetism
• Spin polarised calculations performed in the most general way: only (n(r); m(r)) and (vs(r); Bs(r)) are referred to in the code
• Spin symmetry broken by infinitesimal external fields
• Spin-orbit coupling (SOC) included in second-variational scheme
• Non-collinear magnetism (NCM) with arbitrary on-site magnetic fields
• Fixed spin-moment calculations (with SOC and NCM)
• Spin-spirals for any q-vector

Plotting
• Band structure plotting with angular momentum character
• Total and partial density of states with irreducible representation projection
• Charge density plotting (1/2/3D)
• Plotting of exchange-correlation and Coulomb potentials (1/2/3D)
• Electron localisation function (ELF) plotting (1/2/3D)
• Fermi surface plotting (3D)
• Magnetisation plots (2/3D)
• Plotting of exchange-correlation magnetic field, Bxc (2/3D)
• Plotting of ∇⋅Bxc (1/2/3D)
• Wavefunction plotting (1/2/3D)
• Electric field (E=-&nabla V) plotting (1/2/3D)
• Simple scanning tunnelling microscopy (STM) imaging based on the local density of states (LDOS) (experimental)

Forces and phonons
• Forces - including incomplete basis set (IBS) and core corrections
• Forces work with spin-orbit coupling, non-collinear magnetism and LDA+U
• Structural optimisation
• Phonons for arbitrary q-vectors (experimental)
• Phonon dispersion and density of states
• Thermodynamic quantities calculated from the phonon DOS: free energy, entropy, heat capacity
• Phonon calculations can be distributed across networked computers
• Electron-phonon coupling matrices
• Phonon linewidths
• Eliashberg function, α2F(ω)
• Electron-phonon coupling constant, λ
• McMillan-Allen-Dynes critical temperature, Tc

Advanced
• Exact exchange (EXX) optimised effective potential (OEP) method (with SOC and NCM) (experimental)
• EXX energies (with SOC and NCM) (experimental)
• Hartree-Fock for solids (with SOC and NCM) (experimental)
• LDA+U: fully localised limit (FLL), around mean field (AFM) and interpolation between the two; works with SOC, NCM and spin-spirals (experimental)
• Reduced density matrix functional theory (RDMFT) for solids (experimental)

Miscellaneous
• Mössbauer hyperfine parameters: isomer shift, EFG and hyperfine contact fields (experimental)
• First-order optical response
• Kerr angle and Magneto-Optic Kerr Effect (MOKE) output (experimental)
• Generalised DFT correction of L. Fritsche and Y. M. Gu, Phys. Rev. B 48, 4250 (1993) (experimental)
• Energy loss near edge structure (ELNES)
L, S, and J expectation values
• Effective mass tensor for any state
• Equation of state fitting (with the EOS utility)
• Iterative diagonalisation with fine-grained parallelisation
• Interface to the
Libxc exchange-correlation functional library (experimental)

Programming
• Clean, simple code structure - ideal for development
• OpenMP parallelisation
• Strict Fortran 90 compliance
• Only one language used
• Free-form style input file
• Full LaTeX documentation included with every subroutine
Download
Elk is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Elk is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Elk. If not, see http://www.gnu.org/licenses/.

Elk is still in its beta state so check the consistency of your results carefully! Features marked as experimental are for testing purposes only and should NOT be used for production work. The latest releases can be downloaded from SourceForge.net.

Release notes
elk-0.9.279
-fixed various problems with the new LDA+U implementation
-made GGA consistent with non-collinear magnetism (including spin-spirals)

elk-0.9.278
-parameters of LDA+U calculation can now be provided in 5 different ways:
1 - U and J
2 - Slater parameters
3 - Racah parameters
4 - Yukawa screening length (individual determination of Slater parameters through a screened Yukawa potential; in this way the number of free parameters is reduced to one, see Phys. Rev. B 80, 035121 (2009))
5 - U (and automatic determination of the corresponding Yukawa screening length to determine the Slater parameters as in (4))
-tensor moment decomposition of LDA+U density matrix and energy, see Phys. Rev. B 80, 035121 (2009)
-new examples are added to illustrate the previous points and old LDA+U examples are updated
-added new LDA+U test cases
-lda+u block has changed: refer to manual and examples for details
-generation of the density matrices is now parallelised
-Fe-fast example is added, this shows the possibility of increasing the convergence speed of a magnetic calculation by applying a large field that is reduced at every iteration
-fixed problem with the plasma frequency calculation (thanks to everyone who pointed this out)
-changed lattice constant used in examples involving fcc Al
-speeded up gradzfmt, thanks to discussions with T. McQueen
-betamax default set to 1.0, this should speed up convergence in most cases
-various optimisations and simplifications
Notes for developers
-the spline coefficient array in the routine spline is now declared as cf(4,n) instead of cf(3,n); dependent routines should be modified (for instance fderiv)

elk-0.9.263-277
-internal releases only

elk-0.9.262
-changed the adaptive mixing algorithm back to older version, after extensive testing by F. Cricchio
-upgraded to LAPACK 3.2.1 (Elk is still compatible with all LAPACK 3.x versions)
-improved the ELNES code: now more accurate and runs at least 10 times faster
-added new input variable emaxelnes which is the maximum allowed initial-state energy used when calculating the ELNES cross-section
-added/modified several ELNES examples (cubic BN, fcc Cu and Pu)
-removed the input variable spfname from the Spacegroup code since it is unnecessary
-added new input variable epsband, which allows the tolerance of the band energy search to be set
-reduced the band energy search tolerance from 10-5 to 10-6, which should improve energy convergence
-added new task (14) which plots the smooth Dirac delta and Heaviside step functions used by the code to calculate occupancies
-improved speed and simplicity of code in several areas
-added two new test cases
Notes for developers
-routine genbeffmt must be called before calling seceqn

elk-0.9.257-261
-internal releases only

elk-0.9.256
-name change from EXCITING to Elk
-full test suite now available (run make test)
-F. Cricchio, F. Bultmark and L. Nordström fixed problem with spin-spiral symmetrisation
-spin-spirals now work with fixed spin-moment calculations
-frozen core approximation now available (use frozencr=.true.)
-code written for rotating real spherical harmonics: great speed up of density and magnetisation symmetrisation
-second order Anderson mixing now available (use mixtype=3)
-improved the adaptive mixing scheme
-speed of light now variable (set solscf which is the speed of light scaling factor, 1 by default)
-added electron entropic contribution to the total energy for Fermi-Dirac smearing
-fixed problem with electron-phonon coupling
-Fermi surface plotting with XCrysDen now available thanks to FF, FB and LN
-fixed problem with k-point generation
-fixed normalisation problem with wavefunction plotting found by Andrew Chizmeshya
-spin moment direction can now be fixed with magnitude unconstrained (set fixspin to -1, -2 or -3)
-the convergence criterion is now RMS change in potential and absolute change in total energy (set with epspot and epsengy, respectively)
-the absolute change in total energy is outputted to DTOTENERGY.OUT for plotting
-added Ni magnon example
-mixing type is now reported in INFO.OUT
-lots of optimisations
-various minor bug fixes
Documentation
The Elk Code Manual is available, as is a manual for the Spacegroup utility. You can ask and answer questions in the Elk forums on SourceForge.net but please consult the Elk frequently asked questions page first. A mailing list is available for notification of new releases, features and bugs in the code. There is also a collection of useful links. If you would like a particular feature to be implemented then you can either do it yourself, which is the preferred option, or request the feature in the forum.

Citation of Elk
Citation of the code is not mandatory but would be appreciated by the contributors - a reference to this website will suffice. We also recommend that the input files used be made available to other researchers.
Contributions
Main authors and contributors
Kay Dewhurst, Sangeeta Sharma, Lars Nordström, Francesco Cricchio, Fredrik Bultmark, Claudia Ambrosch-Draxl, Clas Persson, Christian Brouder, Rickard Armiento, Andrew Chizmeshya, Per Anderson, Igor Nekrasov, Frank Wagner, Fateh Kalarasse, Jürgen Spitaler, Stefano Pittalis, Nektarios Lathiotakis, Tobias Burnus, Stephan Sagmeister, Christian Meisenbichler, Sébastien Lebègue, Yigang Zhang, Fritz Körmann, Alexey Baranov, Anton Kozhevnikov, Shigeru Suehara, Frank Essenberger, Antonio Sanna, Tyrel McQueen, Tim Baldsiefen

Contributing to Elk
If you have made a modification to part of the code which makes it faster, simpler or produces additional results, then feel free to send it to one of the main authors, who may then incorporate it into the main branch. Groups and individuals are actively encouraged to develop and release their own specialised versions of the Elk code under the GPL. However, in order to avoid any confusion, please use a different name for your version of the code. We suggest you append the name of your location to Elk, for example: Elk-Uppsala.

Special versions of Elk/EXCITING
EXCITING-plus
LAPW-MPI

Codes which interact with Elk
ASE - The Atomic Simulation Environment
Libxc - an extensive library of LDA and GGA exchange-correlation functionals
Get Elk at SourceForge.net. Fast, secure and Free Open Source software downloads
Last modified November 2009