atomec

Mirror of the atoMEC repository. Please do not post issues or pull requests here. Use https://github.com/atomec-project/atoMEC instead.

https://github.com/casus/atomec

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: aps.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.6%) to scientific vocabulary

Keywords

atomic-physics density-functional-theory electronic-structure plasma-physics warm-dense-matter
Last synced: 6 months ago · JSON representation ·

Repository

Mirror of the atoMEC repository. Please do not post issues or pull requests here. Use https://github.com/atomec-project/atoMEC instead.

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
atomic-physics density-functional-theory electronic-structure plasma-physics warm-dense-matter
Created over 4 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

image

atoMEC: Average-Atom Code for Matter under Extreme Conditions

docs Python 3.12 image codecov CodeFactor

atoMEC is a python-based average-atom code for simulations of high energy density phenomena such as in warm dense matter. It is designed as an open-source and modular python package.

atoMEC uses Kohn-Sham density functional theory, in combination with an average-atom approximation, to solve the electronic structure problem for single-element materials at finite temperature.

More information on the average-atom methodology and Kohn-Sham density functional theory can be found (for example) in this paper and references therein.

This repository is structured as follows: ├── atoMEC : source code ├── docs : sphinx documentation ├── examples : simple examples to get you started with the package └── tests : CI tests

Installation

The latest stable release of atoMEC can be installed via pip. It is first necessary to install the libxc package from a tarball source, because it currently has no official wheels distribution on PyPI. This step takes some time.

sh $ pip install https://gitlab.com/libxc/libxc/-/archive/6.2.2/libxc-6.2.2.tar.gz $ pip install atoMEC

Note that atoMEC does not (yet) support Windows installation (please see the section below on supported operating systems).

Read on for instructions on how to install atoMEC from source, using the recommended pipenv installation route.

Installation via pipenv

First, clone the atoMEC repository and cd into the main directory.

  • It is recommended to install atoMEC inside a virtual environment. Below, we detail how to achive this with pipenv.

This route is recommended because pipenv automatically creates a virtual environment and manages dependencies. Note that pyblibxc is automatically installed in this case, so there is no need to install it separately.

  1. First, install pipenv if it is not already installed, for example via pip install pipenv (or see pipenv for installation instructions)
  2. Next, install atoMEC's dependencies with pipenv install (use --dev option to install the test dependencies in the same environment)
  3. Use pipenv shell to activate the virtual environment
  4. Install atoMEC with pip install atoMEC (for developers: pip install -e .)
  5. Now run scripts from inside the atoMEC virtual environment, e.g. python examples/simple.py
  • Run the tests (see Testing section below) and report any failures (for example by raising an issue).

Supported operating systems

  • Linux and macOS: atoMEC has been installed on various linux distributions and macOS, and is expected to work for most distributions and versions
  • Windows: atoMEC does not support Windows installation. This is due to the dependency on pylibxc which currently lacks Windows support. We are looking into ways to make the dependency on pylibxc optional, in order to allow installation on Windows. However, this is not currently a priority.

Supported Python versions

  • atoMEC has been tested and is expected to work for all Python versions >= 3.8 and <= 3.12
  • atoMEC does not work for Python <= 3.7
  • Until 09.10.2023 (release 1.4.0), all development and CI testing was done with Python 3.8. As of this date, development and CI testing is done with Python 3.12.
  • Python 3.12 is therefore the recommended version for atoMEC >= 1.4.0, since this is used for the current testing and development environment

Running

You can familiarize yourself with the usage of this package by running the example scripts in examples/.

Contributing to atoMEC

We welcome your contributions, please adhere to the following guidelines when contributing to the code: * In general, contributors should develop on branches based off of develop and merge requests should be to develop * Please choose a descriptive branch name * Merges from develop to master will be done after prior consultation of the core development team * Merges from develop to master are only done for code releases. This way we always have a clean master that reflects the current release * Code should be formatted using black style

Testing

  • First, install the test requirements (if not already installed in the virtual env with pipenv install --dev): ```sh # activate environment first (optional) $ pipenv shell

install atoMEC as editable project in current directory (for developers)

$ pip install -e .[tests]

alternatively install package from PyPI with test dependencies

$ pip install atoMEC[tests] ```

  • To run the tests: sh $ pytest --cov=atoMEC --random-order tests/

Build documentation locally (for developers)

Install the prerequisites: sh $ pip install -r docs/requirements.txt

  1. Change into docs/ folder.
  2. Run make apidocs.
  3. Run make html. This creates a _build folder inside docs. You may also want to use make html SPHINXOPTS="-W" sometimes. This treats warnings as errors and stops the output at first occurrence of an error (useful for debugging rST syntax).
  4. Open docs/_build/html/index.html.
  5. make clean if required (e.g. after fixing errors) and building again.

Developers

Scientific Supervision

Core Developers and Maintainers

Contributions (alphabetical)

Citing atoMEC

If you use code from this repository in a published work, please cite

  1. T. J. Callow, D. Kotik, E. Kraisler, and A. Cangi, "atoMEC: An open-source average-atom Python code", Proceedings of the 21st Python in Science Conference, edited by Meghann Agarwal, Chris Calloway, Dillon Niederhut, and David Shupe (2022), pp. 31 – 39
  2. The DOI corresponding to the specific version of atoMEC that you used (DOIs are listed at Zenodo.org)

Owner

  • Name: Center for Advanced Systems Understanding
  • Login: casus
  • Kind: organization
  • Email: m.bussmann@hzdr.de
  • Location: Görlitz, Germany

Official Github Organization account of the Center for Advanced Systems Understanding

Citation (CITATION.cff)

# YAML 1.2
authors:
  - affiliation: "Center for Advanced Systems Understanding (CASUS), Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)"
    family-names: Callow
    given-names: Timothy
    orcid: https://orcid.org/0000-0002-4878-3521
  - affiliation: "Center for Advanced Systems Understanding (CASUS), Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)"
    family-names: Kotik
    given-names: Daniel
    orcid: https://orcid.org/0000-0001-8735-3199
  - affiliation: "Center for Advanced Systems Understanding (CASUS), Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)"
    family-names: Tsvetoslavova Stankulova
    given-names: Ekaterina
  - affiliation: "Fritz Haber Center for Molecular Dynamics and Institute of Chemistry, The Hebrew University of Jerusalem"
    family-names: Rahat
    given-names: Nathan
  - affiliation: "Fritz Haber Center for Molecular Dynamics and Institute of Chemistry, The Hebrew University of Jerusalem"
    family-names: Kraisler
    given-names: Eli
    orcid: https://orcid.org/0000-0003-0139-258X
  - affiliation: "Center for Advanced Systems Understanding (CASUS), Helmholtz-Zentrum Dresden-Rossendorf e.V. (HZDR)"
    family-names: Cangi
    given-names: Attila
    orcid: https://orcid.org/0000-0001-9162-262X
cff-version: 1.4.0
date-released: 2023-09-11
keywords:
  - "density-functional-theory"
  - "plasma-physics"
  - "electronic-structure"
  - "atomic-physics"
  - "warm-dense-matter"
license: "BSD-3-Clause"
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/atomec-project/atoMEC"
title: atoMEC
doi: 10.5281/zenodo.5205718 # This DOI represents all versions, and will always resolve to the latest one.
version: 1.4.0

GitHub Events

Total
Last Year

Dependencies

.github/workflows/gh-pages.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/mirror.yml actions
  • actions/checkout v3 composite
  • spyoungtech/mirror-action v0.6.0 composite
.github/workflows/publish-to-pypi.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/tests.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
Pipfile pypi
  • pytest >=7.1.3 develop
  • pytest-cov >=4.0.0 develop
  • pytest-lazy-fixture >=0.6.3 develop
  • pytest-random-order >=1.0.4 develop
  • joblib >=1.0.1
  • mendeleev >=0.7.0
  • numpy >=1.20.3
  • pylibxc2 >=6.0.0
  • scipy >=1.6.3
  • tabulate >=0.8.9
Pipfile.lock pypi
  • attrs ==22.1.0 develop
  • coverage ==6.5.0 develop
  • iniconfig ==1.1.1 develop
  • packaging ==21.3 develop
  • pluggy ==1.0.0 develop
  • py ==1.11.0 develop
  • pyparsing ==3.0.9 develop
  • pytest ==7.1.3 develop
  • pytest-cov ==4.0.0 develop
  • pytest-lazy-fixture ==0.6.3 develop
  • pytest-random-order ==1.0.4 develop
  • tomli ==2.0.1 develop
  • colorama ==0.4.5
  • greenlet ==1.1.3.post0
  • joblib ==1.2.0
  • mendeleev ==0.11.0
  • numpy ==1.23.4
  • pandas ==1.5.1
  • pyfiglet ==0.8.post1
  • pygments ==2.13.0
  • pylibxc2 ==6.0.0
  • python-dateutil ==2.8.2
  • pytz ==2022.5
  • scipy ==1.9.3
  • six ==1.16.0
  • sqlalchemy ==1.4.42
  • tabulate ==0.9.0
docs/requirements.txt pypi
  • Sphinx ==4.0.2
  • docutils ==0.16
  • myst-parser ==0.15.1
  • sphinx-rtd-theme ==0.5.2
requirements.txt pypi
  • joblib >=1.0.1
  • mendeleev >=0.7.0
  • numpy >=1.20.3
  • pylibxc2 >=6.0.0
  • scipy >=1.6.3
  • tabulate >=0.8.9
tests/requirements.txt pypi
  • pytest ==7.1.3 test
  • pytest-cov ==4.0.0 test
  • pytest-lazy-fixture ==0.6.3 test
  • pytest-random-order ==1.0.4 test