A plugin to interface AIMAll with AiiDA
Project description
!This README and all documentation is a work in progress!
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/
config files for testing/docs environmentcode-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
sAimAllSubmissionController
to controlAimqbCalculations``. These use
parent_group_labelfor the wavefunction file nodes from
GaussianWFXCalculation`sGaussianSubmissionController
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 link the four controllers in an overall workflowtests/
: Basic regression tests using the pytest framework (submitting a calculation, ...). Installpip install -e .[testing]
and runpytest
.conftest.py
: Configuration of fixtures for pytest
.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 Docs.isort.cfg
: Configuration to make isort and black precommit actions compatibleLICENSE
: License for your pluginREADME.md
: This filepyproject.toml
: Python package metadata for registration on PyPI and the AiiDA plugin registry (including entry points)
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.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cf2fe21d30cc96008397c274436e97912d760de5efa6b736d0622a065817846 |
|
MD5 | 2376e602c563446280ac54a8024aeefe |
|
BLAKE2b-256 | daf208ac68e3f41729c39354f2e776118c4b48e0c82bac196f49663cebfd3dca |