Skip to main content

Tools to automatically perform and converge exciting calculations.

Reason this release was yanked:

old version

Project description

pre-commit linting: pylint Imports: isort Ruff

exciting-workflow

Repository to collect scripts for automatically setting up exciting calculations and performing convergence series. All workflows are written in the workflow language of jobflow.

Currently supported workflows:

  • groundstate convergence of the parameters rgkmax, nempty and ngridk
  • gw convergence of the parameters nempty and ngridq, and the HELO's (high energy local orbitals) in the species file
  • bse convergence of the parameters gqmax and ngridk/ngridq

Installation

You should install and run this package in a virtual environment. Here is how you can install excitingworkflow in a new conda environment:

conda create --name exc_wf python=3.12
conda activate exc_wf
cd ~/code
git clone git@git.physik.hu-berlin.de:peschelf/excitingworkflow.git
cd excitingworkflow
pip install -e .

Remote execution

If you want to execute your workflow on a remote machine, for instance on a supercomputer using slurm as a queue manager, you can achieve this using jobflow-remote. Installation is possible via pip (assumes to be still in the root dir of excitingworkflow):

pip install -e .[remote_execution]

For more details check out the documentation of jobflow-remote and look into the excitingworkflow tutorials.

Settings

For some use cases you might want to specify general settings for this package. You can either set them as environment variables or in a yaml config file. The default location and name for this file would be ~/.excitingworkflow.yaml. Here, you can set for instance a default exciting binary. More options can be found in config/settings.py.

Code Checking and Formatting

We currently favour the ruff formatter, which by default applies PEP8 formatting to the code. Additional rule selection and configuration can be found in the pyproject.toml file.

After installing ruff via pip, if you are in the root directory of excitingtools, you can simply type:

ruff check excitingtools/path/to/file.py

This will check the selected file for common errors. Without a path the whole project will be checked.

Some problems can be solved automatically with enabling the --fix feature:

ruff check --fix excitingtools/path/to/file.py

Afterward, you can type

ruff format excitingtools/path/to/file.py

and it will do the formatting for you for the selected file, or again for the whole project without an argument. Check out the docs for more options.

Moreover, pre-commit is available. After typing in the root dir:

pip install -U pre-commit
pre-commit install

pre-commit will run ruff and a few other checks before every git commit.

Tests

Tests are very important and highly appreciated. Tests are written and executed with pytest. Every new piece of code should be unit tested. This means a small, short test for every function covering the use case. Overall code coverage is also measured in the git pipeline and displayed on the webpage.

This package is developed to run exciting calculations. It's not feasible to run exciting in the pipeline. There are still tests covering the whole workflow, and actually running exciting. Those integration tests need to be marked with @pytest.mark.exciting(). They are not run in the standard git CI, but can be (and should be regularly) tested locally via:

pip install pytest
pytest --run-exciting tests/

Note, in order for the test case to find the exciting binary, the SETTINGS.exciting_binary will be used, so it needs to be set.

Authors and acknowledgment

Fabian Peschel: main developer and maintainer

Alexander Buccheri: thanks for supervision and guideline in writing the workflows

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

excitingworkflow-0.0.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

excitingworkflow-0.0.1-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file excitingworkflow-0.0.1.tar.gz.

File metadata

  • Download URL: excitingworkflow-0.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for excitingworkflow-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3dd5e678a0f4fd6e9ad039085243c36848dbf5a4e3f0840180d2afc86173100c
MD5 017b8e46e3ed9b79b0d06ceabed24394
BLAKE2b-256 76ac6e2a9a2a837e6c8daefffa499dfead413b611efeb1accd5390d05a92802f

See more details on using hashes here.

File details

Details for the file excitingworkflow-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for excitingworkflow-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9a779d5b1d4df6a0b5ac937f8e52a2ce946847ef4cc9c7abaeb6dc0e8a4bb65e
MD5 2ec1d836f74f988a3f280e6b8ebce9e9
BLAKE2b-256 feaf88cfe5d41406987f43e0d5a7e9799cceca9ffa9b8b22de044a0f61e94afd

See more details on using hashes here.

Supported by

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