aiida_hubbard.workflows.hp.parallelize_atoms#

Work chain to launch a Quantum Espresso hp.x calculation parallelizing over the Hubbard atoms.

Module Contents#

Classes#

HpParallelizeAtomsWorkChain

Work chain to launch a Quantum Espresso hp.x calculation parallelizing over the Hubbard atoms.

Attributes#

aiida_hubbard.workflows.hp.parallelize_atoms.PwCalculation[source]#
aiida_hubbard.workflows.hp.parallelize_atoms.HpCalculation[source]#
aiida_hubbard.workflows.hp.parallelize_atoms.HpBaseWorkChain[source]#
aiida_hubbard.workflows.hp.parallelize_atoms.HpParallelizeQpointsWorkChain[source]#
class aiida_hubbard.workflows.hp.parallelize_atoms.HpParallelizeAtomsWorkChain(inputs: dict | None = None, logger: logging.Logger | None = None, runner: aiida.engine.runners.Runner | None = None, enable_persistence: bool = True)[source]#

Bases: aiida.engine.WorkChain

Work chain to launch a Quantum Espresso hp.x calculation parallelizing over the Hubbard atoms.

classmethod define(spec)[source]#

Define the process specification.

run_init()[source]#

Run an initialization HpBaseWorkChain to that will determine which kinds need to be perturbed.

By performing an initialization_only calculation only the symmetry analysis will be performed to determine which kinds are to be perturbed. This information is parsed and can be used to determine exactly how many HpBaseWorkChains have to be launched in parallel.

inspect_init()[source]#

Inspect the initialization HpBaseWorkChain.

should_run_atoms()[source]#

Return whether there are more atoms to run.

run_atoms()[source]#

Run a separate HpBaseWorkChain for each of the defined Hubbard atoms.

inspect_atoms()[source]#

Inspect each parallel atom HpBaseWorkChain.

run_final()[source]#

Perform the final HpCalculation to collect the various components of the chi matrices.

inspect_final()[source]#

Inspect the final HpBaseWorkChain.

results()[source]#

Retrieve the results from the final matrix collection workchain.

on_terminated()[source]#

Clean the working directories of all child calculations if clean_workdir=True in the inputs.