Elk

Contents

Elk#

Elk is an all-electron full-potential linearised augmented-plane wave (LAPW) code.

Changed in version 3.26.0: ELK is now a subclass of GenericFileIOCalculator.

ELK can be configured with config.ini.

[elk]
command = /path/to/elk
sppath = /path/to/species

If you need to override it for programmatic control of the elk command, use ElkProfile.

from ase.calculators.elk import ELK, ElkProfile

profile = ElkProfile(command='/path/to/elk')
calc = ELK(profile=profile)
class ase.calculators.elk.ELK(*, profile=None, command=<object object>, label=<object object>, directory='.', **kwargs)[source]#

Elk calculator.

Parameters:

**kwargs (dict, optional) – ASE standard keywords like xc, kpts and smearing (in ASE units) or any Elk-native keywords (numeric parameters in Elk units). All numeric parameters that are passed using Elk-native keys must be in Elk units.

Examples

>>> import numpy as np
>>> from ase.calculators.elk import ELK
>>> calc = ELK(tasks=[0], ngridk=np.array([3, 3, 3]))
>>> params = {'tasks': [[0], [10]], 'ngridk': [8, 8, 8], 'nempty': 8,
              'bfieldc': np.array((0.0, 0.0, -0.01)), 'spinpol': True,
              'dft+u': ((2, 1), (1, 2, 0.183, 0.034911967))}
>>> calc = ELK(**params)
Note: ``np.array((0.0, 0.0, -0.01))``, ``[0.0, 0.0, -0.01]``,
      ``[[0.0, 0.0, -0.01]]``, and any combinations of lists, tuples,
      and ndarrays, are equivalent