Computational software for solving the Madelung Equations. A project made for APM 598/MAT 494, Mathematics of Quantum Mechanics, at ASU
Authors: Eron Ristich, and Samarth Dev
Presented on December 7th, 2023, at Arizona State University. Presentation slides.
The Madelung Equations are a set of equations proposed by Erwin Madelung in 1926 to describe a more physical interpretation of the Schrödinger Equation. Notably, Madelung's analysis resulted in a set of equations that are similar in nature to those of classical hydrodynamics, and are often referred to as the "hydrodynamic" interpretation of the Schrödinger Equation. The Madelung Equations are as follows:
where
Notably, these equations take the form of the continuity equation and the Euler equation, respectively. The Madelung Equations are a set of nonlinear partial differential equations, and are difficult to solve analytically. However, they can be solved numerically using a variety of methods.
The Madelung Equations can be derived from the Schrödinger Equation by first writing the wave function in polar form,
where
and separating the real and imaginary parts yields mass density conservation and the quantum Hamilton-Jacobi equation, respectively.
We define velocity as the gradient of the quantum action,
Additionally, one can also find that probability current density
We discretize the Madelung Equations using a technique common to classiscal computational fluid dynamics: smoothed particle hydrodynamics (SPH). One benefit of SPH over mesh-based methods is that it is a Lagrangian method, which is useful for adapting to complex or unbounded domains.
Our implementation follows that outlined by Mocz and Succi, 2015, adapted to two dimensions.
We choose a Gaussian kernel for the smoothing function as opposed to a cubic-spline. Although the cubic-spline has compact support (i.e. it is zero outside of a certain radius) and thus provides computational benefit over the Gaussian kernel, it is less accurate.
This project has been tested using Python 3.11.3 and Taichi 1.6.0, on Windows and Linux.
You can install the required packages using the following command:
pip install -r requirements.txt