aiida_vasp.protocols#

Module for storing protocols for AiiDA VASP workflows.

Submodules#

Package Contents#

Classes#

ProtocolMixin

Utility class for processes to build input mappings for a given protocol based on a YAML configuration file.

API#

class aiida_vasp.protocols.ProtocolMixin[source]#

Utility class for processes to build input mappings for a given protocol based on a YAML configuration file.

_protocol_tag: str = 'NULL'#
_load_root: str = '~/.aiida-vasp/protocols'#
static _split_protocol_file_name(name)[source]#

Split the protocol name into its components. For example, “balance@my_protocol” becomes (“balance”, “my_protocol”). This allow the protocol to be loaded from a user define file, e.g ~/.aiida_vasp/relax/my_protocol.yaml

classmethod list_protocol_files(protocol_tag=None) list[tuple[str | None, str, pathlib.Path]][source]#

List avaliable protocols

classmethod get_protocol_filepath(file_alias: str | None = None) pathlib.Path[source]#

Return the pathlib.Path to the .yaml file that defines the protocols.

classmethod get_default_protocol() str[source]#

Return the default protocol for a given workflow class.

Parameters:

cls – the workflow class.

Returns:

the default protocol.

classmethod get_available_protocols(file_alias=None) dict[source]#

Return the available protocols for a given workflow class.

Parameters:

cls – the workflow class.

Returns:

dictionary of available protocols, where each key is a protocol and value is another dictionary that contains at least the key description and optionally other keys with supplementary information.

classmethod get_protocol_inputs(protocol: str | None = None, overrides: dict | pathlib.Path | None = None) dict[source]#

Return the inputs for the given workflow class and protocol.

Parameters:
  • cls – the workflow class.

  • protocol – optional specific protocol, if not specified, the default will be used. An ‘@’ symbol can be added to indicate which file to load the protocol from. For example, ‘balanced@phonon’ will load the protocol from ‘~/.aiida-vasp/cls._protocol_tag/phonon.yaml’

  • overrides – dictionary of inputs that should override those specified by the protocol. The mapping should maintain the exact same nesting structure as the input port namespace of the corresponding workflow class.

Returns:

mapping of inputs to be used for the workflow class.

classmethod _load_protocol_file(file_alias=None) dict[source]#

Return the contents of the protocol file for workflow class.

static _check_if_alias(alias: str)[source]#

Check if a given alias corresponds to a valid protocol.