Skip to main content
`Ctrl`+`K`

# 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)

  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