Dissipative Baths
Contributed by George Trenins and Paolo Lazzaroni.
Basics
A dissipative environment can be represented by a set of harmonic oscillators, which for a one-dimensional system with phase-space coordinates \((P,\,Q)\) takes the from
The bath frequencies \(\omega_n\) and coupling coefficients \(c_n\) come from the discretization of the spectral density \(J(\omega)\)
which we have implemented for several common models.
Bath discretization
Spectral densities, memory-friction kernels, harmonic discretisation schemes.
- class tools.baths.BaseSpectralDensity(mass: float, Nmodes: int, *args, **kwargs)[source]
Model spectral densities for one-dimensional systems with bilinear coupling.
- Parameters:
- property frequencies
Array of frequencies computed in the harmonic discretization of the spectral density.
- quadrature(f)[source]
Calculate the quadrature approximation to the integral
\[\int_0^{\infty} J(\omega) f(\omega) \, \mathrm{d}\omega \approx \frac{\pi}{2} \sum_{n=1}^{N_{\text{bath}}} \frac{c_n^2}{m \omega_n} f(\omega_n)\]where \(J(\omega)\) is the spectral density.
- Parameters:
f – input function evaluated at the quadrature points (self.frequencies).
- F type:
numpy.ndarray
- Returns:
integral over the input with the spectral density as the integration kernel
- Return type:
- l_quadrature(f)[source]
Same as quadrature but using \(\Lambda(\omega) = J(\omega)/\omega\) as the integration kernel.
- class tools.baths.ExpOhmic(mass: float, Nmodes: int, eta: float, omega_cut: float, *args, **kwargs)[source]
Bases:
BaseSpectralDensityExponentially damped Ohmic spectral density
\[J(\omega) = \eta \omega \exp(-\omega/\omega_c)\]with discrete frequencies calculated according to Craig and Manolopoulos (2004), https://doi.org/10.1063/1.1850093.
- class tools.baths.Debye(mass: float, Nmodes: int, eta: float, omega_cut: float, *args, **kwargs)[source]
Bases:
BaseSpectralDensityDebye spectral density
\[J(\omega) = \frac{\eta \omega \omega_c^2 }{\omega^2 + \omega_c^2}\]with discrete frequencies calculated according to https://doi.org/10.1002/jcc.24527
- class tools.baths.Splined(mass: float, Nmodes: int, omega: ndarray, Lambda: ndarray, eta: float | None = 1.0, *args, **kwargs)[source]
Bases:
BaseSpectralDensityDiscretization of a numerical spectral density calculated on a grid and interpolated with cubic splines. Discretisation is implemented as described in https://doi.org/10.1002/jcc.24527
- Parameters:
mass (float) – mass of the bath modes
Nmodes (int) – number of oscillators in the harmonic bath discretisation
omega (numpy.ndarray) – grid of frequencies
Lambda (numpy.ndarray) – spectral density divided by frequency, computed at omega
eta (float, optional) – scaling of the spectral density
**kwargs – optional arguments passed on to scipy.interpolate.CubicSpline