Skip to main content

AiiDA plugin for running the CRYSTAL17 code

Project description

Build Status Coverage Status Docs status PyPI Anaconda-Server Badge

aiida-crystal17

AiiDA plugin for running the CRYSTAL17 code. The code is principally tested against CRYSTAL17, but the output parsing has also been tested against CRYSTAL14.

Documentation: https://readthedocs.org/projects/aiida-crystal17

Installation

To install from Conda (recommended)::

>> conda install -c conda-forge aiida-crystal17 aiida-core.services

To install from pypi::

>> pip install aiida-crystal17

To install the development version:

>> git clone https://github.com/chrisjsewell/aiida-crystal17 .
>> cd aiida-crystal17
>> pip install -e .  # also installs aiida, if missing (but not postgres)
>> #pip install -e .[pre-commit,testing] # install extras for more features
>> verdi quicksetup  # set up a new profile
>> verdi calculation plugins  # should now show the calclulation plugins (with prefix crystal17.)

Tests

The following will discover and run all unit test:

>> pip install -e .[testing]
>> reentry scan -r aiida
>> pytest -v

To omit tests which call runcry17:

>> pytest -v -m "not process_execution"

or alternatively to call the mock_runcry17 executable, first set the global environmental variable:

>> export MOCK_EXECUTABLES=true

Development and Testing Notes

The original plugin template was created from the aiida-plugin-cutter .

Coding Style Requirements

The code style is tested using prospector, with the configuration set in .prospector.yaml, and yapf.

Installing with aiida-crystal17[pre-commit] makes the pre-commit package available, which will ensure these tests are passed by reformatting the code and testing for lint errors before submitting a commit. It can be setup by:

>> cd aiida-crystal17
>> pre-commit install

Optionally you can run yapf and prospector separately:

>> yapf -r -i .  # recrusively find and format files in-place
>> prospector 

Editors like PyCharm also have automatic code reformat utilities, which should adhere to this standard.

Testing against mock CRYSTAL17 executables

Because CRYSTAL17 is a licensed software, it is not possible to source a copy of the executable on Travis CI. Therefore, a mock executable (mock_runcry17) has been created for testing purposes (which also speeds up test runs).

This executable computes the md5 hash of the supplied input file and tries to match it against a dictionary of precomputed hashes. If found, the executable will write the matching output (from test/output_files) to stdout.

To use this mock executable when running tests, set the global variable MOCK_CRY17_EXECUTABLES=true.

Setting up CRYSTAL17 locally

To set up local version of CRYSTAL17 on a mac (after downloading a copy from the distributor), I had to:

  1. Remove the quarantine from the executable permissions:

    xattr -c crystal 
    xattr -c properties
    
  2. Create versions of the lapack/blas libraries in the expected folders:

    sudo port install lapack
    sudo cp /opt/local/lib/lapack/liblapack.3.dylib /usr/local/opt/lapack/lib/liblapack.3.dylib
    sudo cp /opt/local/lib/lapack/libblas.3.dylib /usr/local/opt/lapack/lib/libblas.3.dylib
    
  3. Define environmental variables in ~/.bashrc, as detailed in cry17_scripts/cry17.bashrc

  4. Copy or symlink the cry17_scripts/runcry17 script into /usr/local/bin/

License

MIT

Contact

chrisj_sewell@hotmail.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiida-crystal17-0.9.0b5.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

aiida_crystal17-0.9.0b5-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file aiida-crystal17-0.9.0b5.tar.gz.

File metadata

  • Download URL: aiida-crystal17-0.9.0b5.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.3

File hashes

Hashes for aiida-crystal17-0.9.0b5.tar.gz
Algorithm Hash digest
SHA256 bcd74ab89b801c16e6f41401f203ad108723f08667f6f46d1bf750754e3459b7
MD5 d8d6e40d189209f384c8f6151d719f73
BLAKE2b-256 f3c15fe12e1b7b036cd07b12e787c60231c26770cba91daf2b9d82a82bb05701

See more details on using hashes here.

Provenance

File details

Details for the file aiida_crystal17-0.9.0b5-py3-none-any.whl.

File metadata

  • Download URL: aiida_crystal17-0.9.0b5-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.3

File hashes

Hashes for aiida_crystal17-0.9.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 1968ad41db1f48fe9ff44b313e934f1b31f6efe8c82706f910c6b59d7095907d
MD5 2f01a365f48d9a3add980a38000dd6f7
BLAKE2b-256 0bbf8409383e81287b69ccb8852b5e05447eea27c8f95a9d1e293ee439517d9d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page