Skip to main content

Package for simulating nonlinear optical spectra

Project description

Ultrafast Spectroscopy Suite (UFSS)

Code for simulating nonlinear optical spectroscopies of closed and open systems

Updated on August 6, 2024 to version 0.2.0. Significant structural chagnes to the code base. Added composite diagrams. Unified UF2 and RKE code where possible, unified UF2 and RKE user interface where possible. Added helper classes for simulating common spectra. Higher-order signals are now easier for the user to calculate. Old code structure available in version 0.1.3.

Installation instructions

pip install ufss

(Note: ufss is only written for python 3, so you may need to run pip3 install ufss if pip points to python 2 on your machine)

Visualizing Feynman diagrams requires a TeX distribution

Taking a test drive in Google's Colaboratory

To try ufss without installing or downloading the repository, follow this link to see examples using the Diagram Generator:
https://colab.research.google.com/github/peterarose/ufss/blob/master/examples/DiagramGeneratorExample_Colab.ipynb

(Note: Google's Coloaboratory gives a warning message about running Jupyter notebooks not authored by Google. When prompted by the warning, select "RUN ANYWAY", and then click "YES" when it asks you if you would like to reset all runtimes)

Overview

Contains 4 separate modules:

  1. Diagram Generator (DG) - tool for automatically generating all Feynman diagrams for arbitrary order nonlinear optical spectroscopies
  • class DiagramGenerator in ufss/diagram_automation.py
  1. Ultrafast Ultrafast (UF2) - fast algorithm for calculating individual Feynman diagrams including arbitrary pulse shapes
  • for closed systems: class Wavepackets in ufss/UF2_core.py
  • for open systems: class DensityMatrices in ufss/UF2_open_core.py
  1. Runga-Kutta-Euler (RKE) - alternative algorithm for calculating individual Feynman diagrams including arbitrary pulse shapes
  1. Hamiltonian/Liouvillian Generator (HLG) - tool for generating vibronic Hamiltonians and (optionally) Liouvillians from simple parameter inputs
  • contained in vibronic_eigenstates sub-directory

Examples

See README file in the examples subdirectory for more information. Most of the examples are jupyter notebooks.

Dependencies

This code depends upon the following packages:
numpy, matplotlib, scipy>=1, pyyaml, pyx

Note: as of version 0.2.2, pyfftw is an optional package. If you would like to use it, you must install fftw first, and then use pip to install pyfftw.

References

If you use UFSS, we request that you cite the following articles, which describe how its components work.

[1] Peter A. Rose and Jacob J. Krich, "Automatic Feynman diagram generation for nonlinear optical spectroscopies and application to fifth-order spectroscopy with pulse overlaps", J. Chem. Phys. 154, 034109 (2021)

[2] Peter A. Rose and Jacob J. Krich, "Efficient numerical method for predicting nonlinear optical spectroscopies of open systems", J. Chem. Phys. 154, 034108 (2021)

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

ufss-0.2.5.tar.gz (127.8 kB view details)

Uploaded Source

File details

Details for the file ufss-0.2.5.tar.gz.

File metadata

  • Download URL: ufss-0.2.5.tar.gz
  • Upload date:
  • Size: 127.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for ufss-0.2.5.tar.gz
Algorithm Hash digest
SHA256 6b07bed61e4b9c9caa6c9d293c677f74eb56beb58f44a94af905ed520c43f622
MD5 348433ea76caca794cfa7cc650c3e4d0
BLAKE2b-256 f41796a8ef5487bb2c5d35379bd2bf3e03ccb787c9deaa7d358514d25be3ac41

See more details on using hashes here.

Supported by

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