Metadata-Version: 2.1
Name: BoltzTraP2
Version: 24.9.2
Summary: band-structure interpolator and transport coefficient calculator
Author-email: "Georg K. H. Madsen" <georg.madsen@tuwien.ac.at>
License: GPLv3+
Project-URL: Homepage, https://www.boltztrap.org
Project-URL: Download, https://gitlab.com/sousaw/BoltzTraP2/repository/archive.tar.gz?ref=v24.9.2
Keywords: electronic band structure,Onsager,thermoelectric coefficients
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: C++
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: spglib
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: ase
Requires-Dist: netCDF4
Requires-Dist: cython
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Provides-Extra: optional
Requires-Dist: gpaw; extra == "optional"
Requires-Dist: pyfftw; extra == "optional"

# BoltzTraP2

[![BoltzTraP Logo](http://www.icams.de/content/wp-content/uploads/2014/09/boltztrap_200x58.png)](https://www.imc.tuwien.ac.at//forschungsbereich_theoretische_chemie/forschungsgruppen/prof_dr_gkh_madsen_theoretical_materials_chemistry/boltztrap/)
[![TU Wien Logo](https://www.imc.tuwien.ac.at/fileadmin/tuw/main/images/TU-Logo.gif)](https://www.tuwien.ac.at/)

BoltzTraP2 is a modern implementation of the [smoothed Fourier interpolation algorithm](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.38.2721) for electronic bands that formed the base of the original and widely used [BoltzTraP](http://www.sciencedirect.com/science/article/pii/S0010465506001305) code. One of the most typical uses of BoltzTraP is the calculation of thermoelectric transport coefficients as functions of temperature and chemical potential in the rigid-band picture. However, many other features are available, including 3D plots of Fermi surfaces based on the reconstructed bands. For more information, check out the [BoltzTraP2 article](www.example.org).

## Prerequisites

BoltzTraP2 is a Python module, with a small performance-critical portion written in C++ and [Cython](http://cython.org/). BoltzTraP2's runtime requirements are Python version 3.5 or higher, and the Python libraries [NumPy](http://www.numpy.org/), [SciPy](https://www.scipy.org/), [matplotlib](https://matplotlib.org/), [spglib](https://atztogo.github.io/spglib/), [NetCDF4](https://github.com/Unidata/netcdf4-python) and [ASE](https://wiki.fysik.dtu.dk/ase/). All of them can be easily obtained from the [Python Package Index](https://pypi.python.org/pypi) (PyPI), using tools such as pip. They may also be bundled with Python distributions aimed at scientists, like [Anaconda](https://anaconda.org/), and with a number of Linux distributions. If pip is used to install BoltzTraP2, dependencies should be resolved automatically.

If available, BoltzTraP2 will also make use of [pyFFTW](http://hgomersall.github.io/pyFFTW/) (for faster Fourier transforms), [colorama](https://github.com/tartley/colorama) (to colorize some console output) and [VTK](https://www.vtk.org/) (to generate 3D representations). Those packages are not required, but they are recommended to be able to access the full functionality of BoltzTraP2.

Furthermore, compiling BoltzTraP2 from its sources requires a C++ compiler, and the development headers and libraries for Python. Cython is **not** required for a regular compilation.

## Compiling and install BoltzTraP2

The easiest way to get BoltzTraP2 is to run:

    $ pip install BoltzTraP2

This should take care of downloading and installing the dependencies as well.

Users installing from source must install the dependencies first and then run:

    $ python setup.py install

from the source directory. For finer-grained control, please see the output of these commands:

    $ python setup.py --help
    $ python setup.py --help-commands
    $ python setup.py install --help

The BoltzTraP2 installer supports

    $ python setup.py develop

which install the module through a set of symbolic links to the source directory, allowing users to immediately tests the effects of their changes to the code.

## Running the tests

BoltzTraP2 comes with a comprehensive set of unit and integration tests of its core functionality. To run those, install [pytest](https://docs.pytest.org) (also available through pip), change to the source directory and use the command

    $ pytest -v tests
