Source code for aiida_quantumespresso.calculations.bands

# -*- coding: utf-8 -*-
"""`CalcJob` implementation for the bands.x code of Quantum ESPRESSO."""

from aiida import orm

from aiida_quantumespresso.calculations.namelists import NamelistsCalculation


[docs]class BandsCalculation(NamelistsCalculation): """`CalcJob` implementation for the bands.x code of Quantum ESPRESSO. bands.x code of the Quantum ESPRESSO distribution, re-orders bands, and computes band-related properties. It computes for instance the expectation value of the momentum operator: <Psi(n,k) | i * m * [H, x] | Psi(m,k)>. For more information, refer to http://www.quantum-espresso.org/ """
[docs] _MOMENTUM_OPERATOR_NAME = 'momentum_operator.dat'
[docs] _BANDS_NAME = 'bands.dat'
[docs] _default_namelists = ['BANDS']
[docs] _blocked_keywords = [ ('BANDS', 'outdir', NamelistsCalculation._OUTPUT_SUBFOLDER), # pylint: disable=protected-access ('BANDS', 'prefix', NamelistsCalculation._PREFIX), # pylint: disable=protected-access ('BANDS', 'filband', _BANDS_NAME), ('BANDS', 'filp', _MOMENTUM_OPERATOR_NAME), # Momentum operator ]
[docs] _internal_retrieve_list = []
[docs] _default_parser = 'quantumespresso.bands'
@classmethod
[docs] def define(cls, spec): """Define the process specification.""" # yapf: disable super().define(spec) spec.input('parent_folder', valid_type=(orm.RemoteData, orm.FolderData), required=True) spec.output('output_parameters', valid_type=orm.Dict)
# yapf: enable