⚠️ Repository migration notice
This repository was migrated from
nomad-coe/nomad-simulationstofairmat-nfdi/nomad-simulationson 2025-01-02. Existing GitHub links and clone URLs continue to work via redirects.If you encounter any broken links or unexpected issues related to the migration, please report them.
nomad-simulations
nomad-simulations is an open-source Python package for managing materials-science simulation data. It follows the plugin architecture of NOMAD. The package provides section definitions (Python classes) with quantities and methods that support extracting and organizing data from different simulation codes. These definitions can be used, modified, and extended at the level needed by the user, and external contributions are welcome.
Read more in the official documentation page.
Getting started
nomad-simulations can be installed as a PyPI package using pip:
pip install nomad-simulations
Development
If you want to develop locally, clone the project and create a virtual environment with Python 3.10 or newer:
git clone https://github.com/fairmat-nfdi/nomad-simulations.git
cd nomad-simulations
python3.11 -m venv .pyenv
. .pyenv/bin/activate
Make sure to have pip upgraded:
pip install --upgrade pip
We recommend installing uv for fast pip installation of the packages:
pip install uv
Install the package with development dependencies:
uv pip install '.[dev]'
The plugin is still under development. If you would like to contribute, install the package in editable mode (with the added -e flag):
uv pip install -e '.[dev]'
Run the tests
You can run the tests locally:
uv run pytest -sv tests
where the -s and -v options toggle the output verbosity.
Our CI/CD pipeline produces a more comprehensive test report using the pytest-cov package. You can generate a local coverage report:
uv run pytest --cov=src tests
You can also run the script to generate a local file coverage.txt with the same information:
./scripts/generate_coverage_txt.sh
Run linting and auto-formatting
We use Ruff for linting and formatting the code. Ruff auto-formatting is also a part of the GitHub workflow actions. You can run locally:
uv run ruff check .
uv run ruff format . --check
Debugging
For interactive debugging of the tests, use pytest with the --pdb flag. We recommend using an IDE for debugging, e.g., VSCode. If that is the case, add the following snippet to your .vscode/launch.json:
{
"configurations": [
{
"name": "<descriptive tag>",
"type": "debugpy",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/.pyenv/bin/pytest",
"justMyCode": true,
"env": {
"_PYTEST_RAISE": "1"
},
"args": [
"-sv",
"--pdb",
"<path-to-plugin-tests>",
]
}
]
}
where <path-to-plugin-tests> must be changed to the local path to the test module to be debugged.
The settings configuration file .vscode/settings.json automatically applies the linting and formatting upon saving the modified file.
Launching the documentation locally
To view the documentation locally, run MkDocs with the extra docs dependencies:
uv run --extra docs mkdocs serve
Documentation conventions for maintainers are tracked in docs/contributor_guides/documentation_writing_guide.md.
Note that part of the documentation is generated via repository scripts. For that workflow, see docs/contributor_guides/documentation_automation_guide.md.
Adding this plugin to NOMAD
If you are developing locally using the nomad-distro-dev environment, see NOMAD distro-dev README: day-to-day development.
If you are adding this plugin to a NOMAD Oasis, see NOMAD plugin installation docs.
How to cite this work
Pizarro, J.M., Boydas, E.B., Daelman, N., Ladines, A.N., Mohr, B. & Rudzinski, J.F., NOMAD Simulations [Computer software]. https://zenodo.org/doi/10.5281/zenodo.13838811
Main contributors
| Name | Topics | Github profiles | |
|---|---|---|---|
| Dr. Nathan Daelman | nathan.daelman@physik.hu-berlin.de | DFT, Precision | @ndaelman-hu |
| Dr. Bernadette Mohr | mohrbern@physik.hu-berlin.de | MD, FF | @Bernadette-Mohr |
| Dr. José M. Pizarro | jose.pizarro@physik.hu-berlin.de | GW, DMFT, BSE | @JosePizarro3 |
| Dr. Esma B. Boydas | esma.boydas@physik.hu-berlin.de | Quantum Chemistry | @EBB2675 |
| Dr. Joseph F. Rudzinski (Coordinator) | joseph.rudzinski@physik.hu-berlin.de | General | @JFRudzinski |
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nomad_simulations-0.8.0.tar.gz.
File metadata
- Download URL: nomad_simulations-0.8.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aa7d93f319e8dbfbb195c39f238a0dcb3bd63d093e5d227558c92a0cd6f3e12
|
|
| MD5 |
2aeddf60b461751e3a85e5ed8fe80dbe
|
|
| BLAKE2b-256 |
8ebc664e3d73ebfce2533850d7968b7274c2a769ff25450cd904eb1dda532e6c
|
File details
Details for the file nomad_simulations-0.8.0-py3-none-any.whl.
File metadata
- Download URL: nomad_simulations-0.8.0-py3-none-any.whl
- Upload date:
- Size: 254.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cdb4e87b174d6555bad40c917a03d46a0d25c35c61c61be00c1a1e100df1826
|
|
| MD5 |
304bac8b8d1c52a55f472f22be15239c
|
|
| BLAKE2b-256 |
ec26519d07672d270b3ded404482411fae84995f10ad9f4b36db48507de3837c
|