Numerical solution to hyperbolic PDE - grid leapfrog - what to do at boundary

  • #1

I'm implementing a scheme to solve the following equation
[tex]\frac{\partial \psi}{\partial t}=-c_{s} \cdot \frac{\partial \phi}{\partial x}[/tex]
[tex]\frac{\partial \phi}{\partial t}=-c_{s} \cdot \frac{\partial \psi}{\partial x}[/tex]

[tex]c_{s}[/tex] is just the isothermal velocity of sound. The equations are for a sound wave...

I'm solving the equation using a staggered grid, using the following scheme. n are the time grid points. j are the spatial grid points. 1/2 means middle - between two grid points.
[tex]\frac{1}{\Delta t}(\psi^{n+1/2}_{j}-\psi^{n-1/2}_{j})=- \frac{c_{s}}{\Delta x}(\phi^{n}_{j+1/2}-\phi^{n}_{j-1/2})[/tex]
[tex]\frac{1}{\Delta t}(\phi^{n+1}_{j+1/2}-\phi^{n}_{j+1/2})=- \frac{c_{s}}{\Delta x}(\psi^{n+1/2}_{j+1}-\psi^{n+1/2}_{j})[/tex]

It is also worth knowing that [tex]\phi[/tex] corresponds to the pressure value at a given grid point, and that [tex]\psi[/tex] corresponds to the velocity at a given grid point.

Of course I start with an initially known [tex]\phi[/tex] spatial distribution. Then using a backward euler I calculate the [tex]\psi[/tex] at t=-1/2. Then I obtain [tex]\psi[/tex] at t=1/2 and from that [tex]\phi[/tex] at t=1. But what should I do at the boundary of the spatial grid?It doesn't say in the scheme how to obtain the boundary [tex]\phi_{j-1/2}[/tex]. I know it will be "outside" the grid, but the value needs to be known to calculate [tex]\psi_{j}[/tex] half a time step later... For the purpose of my calculation I can just set it to the value from the previous time step since I have a waves traveling from the middle of the grid and I finish the calculation before they would escape the grid. But what if I wanted to continue with the calculation so that the waves would run off the grid?

Thanks for any advice!

Ps. can anyone suggest any slightly more higher order scheme to solve this PDE?

PS.2 sorry for the new lines after each [tex] thing. What have I done wrong?
Last edited:
  • #2
You can compute the first order derivatives on the boundary quite easily if this is what you want. If this is what you want, let me know and I will explain the way to do it.
  • #3
I'm not sure if that's what i want...

What I need is:
Look at the numerical scheme used to compute the solution.
knowing the "phi" spatial distribution at time=n, I calculate the "psi" spatial distribution at time=n+1/2. From that I can obtain the phi spatial distribution at time=n+1, But except for the j-1/2 boundary spatial grid point which I later need to calculate "psi" at time=n+3/2...

Do you see what I mean now? I don't know how to deal with the boundary grid points...
  • #4
I personally would not take the mid points to do my spatial description at the mid-points, I would do it at integer points and I can have equations for derivatives at the end points.

I can offer my assistance with the numerical scheme, does it have to be the one you specified?
  • #5
It has to be this scheme. It is stated in my assignment to implement it.

The code I wrote works fine, because I'm solving a sound wave that arises in the middle of the grid and by the time the programme finishes, the resulting sound waves don't leave the grid. So I can naively put the equilibrium value for pressure at these points.

However I would like to write this scheme properly so that the waves would be able to run off the grid... Or maybe I could put a boundary that would reflect the waves?

I have already tried periodic boundary conditions but they don't yield reasonable results...

Actually, if you know any other schemes that would be useful in solving this particular equation or perhaps the diffusion equation, i'd be very grateful for a link...
Last edited:
  • #6
You need to look up "absorbing boundary conditions". There are ways to mimic having the waves run off into infinite space. It involves a little mathematical trickery.

Suggested for: Numerical solution to hyperbolic PDE - grid leapfrog - what to do at boundary