aiida.orm.nodes.process.calculation package

Module with Node sub classes for calculation processes.

class aiida.orm.nodes.process.calculation.CalculationNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.nodes.process.process.ProcessNode

Base class for all nodes representing the execution of a calculation process.

__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calculation'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_cachable = True
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calculation.CalculationNode.'
_query_type_string = 'process.calculation.calculation.'
_storable = True
_unstorable_message = 'storing for this node has been disabled'
inputs

Return an instance of NodeLinksManager to manage incoming INPUT_CALC links

The returned Manager allows you to easily explore the nodes connected to this node via an incoming INPUT_CALC link. The incoming nodes are reachable by their link labels which are attributes of the manager.

Returns:NodeLinksManager
outputs

Return an instance of NodeLinksManager to manage outgoing CREATE links

The returned Manager allows you to easily explore the nodes connected to this node via an outgoing CREATE link. The outgoing nodes are reachable by their link labels which are attributes of the manager.

Returns:NodeLinksManager
class aiida.orm.nodes.process.calculation.CalcFunctionNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.utils.mixins.FunctionCalculationMixin, aiida.orm.nodes.process.calculation.calculation.CalculationNode

ORM class for all nodes representing the execution of a calcfunction.

__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calcfunction'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calcfunction.CalcFunctionNode.'
_query_type_string = 'process.calculation.calcfunction.'
validate_outgoing(target, link_type, link_label)[source]

Validate adding a link of the given type from ourself to a given node.

A calcfunction cannot return Data, so if we receive an outgoing link to a stored Data node, that means the user created a Data node within our function body and stored it themselves or they are returning an input node. The latter use case is reserved for @workfunctions, as they can have RETURN links.

Parameters:
  • target – the node to which the link is going
  • link_type – the link type
  • link_label – the link label
Raises:
  • TypeError – if target is not a Node instance or link_type is not a LinkType enum
  • ValueError – if the proposed link is invalid
class aiida.orm.nodes.process.calculation.CalcJobNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.nodes.process.calculation.calculation.CalculationNode

ORM class for all nodes representing the execution of a CalcJob.

CALC_JOB_STATE_KEY = 'state'
REMOTE_WORKDIR_KEY = 'remote_workdir'
RETRIEVE_LIST_KEY = 'retrieve_list'
RETRIEVE_SINGLE_FILE_LIST_KEY = 'retrieve_singlefile_list'
RETRIEVE_TEMPORARY_LIST_KEY = 'retrieve_temporary_list'
SCHEDULER_JOB_ID_KEY = 'job_id'
SCHEDULER_LAST_CHECK_TIME_KEY = 'scheduler_lastchecktime'
SCHEDULER_STATE_KEY = 'scheduler_state'
SCHEUDLER_LAST_JOB_INFO_KEY = 'last_jobinfo'
__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calcjob'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_cachable = True
_hash_ignored_attributes = ('queue_name', 'account', 'qos', 'priority', 'max_wallclock_seconds', 'max_memory_kb')
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calcjob.CalcJobNode.'
_query_type_string = 'process.calculation.calcjob.'
_raw_input_folder

Get the input folder object.

Returns:the input folder object.
Raise:NotExistent: if the raw folder hasn’t been created yet
_repository_base_path = 'raw_input'
_tools = None
_updatable_attributes = ('sealed', 'paused', 'checkpoints', 'exception', 'exit_message', 'exit_status', 'process_label', 'process_state', 'process_status', 'state', 'remote_workdir', 'retrieve_list', 'retrieve_temporary_list', 'retrieve_singlefile_list', 'job_id', 'scheduler_state', 'scheduler_lastchecktime', 'last_jobinfo')
_validate()[source]

Verify if all the input nodes are present and valid.

Raise:ValidationError: if invalid parameters are found.
static _validate_retrieval_directive(directives)[source]

Validate a list or tuple of file retrieval directives.

Parameters:directives – a list or tuple of file retrieveal directives
Raises:ValueError – if the format of the directives is invalid
delete_state()[source]

Delete the calculation job state attribute if it exists.

get_authinfo()[source]

Return the AuthInfo that is configured for the Computer set for this node.

Returns:AuthInfo
get_builder_restart()[source]

Return a CalcJobBuilder instance, tailored for this calculation instance

This builder is a mapping of the inputs of the CalcJobNode class, supports tab-completion, automatic validation when settings values as well as automated docstrings for each input.

The fields of the builder will be pre-populated with all the inputs recorded for this instance as well as settings all the options that were explicitly set for this calculation instance.

This builder can then directly be launched again to effectively run a duplicate calculation. But more useful is that it serves as a starting point to, after changing one or more inputs, launch a similar calculation by using this already completed calculation as a starting point.

Returns:CalcJobBuilder instance
get_description()[source]

Return a string with a description of the node based on its properties.

get_hash(ignore_errors=True, ignored_folder_content=('raw_input', ), **kwargs)[source]

Return the hash for this node based on its attributes.

get_job_id()[source]

Return job id that was assigned to the calculation by the scheduler.

Returns:the string representation of the scheduler job id
get_last_job_info()[source]

Return the last information asked to the scheduler about the status of the job.

Returns:a JobInfo object (that closely resembles a dictionary) or None.
get_option(name)[source]

Retun the value of an option that was set for this CalcJobNode

Parameters:name – the option name
Returns:the option value or None
Raises:ValueError for unknown option
get_options()[source]

Return the dictionary of options set for this CalcJobNode

Returns:dictionary of the options and their values
get_parser_class()[source]

Return the output parser object for this calculation or None if no parser is set.

Returns:a Parser class.
Raise:MissingPluginError from ParserFactory no plugin is found.
get_remote_workdir()[source]

Return the path to the remote (on cluster) scratch folder of the calculation.

Returns:a string with the remote path
get_retrieve_list()[source]

Return the list of files/directories to be retrieved on the cluster after the calculation has completed.

Returns:a list of file directives
get_retrieve_singlefile_list()[source]

Return the list of files to be retrieved on the cluster after the calculation has completed.

Returns:list of single file retrieval directives
get_retrieve_temporary_list()[source]

Return list of files to be retrieved from the cluster which will be available during parsing.

Returns:a list of file directives
get_retrieved_node()[source]

Return the retrieved data folder.

Returns:the retrieved FolderData node or None if not found
get_scheduler_lastchecktime()[source]

Return the time of the last update of the scheduler state by the daemon or None if it was never set.

Returns:a datetime object or None
get_scheduler_state()[source]

Return the status of the calculation according to the cluster scheduler.

Returns:a JobState enum instance.
get_scheduler_stderr()[source]

Return the scheduler stdout output if the calculation has finished and been retrieved, None otherwise.

Returns:scheduler stdout output or None
get_scheduler_stdout()[source]

Return the scheduler stderr output if the calculation has finished and been retrieved, None otherwise.

Returns:scheduler stderr output or None
get_state()[source]

Return the state of the calculation job.

Returns:the calculation job state
get_transport()[source]

Return the transport for this calculation.

Returns:Transport configured with the AuthInfo associated to the computer of this node

Return the link label used for the retrieved FolderData node.

options

Return the available process options for the process class that created this node.

process_class

Return the CalcJob class that was used to create this node.

Returns:CalcJob class
Raises:ValueError – if no process type is defined or it is an invalid process type string
res

To be used to get direct access to the parsed parameters.

Returns:an instance of the CalcJobResultManager.
Note:a practical example on how it is meant to be used: let’s say that there is a key ‘energy’ in the dictionary of the parsed results which contains a list of floats. The command calc.res.energy will return such a list.
set_job_id(job_id)[source]

Set the job id that was assigned to the calculation by the scheduler.

Note

the id will always be stored as a string

Parameters:job_id – the id assigned by the scheduler after submission
set_last_job_info(last_job_info)[source]

Set the last job info.

Parameters:last_job_info – a JobInfo object
set_option(name, value)[source]

Set an option to the given value

Parameters:
  • name – the option name
  • value – the value to set
Raises:

ValueError for unknown option

Raises:

TypeError for values with invalid type

set_options(options)[source]

Set the options for this CalcJobNode

Parameters:options – dictionary of option and their values to set
set_remote_workdir(remote_workdir)[source]

Set the absolute path to the working directory on the remote computer where the calculation is run.

Parameters:remote_workdir – absolute filepath to the remote working directory
set_retrieve_list(retrieve_list)[source]

Set the retrieve list.

This list of directives will instruct the daemon what files to retrieve after the calculation has completed. list or tuple of files or paths that should be retrieved by the daemon.

Parameters:retrieve_list – list or tuple of with filepath directives
set_retrieve_singlefile_list(retrieve_singlefile_list)[source]

Set the retrieve singlefile list.

The files will be stored as SinglefileData instances and added as output nodes to this calculation node. The format of a single file directive is a tuple or list of length 3 with the following entries:

  1. the link label under which the file should be added
  2. the SinglefileData class or sub class to use to store
  3. the filepath relative to the remote working directory of the calculation
Parameters:retrieve_singlefile_list – list or tuple of single file directives
set_retrieve_temporary_list(retrieve_temporary_list)[source]

Set the retrieve temporary list.

The retrieve temporary list stores files that are retrieved after completion and made available during parsing and are deleted as soon as the parsing has been completed.

Parameters:retrieve_temporary_list – list or tuple of with filepath directives
set_scheduler_state(state)[source]

Set the scheduler state.

Parameters:state – an instance of JobState
set_state(state)[source]

Set the state of the calculation job.

Parameters:state – a string with the state from aiida.common.datastructures.CalcJobState.
Raise:ValueError if state is invalid
tools

Return the calculation tools that are registered for the process type associated with this calculation.

If the entry point name stored in the process_type of the CalcJobNode has an accompanying entry point in the aiida.tools.calculations entry point category, it will attempt to load the entry point and instantiate it passing the node to the constructor. If the entry point does not exist, cannot be resolved or loaded, a warning will be logged and the base CalculationTools class will be instantiated and returned.

Returns:CalculationTools instance

Submodules

Module with Node sub class for calculation function processes.

class aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.utils.mixins.FunctionCalculationMixin, aiida.orm.nodes.process.calculation.calculation.CalculationNode

ORM class for all nodes representing the execution of a calcfunction.

__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calcfunction'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calcfunction.CalcFunctionNode.'
_query_type_string = 'process.calculation.calcfunction.'
validate_outgoing(target, link_type, link_label)[source]

Validate adding a link of the given type from ourself to a given node.

A calcfunction cannot return Data, so if we receive an outgoing link to a stored Data node, that means the user created a Data node within our function body and stored it themselves or they are returning an input node. The latter use case is reserved for @workfunctions, as they can have RETURN links.

Parameters:
  • target – the node to which the link is going
  • link_type – the link type
  • link_label – the link label
Raises:
  • TypeError – if target is not a Node instance or link_type is not a LinkType enum
  • ValueError – if the proposed link is invalid

Module with Node sub class for calculation job processes.

class aiida.orm.nodes.process.calculation.calcjob.CalcJobNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.nodes.process.calculation.calculation.CalculationNode

ORM class for all nodes representing the execution of a CalcJob.

CALC_JOB_STATE_KEY = 'state'
REMOTE_WORKDIR_KEY = 'remote_workdir'
RETRIEVE_LIST_KEY = 'retrieve_list'
RETRIEVE_SINGLE_FILE_LIST_KEY = 'retrieve_singlefile_list'
RETRIEVE_TEMPORARY_LIST_KEY = 'retrieve_temporary_list'
SCHEDULER_JOB_ID_KEY = 'job_id'
SCHEDULER_LAST_CHECK_TIME_KEY = 'scheduler_lastchecktime'
SCHEDULER_STATE_KEY = 'scheduler_state'
SCHEUDLER_LAST_JOB_INFO_KEY = 'last_jobinfo'
__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calcjob'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_cachable = True
_hash_ignored_attributes = ('queue_name', 'account', 'qos', 'priority', 'max_wallclock_seconds', 'max_memory_kb')
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calcjob.CalcJobNode.'
_query_type_string = 'process.calculation.calcjob.'
_raw_input_folder

Get the input folder object.

Returns:the input folder object.
Raise:NotExistent: if the raw folder hasn’t been created yet
_repository_base_path = 'raw_input'
_tools = None
_updatable_attributes = ('sealed', 'paused', 'checkpoints', 'exception', 'exit_message', 'exit_status', 'process_label', 'process_state', 'process_status', 'state', 'remote_workdir', 'retrieve_list', 'retrieve_temporary_list', 'retrieve_singlefile_list', 'job_id', 'scheduler_state', 'scheduler_lastchecktime', 'last_jobinfo')
_validate()[source]

Verify if all the input nodes are present and valid.

Raise:ValidationError: if invalid parameters are found.
static _validate_retrieval_directive(directives)[source]

Validate a list or tuple of file retrieval directives.

Parameters:directives – a list or tuple of file retrieveal directives
Raises:ValueError – if the format of the directives is invalid
delete_state()[source]

Delete the calculation job state attribute if it exists.

get_authinfo()[source]

Return the AuthInfo that is configured for the Computer set for this node.

Returns:AuthInfo
get_builder_restart()[source]

Return a CalcJobBuilder instance, tailored for this calculation instance

This builder is a mapping of the inputs of the CalcJobNode class, supports tab-completion, automatic validation when settings values as well as automated docstrings for each input.

The fields of the builder will be pre-populated with all the inputs recorded for this instance as well as settings all the options that were explicitly set for this calculation instance.

This builder can then directly be launched again to effectively run a duplicate calculation. But more useful is that it serves as a starting point to, after changing one or more inputs, launch a similar calculation by using this already completed calculation as a starting point.

Returns:CalcJobBuilder instance
get_description()[source]

Return a string with a description of the node based on its properties.

get_hash(ignore_errors=True, ignored_folder_content=('raw_input', ), **kwargs)[source]

Return the hash for this node based on its attributes.

get_job_id()[source]

Return job id that was assigned to the calculation by the scheduler.

Returns:the string representation of the scheduler job id
get_last_job_info()[source]

Return the last information asked to the scheduler about the status of the job.

Returns:a JobInfo object (that closely resembles a dictionary) or None.
get_option(name)[source]

Retun the value of an option that was set for this CalcJobNode

Parameters:name – the option name
Returns:the option value or None
Raises:ValueError for unknown option
get_options()[source]

Return the dictionary of options set for this CalcJobNode

Returns:dictionary of the options and their values
get_parser_class()[source]

Return the output parser object for this calculation or None if no parser is set.

Returns:a Parser class.
Raise:MissingPluginError from ParserFactory no plugin is found.
get_remote_workdir()[source]

Return the path to the remote (on cluster) scratch folder of the calculation.

Returns:a string with the remote path
get_retrieve_list()[source]

Return the list of files/directories to be retrieved on the cluster after the calculation has completed.

Returns:a list of file directives
get_retrieve_singlefile_list()[source]

Return the list of files to be retrieved on the cluster after the calculation has completed.

Returns:list of single file retrieval directives
get_retrieve_temporary_list()[source]

Return list of files to be retrieved from the cluster which will be available during parsing.

Returns:a list of file directives
get_retrieved_node()[source]

Return the retrieved data folder.

Returns:the retrieved FolderData node or None if not found
get_scheduler_lastchecktime()[source]

Return the time of the last update of the scheduler state by the daemon or None if it was never set.

Returns:a datetime object or None
get_scheduler_state()[source]

Return the status of the calculation according to the cluster scheduler.

Returns:a JobState enum instance.
get_scheduler_stderr()[source]

Return the scheduler stdout output if the calculation has finished and been retrieved, None otherwise.

Returns:scheduler stdout output or None
get_scheduler_stdout()[source]

Return the scheduler stderr output if the calculation has finished and been retrieved, None otherwise.

Returns:scheduler stderr output or None
get_state()[source]

Return the state of the calculation job.

Returns:the calculation job state
get_transport()[source]

Return the transport for this calculation.

Returns:Transport configured with the AuthInfo associated to the computer of this node

Return the link label used for the retrieved FolderData node.

options

Return the available process options for the process class that created this node.

process_class

Return the CalcJob class that was used to create this node.

Returns:CalcJob class
Raises:ValueError – if no process type is defined or it is an invalid process type string
res

To be used to get direct access to the parsed parameters.

Returns:an instance of the CalcJobResultManager.
Note:a practical example on how it is meant to be used: let’s say that there is a key ‘energy’ in the dictionary of the parsed results which contains a list of floats. The command calc.res.energy will return such a list.
set_job_id(job_id)[source]

Set the job id that was assigned to the calculation by the scheduler.

Note

the id will always be stored as a string

Parameters:job_id – the id assigned by the scheduler after submission
set_last_job_info(last_job_info)[source]

Set the last job info.

Parameters:last_job_info – a JobInfo object
set_option(name, value)[source]

Set an option to the given value

Parameters:
  • name – the option name
  • value – the value to set
Raises:

ValueError for unknown option

Raises:

TypeError for values with invalid type

set_options(options)[source]

Set the options for this CalcJobNode

Parameters:options – dictionary of option and their values to set
set_remote_workdir(remote_workdir)[source]

Set the absolute path to the working directory on the remote computer where the calculation is run.

Parameters:remote_workdir – absolute filepath to the remote working directory
set_retrieve_list(retrieve_list)[source]

Set the retrieve list.

This list of directives will instruct the daemon what files to retrieve after the calculation has completed. list or tuple of files or paths that should be retrieved by the daemon.

Parameters:retrieve_list – list or tuple of with filepath directives
set_retrieve_singlefile_list(retrieve_singlefile_list)[source]

Set the retrieve singlefile list.

The files will be stored as SinglefileData instances and added as output nodes to this calculation node. The format of a single file directive is a tuple or list of length 3 with the following entries:

  1. the link label under which the file should be added
  2. the SinglefileData class or sub class to use to store
  3. the filepath relative to the remote working directory of the calculation
Parameters:retrieve_singlefile_list – list or tuple of single file directives
set_retrieve_temporary_list(retrieve_temporary_list)[source]

Set the retrieve temporary list.

The retrieve temporary list stores files that are retrieved after completion and made available during parsing and are deleted as soon as the parsing has been completed.

Parameters:retrieve_temporary_list – list or tuple of with filepath directives
set_scheduler_state(state)[source]

Set the scheduler state.

Parameters:state – an instance of JobState
set_state(state)[source]

Set the state of the calculation job.

Parameters:state – a string with the state from aiida.common.datastructures.CalcJobState.
Raise:ValueError if state is invalid
tools

Return the calculation tools that are registered for the process type associated with this calculation.

If the entry point name stored in the process_type of the CalcJobNode has an accompanying entry point in the aiida.tools.calculations entry point category, it will attempt to load the entry point and instantiate it passing the node to the constructor. If the entry point does not exist, cannot be resolved or loaded, a warning will be logged and the base CalculationTools class will be instantiated and returned.

Returns:CalculationTools instance

Module with Node sub class for calculation processes.

class aiida.orm.nodes.process.calculation.calculation.CalculationNode(backend=None, user=None, computer=None, **kwargs)[source]

Bases: aiida.orm.nodes.process.process.ProcessNode

Base class for all nodes representing the execution of a calculation process.

__abstractmethods__ = frozenset([])
__module__ = 'aiida.orm.nodes.process.calculation.calculation'
_abc_cache = <_weakrefset.WeakSet object>
_abc_negative_cache = <_weakrefset.WeakSet object>
_abc_negative_cache_version = 40
_abc_registry = <_weakrefset.WeakSet object>
_cachable = True
_logger = <logging.Logger object>
_plugin_type_string = 'process.calculation.calculation.CalculationNode.'
_query_type_string = 'process.calculation.calculation.'
_storable = True
_unstorable_message = 'storing for this node has been disabled'
inputs

Return an instance of NodeLinksManager to manage incoming INPUT_CALC links

The returned Manager allows you to easily explore the nodes connected to this node via an incoming INPUT_CALC link. The incoming nodes are reachable by their link labels which are attributes of the manager.

Returns:NodeLinksManager
outputs

Return an instance of NodeLinksManager to manage outgoing CREATE links

The returned Manager allows you to easily explore the nodes connected to this node via an outgoing CREATE link. The outgoing nodes are reachable by their link labels which are attributes of the manager.

Returns:NodeLinksManager