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:
ParticleInPotentialFree 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:
ParticleInPotentialQuantum 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:
HamiltonianHamiltonian 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.).