This project is part of the Modeling Seminar
course by Brigitte Bidégaray-Fesquet and Clément Jourdana at the Université Grenoble Alpes. The work was carried out by Linnea Hallin, Maxime Renard, Nicolas Roblet and Éloi Navet (me), during the 2023-2024 Fall semester. It focuses on the implementation and comparison of different approaches for modeling Absorbing Boundary Conditions (ABC) and Perfectly Matched Layers (PML) for solving quantum wave equations like the Schrödinger equation.
In quantum mechanics, wave equations such as the Schrödinger equation describe the behavior of quantum systems. Numerically solving these equations requires bounding the spatial domain. However, due to wave propagation extending beyond these boundaries, it’s important to choose boundary conditions that mitigate unphysical reflections.
This project implements and compares various artificial boundary conditions for the 1D Schrödinger equation, focusing on ABCs and PMLs. The project was supervised by Brigitte Bidégaray-Fesquet and Clément Jourdana. For more detailed information, refer to the full project report (report.pdf
).
├── code
│ ├── homogoneous_diffusion_eq
│ │ ├── diffusion_simul_implementation.py
│ │ └── diffusion_test_script.py
│ ├── main_notebook.ipynb # Main notebook running all simulations
│ ├── nonhomogoneous_diff_eq
│ │ ├── nonhomogoneous_diffusion_simul_implementation.py
│ │ └── nonhomogoneous_diffusion_test_script.py
│ ├── pml
│ │ ├── abc_pml.py # Implementation of ABC and PML techniques
│ │ ├── abc_pml_test_script.py # Test scripts
│ │ ├── pml.py
│ │ └── pml_test_script.py
│ ├── schroedinger_eq
│ │ ├── schroedinger_exact_implementation.py
│ │ ├── schroedinger_simul_implementation.py
│ │ └── schroedinger_study_error.py # Error analysis
│ └── wave_eq
│ ├── wave_exact_implementation.py
│ ├── wave_simul_implementation.py
│ └── wave_study_error.py
├── doc
│ ├── A_Friendly_Review_of_Absorbing_Boundary_Conditions.pdf # Key reference paper
│ ├── modeling_seminar_bidegaray_jourdana.pdf # Course statement
│ ├── presentation.pdf # Presentation slides
│ └── report.pdf # Project report
├── environment.yml # Conda environment for dependencies
└── plot # Visualizations of results and analysis
Ensure you have conda installed, then set up the environment using the provided environment.yml
file:
conda env create -f environment.yml
conda activate modeling-seminar
You can explore the implementations and test cases by running the main_notebook.ipynb
notebook. This notebook runs simulations for the Schrödinger equation with different boundary conditions and compares the results.
The project includes pre-generated plots and code to visualize the results of the simulations. You can find these in the plot
directory. For example, results for error analysis and boundary condition effectiveness can be found in:
plot/schroedinguer/
├── error_abc_only.png
├── sch_eq_abc.png
The primary objectives of this project are:
- Implement and test Absorbing Boundary Conditions (ABC) and Perfectly Matched Layers (PML).
- Compare the accuracy and efficiency of ABCs and PMLs for absorbing boundary conditions in quantum wave equations.
- Extend the study to other quantum wave equations, such as the Klein-Gordon and Dirac equations.
- Antoine, X., Lorin, E., & Tang, Q. (2017). A Friendly Review of Absorbing Boundary Conditions and Perfectly Matched Layers for Classical and Relativistic Quantum Wave Equations. Molecular Physics, 115(15-16), 1861-1879.