1D and 2D wave simulation from scratch. For more details, please check out this YouTube video.
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.
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 addWaveSim
to the global environment. - Execute
instantiate
command. - Go back to the Julia prompt and open Pluto notebooks.
- 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
- FDM 5-point stencil
- Excellent resources on Von Neumann analysis:
- Absorbing boundary condition