schr.qm.hamiltonian module

Hamiltonian implementations for quantum mechanics.

class schr.qm.hamiltonian.FreeParticle(grid_shape: tuple, dx: float, mass: float = 1.0, hbar: float = 1.0, dtype: ~numpy.dtype = <class 'jax.numpy.complex64'>)[source]

Bases: ParticleInPotential

Free particle Hamiltonian (\(V = 0\)).

\[\hat{H} = -\frac{\hbar^2}{2m}\nabla^2\]
class schr.qm.hamiltonian.HarmonicOscillator(omega: float, grid_shape: tuple, dx: float, grid_coords: ~jax.Array, mass: float = 1.0, hbar: float = 1.0, dtype: ~numpy.dtype = <class 'jax.numpy.complex64'>)[source]

Bases: ParticleInPotential

Quantum harmonic oscillator Hamiltonian.

\[\hat{H} = -\frac{\hbar^2}{2m}\nabla^2 + \frac{1}{2}m\omega^2r^2\]
class schr.qm.hamiltonian.ParticleInPotential(potential: ~collections.abc.Callable[[~jax.Array, float], ~jax.Array], grid_shape: tuple, dx: float, mass: float = 1.0, hbar: float = 1.0, dtype: ~numpy.dtype = <class 'jax.numpy.complex64'>)[source]

Bases: Hamiltonian

Hamiltonian for particle in arbitrary potential.

\[\hat{H} = -\frac{\hbar^2}{2m}\nabla^2 + V(\mathbf{r}, t)\]
potential

Callable V(r, t) returning potential energy.

mass

Particle mass (a.u., default: 1.0 = electron mass).

hbar

Reduced Planck constant (a.u., default: 1.0).

dx

Grid spacing (a.u.).

kinetic_operator

Momentum space kinetic energy \(\hbar^2k^2/(2m)\).

apply(psi: Array, t: float) Array[source]

Apply \(\hat{H}|\psi\rangle = (\hat{T} + \hat{V})|\psi\rangle\) using split-operator method.

Parameters:
  • psi – Wavefunction.

  • t – Time (a.u.).

Returns:

\(\hat{H}|\psi\rangle\).

energy(psi: Array, t: float) float[source]

Compute energy expectation \(\langle\psi|\hat{H}|\psi\rangle\).

Parameters:
  • psi – Normalized wavefunction.

  • t – Time (a.u.).

Returns:

Energy expectation value (a.u.).

kinetic_energy(psi: Array) float[source]

Compute kinetic energy expectation \(\langle\psi|\hat{T}|\psi\rangle\).

Parameters:

psi – Normalized wavefunction.

Returns:

Kinetic energy (a.u.).

potential_energy(psi: Array, t: float) float[source]

Compute potential energy expectation \(\langle\psi|\hat{V}|\psi\rangle\).

Parameters:
  • psi – Normalized wavefunction.

  • t – Time (a.u.).

Returns:

Potential energy (a.u.).