Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Boundary absorption when simulating wave equation

  1. Jan 26, 2015 #1
    I wrote a wave equation simulation in C# a while ago, and while everything works fine, I am running into the expected problem that my simulation boundaries (ie the edges of the grid) reflect the waves coming to them.
    Obviously I want to keep the grid of reasonable size, so I looked into what could be done to absorb the incident energy.
    So, I looked at papers addressing the problem. Problem is (as I find with a lot of academic papers), they are mathematically rigorous, but everyday useless. I'm in need of an easy 'n dirty solution that gets me 90% of the way in all situations, not one that gets me 100% under very specific circumstances.

    TLDR: Does anyone know of a quick and dirty ways of absorbing boundary reflections in a grid simulation?
  2. jcsd
  3. Jan 28, 2015 #2
    Rigorously implementing nonreflecting boundary conditions is difficult. The simplest solution I've heard of is using a sponge layer: at the boundary you add 5-10 cells in which you add a sink term to your equations to absorb all incoming waves.
  4. Jan 28, 2015 #3
    Thanks for the reply, bigfooted.
    Yeah, the sponge layer looks like a good candidate in terms of easy of implementation. I think I will use a non-zero damping factor in those cells.
    One thing I'm not sure about yet is, I've seen some papers have their damping factor curve to be rather complicated. I.e. the cells close to the grid edge would have a high damping factor, with the factor tapering off going towards the center of the grid.
  5. Jan 30, 2015 #4
    You want to make sure that by the time the wave is at the edge of the sponge layer, it is really absorbed, so you use a very high damping factor. At the interface between your physical domain and the sponge layer, you want the transition to be smooth, to prevent the sponge layer from influencing your physical domain.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook