A plugin for AiiDA to work with plane-wave pseudopotential DFT code CASTEP.
CASTEP has a single binary executable and calculation is primarily controlled by the task keyword.
The generic CastepCalculation
should work with all tasks, at least in terms of generating input files.
Likewise a generic CastepParser
class is implemented and can handle parsing most information we are interested in singlepoint, geometryoptimisation, bandstructure/spectral tasks.
Most output files are retrieved if present, and it is possible to explicitly request retrieval from the remote computer.
The goal of this plugin is not to provide a comprehensive parser of the CASTEP results, but to build a graph of calculations performed for provenance preservation and workflow automation.
Input and output of a simple calculation:
or a series of operations and automated calculations:
The raw files can always be extracted from the database and analysed by the post-processing tools of choice. Even better, such tools may be integrated with the AiiDA framework and have the analysis appended to the provenance graph.
Highlights of available features:
UspData
(sub-class of SingleFileData
) in AiiDA database and create/use of pseudo family groups.OTFGData
in AiiDA. Create of family/group are also supported. OTFG library (such as "C19") are represented as a OTFG string works for all elements.create_restart
function for easy creation of continuation/restart calculations. Input can be altered using param_update
and param_delete
keyword arguments. Automatic copying/linking of remote check files by AiiDA.get_castep_inputs_summary
function to print a summary of inputs of a calculations.compare_with
method to compare the inputs of two calculations.Quick glimpse into how to use the plugin for running calculations:
Documentation is hosted at Read the Docs: dev version master version
The primary dependency is the aiida_core
package. The dependencies are:
aiida_core>=2.0
.aiida_core>=1.0.0b6, <2
.aiida_core
0.12.x versions.There is only minor API changes in the aiida_core
between v1 and v2, scripts written should be compatible between the two.
Dict
input node. For example, setting smearing_width to 0.1 and "0.1" is equivalent, but they will store differently in the database.The tests uses the pytest
framework. First, install with the dependencies
pip install aiida_core[testing]
pip install aiida-castep[testing]
Then you can run the command pytest
from the project directory.