Crate wafer [] [src]

Wa ve f unction Solv er: a parallelized, 3D, Schrödinger equation solver.

Wafer exploits a Wick-rotated time-dependent Schrödinger equation to solve for time-independent solutions in three dimensions.

Inspired by quantumfdtd, which is a proof of concept tool and falls short of a general purpose utility. Wafer attempts to remedy this issue.

If you use Wafer in your research, please reference the following articles:

M. Strickland and D. Yager-Elorriaga, “A parallel algorithm for solving the 3D Schrödinger equation”, Journal of Computational Physics 229, 6015–6026 (2010).



Config is a (mostly) public module which reads the configuration file wafer.cfg and populates the Config struct with the information required to run the current instance of the application.


Handles the error chain of the program.


The meat of the calculation is performed on a finite grid. Basically all of the computation work is done within this module.


Any required file input (apart from configuration) is handled here. Plain text and binary formats.


All file output is handled in this module. Plain text and binary options are both here.


Handles the potential generation, binding energy offsets, callouts to files or scripts if needed etc.



Exits (with error, but no display) after a short pause. Because we're using async logs, sometimes we dump before the log system outputs information. We spool for a little first in these instances so we get the logging info.


System entry point


Generate a SHA string


Generate a short SHA string