Go to file
2024-01-02 13:09:55 +00:00
args Fix some things 2024-01-02 13:52:20 +01:00
data Fix some things 2024-01-02 13:52:20 +01:00
docs Stuff 2024-01-02 13:25:52 +01:00
doxygen-awesome Add Doxygen awesome theme 2024-01-01 15:56:23 +01:00
images Stuff 2024-01-02 13:25:52 +01:00
include Make changes 2024-01-01 15:57:40 +01:00
latex Change remote repo 2024-01-02 14:09:00 +01:00
lib Make some changes 2024-01-01 15:57:03 +01:00
python_scripts Cleanup 2024-01-02 13:32:05 +01:00
src Stuff 2024-01-02 13:25:52 +01:00
.clang-format Add formatting 2023-12-08 09:26:07 +01:00
.clangd Update Makefile and .clangd 2023-12-17 13:32:36 +01:00
.gitattributes Remove gitattributes 2024-01-02 13:49:13 +01:00
.gitignore Remove large file 2024-01-02 13:48:42 +01:00
Doxyfile Stuff 2024-01-01 15:56:51 +01:00
Makefile Remove profiling rules 2024-01-01 15:57:16 +01:00
README.md Stuff 2024-01-02 13:25:52 +01:00
requirements.txt Fix some things 2024-01-02 13:52:20 +01:00

Simulating the Schrödinger wave equation using the Crank-Nicolson method in 2+1 dimensions

Gitea repo

GitHub repo

Documentation

Double slit animation

Requirements

Operating systems

  • Linux
    • Has been tested on Fedora 38
    • Will most likely work on other Linux distributions
  • macOS
    • Will most likely not work due to the use of getopt, which is GNU specific.
  • Windows
    • Will most likely not work

Libraries

Compiling

The commands shown here should be run from the root of this project.

Normal binaries

Compiling regular binaries is as easy as running this command:

    make

The binaries will then be inside the bin directory.

Debugging binaries

If you want to debug the code, then use this command:

    make debug

The binaries will then be inside the debug directory.

Running programs

C++ binaries

To run any of the programs, just use the following command:

    ./<bin|debug>/<program-name> <args>

For the wave_simulation program, you can use a file where each line contains a configuration for the WaveSimulation class and what to output to a file. This different values should be separated by semicolons. Here is the order of what variables should be in one line:

h; dt; T; x_c; y_c; sigma_x; sigma_y; p_x; p_y; <thickness; pos_x; ap_sep; ap; slits>; <write_each step || the steps to write to file>

where <> is optional.

An example of a file can be found under the args directory.

Python scripts

Install libraries

Before running the scripts, make sure that all libraries are installed. Using pip, you can install all requirements like this:

    pip install -r requirements.txt

This recursively install all the packages that are listed in requirements.txt.

Running scripts

For the Python scripts, run them from the root of the project:

    python python_scripts/<script-name>

If you have any problems running the scripts, you might have to run this instead:

    python3 python_scripts/<script-name>

Credits

The Doxygen theme used here is doxygen-awesome-css.