https://github.com/tgautam03/wavesim
1D and 2D Wave simulation from scratch
https://github.com/tgautam03/wavesim
finite-difference-method partial-differential-equations pde wave-simulation wave-simulator waves
Last synced: 5 months ago
JSON representation
1D and 2D Wave simulation from scratch
- Host: GitHub
- URL: https://github.com/tgautam03/wavesim
- Owner: tgautam03
- License: mit
- Created: 2024-05-03T22:36:18.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-24T04:02:16.000Z (over 1 year ago)
- Last Synced: 2025-01-08T07:52:01.570Z (about 1 year ago)
- Topics: finite-difference-method, partial-differential-equations, pde, wave-simulation, wave-simulator, waves
- Language: Julia
- Homepage: https://tgautam03.github.io/WaveSim/
- Size: 38.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WaveSim
1D and 2D wave simulation from scratch. For more details, please check out this [YouTube video](https://youtu.be/4IL8n8yYNjw).

The repository is setup as a package with source code in the folder named `src`.
> Before running the demo files, please add this package to your Julia global environment.
- To run the 1D wave equation demo, please open `app_1d.jl` file in Pluto notebook.
- To run the 2D wave equation demo, please open `app_2d.jl` file in Pluto notebook.
### Quick instructions for adding `WaveSim` package to the global environment
> WARNING: The instructions below might not work, so please do check out the official Julia programming language webpage for instructions.
- Open Julia in the terminal and make sure that the working directory is `WaveSim` folder.
- Move to the Pkg manager by pressing `]` key.
- Execute `dev .` command. This should add `WaveSim` to the global environment.
- Execute `instantiate` command.
- Go back to the Julia prompt and open Pluto notebooks.
## Topics
- **1D Wave Equation**
- Finite Difference Method
- Simulation Accuracy and Stability
- Numerical Dispersion
- Fine vs. coarse grid
- Higher-order Finite Difference approximations
- Von Neumann Analysis
- Boundary Conditions
- Dirichlet boundary condition
- Neumann boundary conditions
- Absorbing boundary conditions
- **2D Wave Equation**
- Finite difference method for 2D problem
- Heterogeneous medium
- Simulation Accuracy and Stability
- Numerical Dispersion
- Fine vs. coarse grid
- Higher-order Finite Difference approximations
- Von Neumann Analysis
- Boundary Conditions
- Dirichlet boundary condition
- Neumann boundary conditions
- Absorbing boundary conditions
## References
- [FDM 5-point stencil](https://math.stackexchange.com/questions/262701/how-to-obtain-prove-5-stencil-formula-for-2nd-derivative)
- Excellent resources on Von Neumann analysis:
- [MIT notes](https://math.mit.edu/classes/18.300/Notes/Notes_vNSA.pdf)
- [Jeff Chasnov's YouTube video](https://www.youtube.com/watch?v=QUiUGNwNNmo)
- [LMU Seismology](https://www.youtube.com/watch?v=5_VtrWGaEGM)
- [Absorbing boundary condition](https://www.jpier.org/ac_api/download.php?id=0506213)