All plugins

aiida-core

AiiDA is a workflow manager for computational science with a strong focus on provenance, performance and extensibility.

status stable AiiDA ==2.9.2

General information

Install pip install aiida-core
Python import import aiida
Latest version 2.9.2
Released 2026-09-03

Registry checks

W006: 'development_status' key is deprecated. Use PyPI Trove classifiers in the plugin repository instead.
Click any code (W001, E001…) to jump to troubleshooting instructions .

Plugins provided

Calculations 5 Parsers 2 Data 32 Workflows 2 Console scripts 2 Other 60

Entry points

aiida.brokers aiida.brokers
  • core.rabbitmq

    aiida.brokers.rabbitmq.broker:RabbitmqBroker
  • core.zeromq

    aiida.brokers.zeromq.broker:ZeromqBroker
CalcJobs and calculation functions aiida.calculations
  • core.arithmetic.add

    class: aiida.calculations.arithmetic.add:ArithmeticAddCalculation

    `CalcJob` implementation to add two numbers using bash for testing and demonstration purposes.

    InputRequiredValid typesDescription
    x true Int, Float The left operand.
    y true Int, Float The right operand.
    code false AbstractCode, NoneType The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run.
    metadata false
    monitors false Dict Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job.
    remote_folder false RemoteData, NoneType Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual.
    OutputRequiredValid typesDescription
    remote_folder true RemoteData Input files necessary to run the process will be stored in this folder node.
    retrieved true FolderData Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`.
    sum true Int, Float The sum of the left and right operand.
    remote_stash false RemoteStashData Contents of the `stash.source_list` option are stored in this remote folder after job completion.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    11 The process did not register a required output.
    100 The process did not have the required `retrieved` output.
    110 The job ran out of memory.
    120 The job ran out of walltime.
    131 The specified account is invalid.
    140 The node running the job failed.
    150 {message}
    160 {message}
    310 The output file could not be read.
    320 The output file contains invalid output.
    410 The sum of the operands is a negative number.
  • core.stash

    class: aiida.calculations.stash:StashCalculation

    Utility to stash files from a remote folder. An example of how the input should look like: .. code-block:: python inputs = { 'metadata': { 'computer': load_computer(label="localhost"), 'options': { 'resources': {'num_machines': 1}, 'stash': { 'stash_mode': StashMode.COPY.value, 'target_base': '/scratch/my_stashing/', 'source_list': ['aiida.in', '_aiidasubmit.sh'], }, }, }, 'source_node': node_1, } Ideally one could use the same computer as the one of the `source_node`. However if you cannot access the stash storage from the same computer anymore but you have access to it from another computer, you can can specify the computer in `metadata.computer`. Only in case of `StashMode.SUBMIT_CUSTOM_CODE` mode, the `code` input is required. And the stashing is done by submitting a script to the computer specified in `metadata.computer`. For example: .. code-block:: python inputs = { 'metadata': { 'computer': load_computer(label="localhost"), 'options': { 'resources': {'num_machines': 1}, 'stash': { 'stash_mode': StashMode.SUBMIT_CUSTOM_CODE.value, 'target_base': '/scratch/my_stashing/', 'source_list': ['aiida.in', '_aiidasubmit.sh'], }, }, }, 'source_node': <RemoteData_NODE>, 'code': <MY_CODE> }

    InputRequiredValid typesDescription
    source_node true RemoteData The RemoteData node containing the files to stash.
    code false AbstractCode, NoneType The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run.
    metadata false
    monitors false Dict Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job.
    remote_folder false RemoteData, NoneType Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual.
    OutputRequiredValid typesDescription
    remote_folder true RemoteData Input files necessary to run the process will be stored in this folder node.
    retrieved true FolderData Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`.
    remote_stash false RemoteStashData Contents of the `stash.source_list` option are stored in this remote folder after job completion.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    100 The process did not have the required `retrieved` output.
    110 The job ran out of memory.
    120 The job ran out of walltime.
    131 The specified account is invalid.
    140 The node running the job failed.
    150 {message}
    160 {message}
  • core.templatereplacer

    class: aiida.calculations.templatereplacer:TemplatereplacerCalculation

    Simple stub of a plugin that can be used to replace some text in a given template. Can be used for many different codes, or as a starting point to develop a new plugin. This simple plugin takes two node inputs, both of type Dict, with the labels 'parameters' and 'template' You can also add other SinglefileData nodes as input, that will be copied according to what is written in 'template' (see below). * parameters: a set of parameters that will be used for substitution. * template: can contain the following parameters: * input_file_template: a string with substitutions to be managed with the format() function of python, i.e. if you want to substitute a variable called 'varname', you write {varname} in the text. See http://www.python.org/dev/peps/pep-3101/ for more details. The replaced file will be the input file. * input_file_name: a string with the file name for the input. If it is not provided, no file will be created. * output_file_name: a string with the file name for the output. If it is not provided, no redirection will be done and the output will go in the scheduler output file. * cmdline_params: a list of strings, to be passed as command line parameters. Each one is substituted with the same rule of input_file_template. Optional * input_through_stdin: if True, the input file name is passed via stdin. Default is False if missing. * files_to_copy: if defined, a list of tuple pairs, with format ('link_name', 'dest_rel_path'); for each tuple, an input link to this calculation is looked for, with link labeled 'link_label', and with file type 'Singlefile', and the content is copied to a remote file named 'dest_rel_path' Errors are raised in the input links are non-existent, or of the wrong type, or if there are unused input files. * retrieve_temporary_files: a list of relative filepaths, that if defined, will be retrieved and temporarily stored in an unstored FolderData node that will be available during the Parser.parser_with_retrieved call under the key specified by the Parser.retrieved_temporary_folder key

    InputRequiredValid typesDescription
    template true Dict A template for the input file.
    code false AbstractCode, NoneType The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run.
    files false RemoteData, SinglefileData
    metadata false
    monitors false Dict Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job.
    parameters false Dict, NoneType Parameters used to replace placeholders in the template.
    remote_folder false RemoteData, NoneType Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual.
    OutputRequiredValid typesDescription
    output_parameters true Dict
    remote_folder true RemoteData Input files necessary to run the process will be stored in this folder node.
    retrieved true FolderData Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`.
    remote_stash false RemoteStashData Contents of the `stash.source_list` option are stored in this remote folder after job completion.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    11 The process did not register a required output.
    100 The process did not have the required `retrieved` output.
    110 The job ran out of memory.
    120 The job ran out of walltime.
    131 The specified account is invalid.
    140 The node running the job failed.
    150 {message}
    160 {message}
    301 The temporary retrieved folder data node could not be accessed.
    305 The `template` input node did not specify the key `output_file_name`.
    310 The output file could not be read from the retrieved folder.
    311 A temporary retrieved file could not be read from the temporary retrieved folder.
    320 The output file contains invalid output.
  • core.transfer

    class: aiida.calculations.transfer:TransferCalculation

    Utility to copy files from different FolderData and RemoteData nodes into a single place. The final destination for these files can be either the local repository (by creating a new FolderData node to store them) or in the remote computer (by leaving the files in a new remote folder saved in a RemoteData node). Only files from the local computer and from remote folders in the same external computer can be moved at the same time with a single instance of this CalcJob. The user needs to provide three inputs: * ``instructions``: a dict node specifying which files to copy from which nodes. * ``source_nodes``: a dict of nodes, each with a unique identifier label as its key. * ``metadata.computer``: the computer that contains the remote files and will contain the final RemoteData node. The ``instructions`` dict must have the ``retrieve_files`` flag. The CalcJob will create a new folder in the remote machine (``RemoteData``) and put all the files there and will either: (1) leave them there (``retrieve_files = False``) or ... (2) retrieve all the files and store them locally in a ``FolderData`` (``retrieve_files = True``) The `instructions` dict must also contain at least one list with specifications of which files to copy and from where. All these lists take tuples of 3 that have the following format: .. code-block:: python ( source_node_key, path_to_file_in_source, path_to_file_in_target) where the ``source_node_key`` has to be the respective one used when providing the node in the ``source_nodes`` input nodes dictionary. The two main lists to include are ``local_files`` (for files to be taken from FolderData nodes) and ``remote_files`` (for files to be taken from RemoteData nodes). Alternatively, files inside of RemoteData nodes can instead be put in the ``symlink_files`` list: the only difference is that files from the first list will be fully copied in the target RemoteData folder, whereas for the files in second list only a symlink to the original file will be created there. This will only affect the content of the final RemoteData target folder, but in both cases the full file will be copied back in the local target FolderData (if ``retrieve_files = True``).

    InputRequiredValid typesDescription
    instructions true Dict A dictionary containing the `retrieve_files` flag and at least one of the file lists:`local_files`, `remote_files` and/or `symlink_files`.
    source_nodes true FolderData, RemoteData All the nodes that contain files referenced in the instructions.
    metadata false
    monitors false Dict Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job.
    remote_folder false RemoteData, NoneType Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual.
    OutputRequiredValid typesDescription
    remote_folder true RemoteData Input files necessary to run the process will be stored in this folder node.
    retrieved true FolderData Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`.
    remote_stash false RemoteStashData Contents of the `stash.source_list` option are stored in this remote folder after job completion.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    100 The process did not have the required `retrieved` output.
    110 The job ran out of memory.
    120 The job ran out of walltime.
    131 The specified account is invalid.
    140 The node running the job failed.
    150 {message}
    160 {message}
  • core.unstash

    class: aiida.calculations.unstash:UnstashCalculation

    Utility to unstash files from a remote folder. An example of how the input should look like: .. code-block:: python inputs = { 'metadata': { 'computer': Computer.collection.get(label="localhost"), 'options': { 'resources': {'num_machines': 1}, 'unstash': { 'unstash_target_mode': UnstashTargetMode.NewNode.value, 'source_list': ['aiida.in', '_aiidasubmit.sh'], # also accepts ['*'] }, }, }, 'source_node': <RemoteStashData>, 'code': <MY_CODE> # only in case of `type(source_node)==RemoteStashCustomData` }

    InputRequiredValid typesDescription
    source_node true RemoteStashData
    code false AbstractCode, NoneType The `Code` to use for this job. This input is required, unless the `remote_folder` input is specified, which means an existing job is being imported and no code will actually be run.
    metadata false
    monitors false Dict Add monitoring functions that can inspect output files while the job is running and decide to prematurely terminate the job.
    remote_folder false RemoteData, NoneType Remote directory containing the results of an already completed calculation job without AiiDA. The inputs should be passed to the `CalcJob` as normal but instead of launching the actual job, the engine will recreate the input files and then proceed straight to the retrieve step where the files of this `RemoteData` will be retrieved as if it had been actually launched through AiiDA. If a parser is defined in the inputs, the results are parsed and attached as output nodes as usual.
    OutputRequiredValid typesDescription
    remote_folder true RemoteData Input files necessary to run the process will be stored in this folder node.
    retrieved true FolderData Files that are retrieved by the daemon will be stored in this node. By default the stdout and stderr of the scheduler will be added, but one can add more by specifying them in `CalcInfo.retrieve_list`.
    remote_stash false RemoteStashData Contents of the `stash.source_list` option are stored in this remote folder after job completion.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    100 The process did not have the required `retrieved` output.
    110 The job ran out of memory.
    120 The job ran out of walltime.
    131 The specified account is invalid.
    140 The node running the job failed.
    150 {message}
    160 {message}
aiida.calculations.importers aiida.calculations.importers
  • core.arithmetic.add

    aiida.calculations.importers.arithmetic.add:ArithmeticAddCalculationImporter
aiida.calculations.monitors aiida.calculations.monitors
  • core.always_kill

    aiida.calculations.monitors.base:always_kill
aiida.cmdline.computer.configure aiida.cmdline.computer.configure
  • core.local

    aiida.transports.plugins.local:CONFIGURE_LOCAL_CMD
  • core.ssh

    aiida.transports.plugins.ssh:CONFIGURE_SSH_CMD
verdi data commands aiida.cmdline.data
  • core.array

    aiida.cmdline.commands.cmd_data.cmd_array:array
  • core.bands

    aiida.cmdline.commands.cmd_data.cmd_bands:bands
  • core.cif

    aiida.cmdline.commands.cmd_data.cmd_cif:cif
  • core.dict

    aiida.cmdline.commands.cmd_data.cmd_dict:dictionary
  • core.remote

    aiida.cmdline.commands.cmd_data.cmd_remote:remote
  • core.singlefile

    aiida.cmdline.commands.cmd_data.cmd_singlefile:singlefile
  • core.structure

    aiida.cmdline.commands.cmd_data.cmd_structure:structure
  • core.trajectory

    aiida.cmdline.commands.cmd_data.cmd_trajectory:trajectory
  • core.upf

    aiida.cmdline.commands.cmd_data.cmd_upf:upf
aiida.cmdline.data.structure.import aiida.cmdline.data.structure.import
Data node types aiida.data
  • core.array

    aiida.orm.nodes.data.array.array:ArrayData
  • core.array.bands

    aiida.orm.nodes.data.array.bands:BandsData
  • core.array.kpoints

    aiida.orm.nodes.data.array.kpoints:KpointsData
  • core.array.projection

    aiida.orm.nodes.data.array.projection:ProjectionData
  • core.array.trajectory

    aiida.orm.nodes.data.array.trajectory:TrajectoryData
  • core.array.xy

    aiida.orm.nodes.data.array.xy:XyData
  • core.base

    aiida.orm.nodes.data:BaseType
  • core.bool

    aiida.orm.nodes.data.bool:Bool
  • core.cif

    aiida.orm.nodes.data.cif:CifData
  • core.code

    aiida.orm.nodes.data.code.legacy:Code
  • core.code.abstract

    aiida.orm.nodes.data.code.abstract:AbstractCode
  • core.code.containerized

    aiida.orm.nodes.data.code.containerized:ContainerizedCode
  • core.code.installed

    aiida.orm.nodes.data.code.installed:InstalledCode
  • core.code.portable

    aiida.orm.nodes.data.code.portable:PortableCode
  • core.dict

    aiida.orm.nodes.data.dict:Dict
  • core.enum

    aiida.orm.nodes.data.enum:EnumData
  • core.float

    aiida.orm.nodes.data.float:Float
  • core.folder

    aiida.orm.nodes.data.folder:FolderData
  • core.int

    aiida.orm.nodes.data.int:Int
  • core.jsonable

    aiida.orm.nodes.data.jsonable:JsonableData
  • core.list

    aiida.orm.nodes.data.list:List
  • core.numeric

    aiida.orm.nodes.data.numeric:NumericType
  • core.orbital

    aiida.orm.nodes.data.orbital:OrbitalData
  • core.remote

    aiida.orm.nodes.data.remote.base:RemoteData
  • core.remote.stash

    aiida.orm.nodes.data.remote.stash.base:RemoteStashData
  • core.remote.stash.compress

    aiida.orm.nodes.data.remote.stash.compress:RemoteStashCompressedData
  • core.remote.stash.custom

    aiida.orm.nodes.data.remote.stash.custom:RemoteStashCustomData
  • core.remote.stash.folder

    aiida.orm.nodes.data.remote.stash.folder:RemoteStashFolderData
  • core.singlefile

    aiida.orm.nodes.data.singlefile:SinglefileData
  • core.str

    aiida.orm.nodes.data.str:Str
  • core.structure

    aiida.orm.nodes.data.structure:StructureData
  • core.upf

    aiida.orm.nodes.data.upf:UpfData
Group types aiida.groups
  • core

    aiida.orm.groups:Group
  • core.auto

    aiida.orm.groups:AutoGroup
  • core.import

    aiida.orm.groups:ImportGroup
  • core.upf

    aiida.orm.groups:UpfFamily
aiida.node aiida.node
  • data

    aiida.orm.nodes.data.data:Data
  • process

    aiida.orm.nodes.process.process:ProcessNode
  • process.calculation

    aiida.orm.nodes.process.calculation.calculation:CalculationNode
  • process.calculation.calcfunction

    aiida.orm.nodes.process.calculation.calcfunction:CalcFunctionNode
  • process.calculation.calcjob

    aiida.orm.nodes.process.calculation.calcjob:CalcJobNode
  • process.workflow

    aiida.orm.nodes.process.workflow.workflow:WorkflowNode
  • process.workflow.workchain

    aiida.orm.nodes.process.workflow.workchain:WorkChainNode
  • process.workflow.workfunction

    aiida.orm.nodes.process.workflow.workfunction:WorkFunctionNode
aiida.orm aiida.orm
  • core.auth_info

    aiida.orm.authinfos:AuthInfo
  • core.comment

    aiida.orm.comments:Comment
  • core.computer

    aiida.orm.computers:Computer
  • core.data

    aiida.orm.nodes.data.data:Data
  • core.entity

    aiida.orm.entities:Entity
  • core.group

    aiida.orm.groups:Group
  • core.log

    aiida.orm.logs:Log
  • core.node

    aiida.orm.nodes.node:Node
  • core.user

    aiida.orm.users:User
CalcJob parsers aiida.parsers
  • core.arithmetic.add

    aiida.parsers.plugins.arithmetic.add:ArithmeticAddParser
  • core.templatereplacer

    aiida.parsers.plugins.templatereplacer.parser:TemplatereplacerParser
Job scheduler support aiida.schedulers
  • core.direct

    aiida.schedulers.plugins.direct:DirectScheduler
  • core.lsf

    aiida.schedulers.plugins.lsf:LsfScheduler
  • core.pbspro

    aiida.schedulers.plugins.pbspro:PbsproScheduler
  • core.sge

    aiida.schedulers.plugins.sge:SgeScheduler
  • core.slurm

    aiida.schedulers.plugins.slurm:SlurmScheduler
  • core.torque

    aiida.schedulers.plugins.torque:TorqueScheduler
aiida.storage aiida.storage
  • core.psql_dos

    aiida.storage.psql_dos.backend:PsqlDosBackend
  • core.sqlite_dos

    aiida.storage.sqlite_dos.backend:SqliteDosStorage
  • core.sqlite_temp

    aiida.storage.sqlite_temp.backend:SqliteTempBackend
  • core.sqlite_zip

    aiida.storage.sqlite_zip.backend:SqliteZipBackend
aiida.tools.calculations aiida.tools.calculations
aiida.tools.data.orbitals aiida.tools.data.orbitals
  • core.orbital

    aiida.tools.data.orbital.orbital:Orbital
  • core.realhydrogen

    aiida.tools.data.orbital.realhydrogen:RealhydrogenOrbital
Support for exporting to external databases aiida.tools.dbexporters
Support for importing from external databases aiida.tools.dbimporters
  • core.cod

    aiida.tools.dbimporters.plugins.cod:CodDbImporter
  • core.icsd

    aiida.tools.dbimporters.plugins.icsd:IcsdDbImporter
  • core.materialsproject

    aiida.tools.dbimporters.plugins.materialsproject:MaterialsProjectImporter
  • core.mpds

    aiida.tools.dbimporters.plugins.mpds:MpdsDbImporter
  • core.mpod

    aiida.tools.dbimporters.plugins.mpod:MpodDbImporter
  • core.nninc

    aiida.tools.dbimporters.plugins.nninc:NnincDbImporter
  • core.oqmd

    aiida.tools.dbimporters.plugins.oqmd:OqmdDbImporter
  • core.pcod

    aiida.tools.dbimporters.plugins.pcod:PcodDbImporter
  • core.tcod

    aiida.tools.dbimporters.plugins.tcod:TcodDbImporter
aiida.tools.workflows aiida.tools.workflows
Data transport protocols aiida.transports
  • core.local

    aiida.transports.plugins.local:LocalTransport
  • core.ssh

    aiida.transports.plugins.ssh:SshTransport
  • core.ssh_async

    aiida.transports.plugins.ssh_async:AsyncSshTransport
WorkChains and work functions aiida.workflows
  • core.arithmetic.add_multiply

    class: aiida.workflows.arithmetic.add_multiply:add_multiply

    Add two numbers and multiply it with a third.

    InputRequiredValid typesDescription
    x true Data
    y true Data
    z true Data
    metadata false
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
  • core.arithmetic.multiply_add

    class: aiida.workflows.arithmetic.multiply_add:MultiplyAddWorkChain

    WorkChain to multiply two numbers and add a third, for testing and demonstration purposes.

    InputRequiredValid typesDescription
    code true AbstractCode
    x true Int
    y true Int
    z true Int
    metadata false
    OutputRequiredValid typesDescription
    result true Int
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    400 The result is a negative number.
Console scripts console_scripts
  • runaiida

    aiida.cmdline.commands.cmd_run:run
  • verdi

    aiida.cmdline.commands.cmd_verdi:verdi