- Contact us
AiiDA, the high-throughput environment, is built in a modular fashion. This makes it possible to support any other simulation code via plugins that go from the management of single runs to sophisticated workflows for the computation of advanced materials properties.
AiiDA has plugins for over 30 simulation packages and the list is growing also thanks to external contributors. The full list of currently supported codes can be found on the official AiiDA plugin registry, including links to the plugin code repositories and their documentation. In particular, MAX implements and supports the AiiDA plugins for all MAX flagship codes.
Quantum ESPRESSO, one of the MAX flagship codes, is a popular and powerful DFT simulation code. The AiiDA-QuantumESPRESSO package provides not only plugins to make sure that all codes of Quantum ESPRESSO can be used with AiiDA (including pw.x, cp.x, neb.x, ph.x, and most of the post-processing tools), but also a number of powerful automated workflows.
Examples of these workflows include the automatic calculation of relaxed crystal structures, magnetic properties, electronic band structures, phonon modes and properties, including automatic error checking and restarting.
Fig.1. Example of the calculation of the total magnetization of about 50 perovskites, comparing three different functionals (LDA, PBE, PBESOL), calculated using the workflows provided in the aiida-quantumespresso plugin.
An interface to the MAX flagship code SIESTA for AiiDA is implemented within the AiiDA-siesta package, available at PyPI. The latest release implements:
support of total energies, forces, stresses, bands, spin polarization;
geometry relaxations (including variable cell);
basic mechanism for error reporting and automatic restarts.
The package contains workflows for band structure generation and simulation of STM images built on core AiiDA framework functionality. It fully supports the native *.psf pseudopotential format for SIESTA, with reserved extensibility for upcoming standards like PSML.
Fig.2. Provenance graph of a STM-imaging workflow performed with the aiida-siesta plugin
The AiiDA-yambo package provides support for the flagship MAX code Yambo. The plugin provides functionality to compute multiple properties availed by MBPT, including:
quasiparticle energies within the GW approximation;
EELS and optical absorption spectra;
dynamical polarizability of molecules.
As part of the plugin, support for recovery from various error conditions is present, including errors from queue time exhaustion, out of memory and parallelism exceptions. This is true both for the code and its preprocessor P2Y.
Additionally, taking advantage of the workflow API, the AiiDA-Yambo package provides a set of workflows, that can enable the automatic management of calculations, as well as automatic single and multi-dimensional convergence of parameters for a G0W0 calculation (Figure 1).
Fig. 1: Automatic convergence of a G0W0 Yambo calculation using the aiida-yambo plugins and workflows, showing the history of a fully automated workflow that converges the simulation parameters using a 1-D search in a 4-D space. As a result, we can obtain (without user intervention) a highly accurate value of the fundamental gap of diamond (5.4 eV).
To use the MAX Flagship code FLEUR together with the AiiDA an extension has been created and made available in the AiiDA-FLEUR package. The package provides AiiDA plugins for the FLEUR input-generator and the FLEUR code itself (Figure 4) in addition to a data structure to manipulate and create FLEUR input. In addition powerful tools and workflows that ease simulation life are included. Besides basic electronic structure workflows as calculation of density of states, band structure, equation of states, etc. (Figure 5), more complex turn-key solutions for specific tasks are also part of AiiDA-FLEUR.
Fig. 4: AiiDA database graph of a FLEUR calculation with the node structure showing input and output node types.
Fig. 5: Illustration of the transferability of common StructureData nodes within the AiiDA-FLEUR package. One can run most of the workflows in the AiiDA-FLEUR package with a StructureData node from anywhere (External Databases, or other codes, …) and optionally ParameterData nodes to control the workflows beyond the defaults.
Plugin and workflows for CP2K
CP2K is a quantum chemistry and solid-state physics package for atomistic simulations that belongs to the MAX codes family. Thanks to the linear scaling DFT implementation CP2K can fairly easy deal with the structures containing thousands of atoms.
To empower AiiDA users with full access to the whole spectrum of tools available within the CP2K package a simple but flexible AiiDA-CP2K plugin has been developed. The AiiDA-CP2K package also provides two work chains named Cp2kBaseWorkChain and Cp2kMultiStageWorkChain. The first one is able to automatically fix generic problems such as wall time exceeding or node crash. The second work chain provides a simple interface to run several step simulations with a possibility to perform a stepwise enhancement of the convergence settings. If with the initial settings the convergence can’t be achieved, the work chain will automatically switch to more robust ones that are provided by the user. In case none of the settings could make it converge, the work chain will stop and report an error.
Energy profile obtained with a 3-step Cp2kMultiStageWorkChain for a covalent organic framework. The three steps are: fixed angle cell optimisation, molecular dynamics and final cell optimisation.
Plugin and workflows for BigDFT
The AiiDA-BigDFT plugin developed in the context of MAX offers several possibilities:
Pure AiiDA notebooks, integrating BigDFT computation and output file parsing in an AiiDA workflow.
Integration of AiiDA computations in BigDFT notebooks and workflows, with little adaptation needed to switch from a BigDFT computation to an AiiDA computation.
The second use case allows complete integration with PyBigDFT bindings, which provides pre and post-processing tools for BigDFT computations, and the handling of datasets, grouping several computations that can be run remotely and concurrently through AiiDA. Existing workflows and tutorials can be reused with little changes :
SystemCalculator becomes AiidaCalculator, which handles arguments for code and runtime parameters.
AiidaCalculator can be grouped into datasets, which can handle more global parameters, such as queue_name, accounts, and launch all underlying AiidaCalculators asynchronously or synchronously. It can then wait on the end of all of them, and gather logfiles' data from the AiiDA data folders.
Example of integration of AiiDA in a BigDFT typical computation with several computations.