Abstract

A large class of problems in quantum physics involve solution of the time independent Schrodinger equation in one or more space dimensions. These are boundary value problems, which in many cases only have solutions for specific (quantized) values of the total energy. In this article we describe a Python package that ``automagically'' transforms an analytically formulated Quantum Mechanical eigenvalue problem to a numerical form which can be handled by existing (or novel) numerical solvers. We illustrate some uses of this package. The problem is specified in terms of a small set of parameters and selectors (all provided with default values) that are easy to modify, and should be straightforward to interpret. From this the numerical details required by the solver is generated by the package, and the selected numerical solver is executed. In all cases the spatial continuum is replaced by a finite rectangular lattice. We compare common stensil discretizations of the Laplace operator with formulations involving Fast Fourier (and related trigonometric) Transforms. The numerical solutions are based on the NumPy and SciPy packages for Python 3, in particular routines from the \btt{scipy.linalg}, \btt{scipy.sparse.linalg}, and \btt{scipy.fftpack} libraries. These, like most Python resources, are freely available for Linux, MacOS, and MSWindows. We demonstrate that some interesting problems, like the lowest eigenvalues of anharmonic oscillators, can be solved quite accurately in up to 3 space dimensions on a modern laptop --- with some patience in the 3-dimensional case. We demonstrate that a reduction in the lattice distance, for a fixed the spatial volume, does not necessarily lead to more accurate results: A smaller lattice length increases the spectral width of the lattice Laplace operator, which in turn leads to an enhanced amplification of the numerical noise generated by round-off errors.

Highlights

  • The Schrödinger equation has been a central part of “modern” physics for almost a century

  • We mainly restrict our discussion to the non-relativistic, time independent form

  • This constitutes an eigenvalue problem for E (there are many cases where the operator defined by Equation (1) allows for a continuous spectrum of E-values, but this will not directly influence the treatment of finite discretizations of such systems)

Read more

Summary

INTRODUCTION

The Schrödinger equation has been a central part of “modern” physics for almost a century. This model has often functioned as a theoretical laboratory [5, 6], for instance to investigate the behavior and properties of perturbative [7, 8] and other [9,10,11,12] expansions, and alternative solution methods [13,14,15] It this article we describe some attempts to simplify numerical solutions of eigenvalue problems like (1). Other options involve selection of numerical approaches, like whether dense or iterative sparse matrix solvers should be used Such decisions have consequences for many “trivial” details of the numerical programs, but they can be provided in the form of parameters and selectors, automatically implemented without further tedious and error-prone human intervention. Even many of the decisions indicated above may by delegated to artificial intelligence systems, but this is beyond our current scope

AVAILABLE PYTHON PROCEDURES FOR NUMERICAL SOLUTION
REQUIRED PARAMETERS AND SELECTORS
Lattice Shape
Edge Lengths and Offsets
Boundary Conditions
SIMPLE APPLICATIONS
Example
FFT CALCULATION OF THE LAPLACE OPERATOR
ANHARMONIC OSCILLATORS
DATA AVAILABILITY STATEMENT
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call