Skip to content

kuslavicek/phase_space_chem

Repository files navigation

PhaseSpaceChem

Python NumPy Pytest PyPI License Version Maintained zread

Electron Transfer, Diabatic Couplings, and Vibronic Energy Gaps in a Phase Space Framework

PhaseSpaceChem is a Python library designed to calculate electronic states and vibronic energy gaps using a novel Phase Space (PS) framework. By treating the electronic system as dependent on both the position ($R$) and momentum ($P$) of the nuclei, this method achieves significantly higher accuracy than standard Born-Oppenheimer or Born-Huang approximations, while naturally conserving momentum.

Features

  • Shin-Metiu Model Generator: Flexible 1D 1-electron, 3-ion Hamiltonian matrix generation.
  • Phase Space Hamiltonian: Construction of $\hat{H}_{W,el}^{PS}(R, P)$ directly in phase space.
  • Diabatization Engine: Generalized Mulliken-Hush (GMH) diabatization optimized for phase space adiabatic states ($U(R, P)$).
  • Inverse Weyl Transform: Re-quantization of phase space operators back into Hilbert space.
  • Momentum Conservation: Inherently respects conservation laws often violated by truncated ad-hoc corrections.

Installation

You can install phase_space_chem directly from source:

git clone https://github.com/username/phase_space_chem.git
cd phase_space_chem
pip install .

For development (editable install):

pip install -e .[dev]

Usage

Here is a basic example of how to initialize the grids and compute a Shin-Metiu potential:

import numpy as np
import matplotlib.pyplot as plt
from phase_space_chem import grids, potentials

# 1. Define Grid Parameters
n_r = 151  # Electronic points
n_R = 151  # Nuclear points
n_P = 151  # Momentum points

# 2. Generate Grids
R_grid, r_grid = grids.generate_position_grids(
    num_nuclear_points=n_R, 
    num_electronic_points=n_r
)
P_grid = grids.generate_momentum_grid(R_grid, n_P)

# 3. Compute Potential
# Parameters: Fixed Separation=20.0, Mobile Screening=5.0, Fixed Screening=4.0
V_rR = potentials.compute_shin_metiu_potential(
    electronic_position_grid=r_grid, 
    nuclear_position_grid=R_grid, 
    fixed_ion_separation=20.0, 
    mobile_ion_screening=5.0, 
    fixed_ion_screening=4.0
)

print(f"Potential Shape: {V_rR.shape}")

References

This project incorporates research from the following paper:

  • Electron Transfer, Diabatic Couplings and Vibronic Energy Gaps in a Phase Space Framework Zain Zaidi, Xuezhi Bian, Joseph E. Subotnik arXiv:2601.16209

About

A Python library for calculating electronic states and vibronic energy gaps using a phase space framework, ensuring higher accuracy and momentum conservation in quantum chemistry simulations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages