aiida_quantumespresso.workflows.pw.bands
#
Workchain to compute a band structure for a given structure using Quantum ESPRESSO pw.x.
Module Contents#
Classes#
Workchain to compute a band structure for a given structure using Quantum ESPRESSO pw.x. |
Functions#
|
Validate the inputs of the entire input namespace. |
- aiida_quantumespresso.workflows.pw.bands.validate_inputs(inputs, ctx=None)[source]#
Validate the inputs of the entire input namespace.
- class aiida_quantumespresso.workflows.pw.bands.PwBandsWorkChain(inputs: dict | None = None, logger: logging.Logger | None = None, runner: aiida.engine.runners.Runner | None = None, enable_persistence: bool = True)[source]#
Bases:
aiida_quantumespresso.workflows.protocols.utils.ProtocolMixin
,aiida.engine.WorkChain
Workchain to compute a band structure for a given structure using Quantum ESPRESSO pw.x.
The logic for the computation of various parameters for the BANDS step is as follows:
- Number of bands:
One can specify the number of bands to be used in the BANDS step either directly through the input parameters bands.pw.parameters.SYSTEM.nbnd or through nbands_factor. Note that specifying both is not allowed. When neither is specified nothing will be set by the work chain and the default of Quantum ESPRESSO will end up being used. If the nbands_factor is specified the maximum value of the following values will be used:
nbnd of the preceding SCF calculation
0.5 * nelectrons * nbands_factor
0.5 * nelectrons + 4
- Kpoints:
There are three options; specify either an existing KpointsData through bands_kpoints, or specify the bands_kpoint_distance, or specify neither. For the former those exact kpoints will be used for the BANDS step. In the two other cases, the structure will first be normalized using SeekPath and the path along high-symmetry k-points will be generated on that structure. The distance between kpoints for the path will be equal to that of bands_kpoints_distance or the SeekPath default if not specified.
- classmethod get_protocol_filepath()[source]#
Return
pathlib.Path
to the.yaml
file that defines the protocols.
- classmethod get_builder_from_protocol(code, structure, protocol=None, overrides=None, options=None, **kwargs)[source]#
Return a builder prepopulated with inputs selected according to the chosen protocol.
- Parameters:
code – the
Code
instance configured for thequantumespresso.pw
plugin.structure – the
StructureData
instance to use.protocol – protocol to use, if not specified, the default will be used.
overrides – optional dictionary of inputs to override the defaults of the protocol.
options – A dictionary of options that will be recursively set for the
metadata.options
input of all theCalcJobs
that are nested in this work chain.kwargs – additional keyword arguments that will be passed to the
get_builder_from_protocol
of all the sub processes that are called by this workchain.
- Returns:
a process builder instance with all inputs defined ready for launch.
- should_run_relax()[source]#
If the ‘relax’ input namespace was specified, we relax the input structure.
- should_run_seekpath()[source]#
Seekpath should only be run if the bands_kpoints input is not specified.
- run_seekpath()[source]#
Run the structure through SeeKpath to get the normalized structure and path along high-symmetry k-points .
This is only called if the bands_kpoints input was not specified.
- run_scf()[source]#
Run the PwBaseWorkChain in scf mode on the primitive cell of (optionally relaxed) input structure.