PyTASER is a Python library for simulating differential absorption spectra in compounds using quantum chemical calculations, including transient (TAS) and differential (DAS) absorption spectroscopies. The goal of this library is to simulate spectra for comparison with and interpretation of experiments. The main features include:
- Transient (TAS) and differential (DAS) absorption spectra for insulating and semiconducting crystals (using DFT or database calculations)
- Plotting contributions from individual band-to-band transitions
- TAS spectra for different conditions: temperature and carrier concentrations
- Customisable plotting.
- Capability to input calculated bandstructure and density of states inputs with support for the Materials Project
To install the module with pip (recommended):
pip install pytaser
To install directly from the git repository:
pip install git+https://github.com/WMD-group/PyTASER
To do a manual build and installation:
python3 setup.py build
python3 setup.py install
PyTASER is compatible with Python 3.9+ and relies on a number of open-source packages, specifically:
- pymatgen
- numpy, scipy for data structures and unit conversion
- matplotlib for plotting the spectra
For development work, PyTASER can also be installed from a copy of the source directory:
Download PyTASER source code using the command:
git clone https://github.com/WMD-group/PyTASER
Navigate to root directory:
cd PyTASER
Install the code with the command:
pip install -e .
This command tries to obtain the required packages and their dependencies and install them automatically.
One approach is to use a Jupyter Notebook, as shown in the examples folder. Alternatively, you can set up a file in Python to run in the command line of the terminal:
python3 <filename.py>
If using your own, locally calculated data, please follow this workflow. Otherwise, use the MP-integrated workflow here.
We appreciate any contributions in the form of a pull request. Please see the Contributing documentation for more details.
Additional analysis/example spectra performed with PyTASER
would be welcomed.
Please feel free to reach out to us via the Issue Tracker if there are any questions or suggestions.
Unit tests are in the tests
directory and can be run from the top directory using pytest. Automatic testing is run on the master and develop branches using Github Actions.
Please run tests and add new tests for any new features whenever submitting pull requests.
Future topics we plan to build on:
- Incorporating finite-temperature effects (particularly for indirect band-to-band transitions)
- Direct treatment of pump-probe time delay and relaxation kinetics
- Incorporating spin-flip processes for spin-polarised systems
- Description of defective crystals
The project has been developed by @savya10, @kavanase, @LucasGVerga and @youngwonwoo, under the supervision of @utf and @aronwalsh.