A plugin to interface AIMAll with AiiDA
Project description
Copyright notice
This repository contains modified versions of the calculations and parsers presented in Aiida-Gaussian. Copyright (c) 2020 Kristjan Eimre. The modifications basically amount to adding the wfx file to the retrieved nodes and adding some groups/extras to calculation output.
Also, the (incomplete) testing framework is heavily influenced by the infrastructure presented in aiida-quantumespresso. Copyright (c), 2015-2020, ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE (Theory and Simulation of Materials (THEOS) and National Centre for Computational Design and Discovery of Novel Materials (NCCR MARVEL))
aiida-aimall
A plugin to interface AIMAll with AiiDA
This plugin is the default output of the AiiDA plugin cutter, intended to help developers get started with their AiiDA plugins.
Repository contents
.github/
: Github Actions configurationworkflows/
ci.yml
: runs tests, checks test coverage and builds documentation at every new commitpublish-on-pypi.yml
: automatically deploy git tags to PyPI - just generate a PyPI API token for your PyPI account and add it to thepypi_token
secret of your github repository
config/
code-aim.yaml
config file for building precommit and test envscode-gwfx.yaml
config file for building precommit and test envsprofile.yaml
config file for aiida profileprofile.yaml
config file for localhost computerprofile.yaml
setup file for localhost computer
aiida_aimall/
: The main source code of the plugin packagedata/
: A newAimqbParameters
data class, used as input to theAimqbCalculation
CalcJob
classcalculations.py
: A newAimqbCalculation
CalcJob
class, andGaussianWFXCalculation
, a modified version ofGaussianCalculation
from AiiDA Gaussianparsers.py
: A newParser
for theAimqbCalculation
, andGaussianWFXParser
, a modified version ofGaussianBaseParser
from AiiDA Gaussianworkchains.py
: NewWorkChains
.-
MultiFragmentWorkChain
to fragment molecules using cml files from the Retrievium database and submit Gaussian calculations for the fragments using functions infrag_functions
from subproptools GithubG16OptWorkchain
to take output fromMultiFragmentWorkChain
and submit Gaussian optimization calculationsAimAllReorWorkChain
to runAimqbCalculation
on output fromGaussianWFXCalculations
, then reorient to coordinate systems defined insubreor
from subproptools Github
controllers.py
: Workflow controllers to limit number of running jobs on localhost computers.-
AimReorSubmissionController
to controlAimReorWorkChain
s. These useparent_group_label
for the wavefunction file nodes fromGaussianWFXCalculation
s
-
AimAllSubmissionController
to controlAimqbCalculations``. These use
parent_group_labelfor the wavefunction file nodes from
GaussianWFXCalculation`s
-
GaussianSubmissionController
to controlGaussianWFXCalculations
. This is mostly intended to have a arbitrarily large number of max concurrents and scan for output structures ofAimReorWorkchain
s to submit to a remote cluster
docs/
: Source code of documentation for Read the Docsexamples/
: An example of how to submit a calculation using this plugintests/
: Basic regression tests using the pytest framework (submitting a calculation, ...). Installpip install -e .[testing]
and runpytest
..gitignore
: Telling git which files to ignore.pre-commit-config.yaml
: Configuration of pre-commit hooks that sanitize coding style and check for syntax errors. Enable viapip install -e .[pre-commit] && pre-commit install
.readthedocs.yml
: Configuration of documentation build for Read the DocsLICENSE
: License for your pluginREADME.md
: This fileconftest.py
: Configuration of fixtures for pytestpyproject.toml
: Python package metadata for registration on PyPI and the AiiDA plugin registry (including entry points)
See also the following video sequences from the 2019-05 AiiDA tutorial:
- run aiida-diff example calculation
- aiida-diff CalcJob plugin
- aiida-diff Parser plugin
- aiida-diff computer/code helpers
- aiida-diff input data (with validation)
- aiida-diff cli
- aiida-diff tests
- Adding your plugin to the registry
- pre-commit hooks
For more information, see the developer guide of your plugin.
Features
-
Add input files using
SinglefileData
:SinglefileData = DataFactory('singlefile') inputs['file1'] = SinglefileData(file='/path/to/file1') inputs['file2'] = SinglefileData(file='/path/to/file2')
-
Specify command line options via a python dictionary and
DiffParameters
:d = { 'ignore-case': True } DiffParameters = DataFactory('aimall') inputs['parameters'] = DiffParameters(dict=d)
-
DiffParameters
dictionaries are validated using voluptuous. Find out about supported options:DiffParameters = DataFactory('aimall') print(DiffParameters.schema.schema)
Installation
pip install aiida-aimall
verdi quicksetup # better to set up a new profile
verdi plugin list aiida.calculations # should now show your calclulation plugins
Usage
Here goes a complete example of how to submit a test calculation using this plugin.
A quick demo of how to submit a calculation:
verdi daemon start # make sure the daemon is running
cd examples
./example_01.py # run test calculation
verdi process list -a # check record of calculation
The plugin also includes verdi commands to inspect its data types:
verdi data aimall list
verdi data aimall export <PK>
Development
git clone https://github.com/kmlefran/aiida-aimall .
cd aiida-aimall
pip install --upgrade pip
pip install -e .[pre-commit,testing] # install extra dependencies
pre-commit install # install pre-commit hooks
pytest -v # discover and run all tests
See the developer guide for more information.
License
MIT
Contact
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aiida_aimall-0.5.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33bcf86401891addf4623663f1ff04a623f326320d188035072b0106171dcb62 |
|
MD5 | 799d6402b115629066a59c797daf4fcf |
|
BLAKE2b-256 | 76f2d79a6ca5d0556ccc43e1ecf3f8e826d1b824c69146e09720e3b066972eea |