1 |
|
2 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
3 |
% |
4 |
% Copyright (c) 2003-2010 by University of Queensland |
5 |
% Earth Systems Science Computational Center (ESSCC) |
6 |
% http://www.uq.edu.au/esscc |
7 |
% |
8 |
% Primary Business: Queensland, Australia |
9 |
% Licensed under the Open Software License version 3.0 |
10 |
% http://www.opensource.org/licenses/osl-3.0.php |
11 |
% |
12 |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
13 |
|
14 |
|
15 |
|
16 |
The acoustic wave equation governs the propagation of pressure waves. Wave |
17 |
types that obey this law tend to travel in liquids or gases where shear waves |
18 |
or longitudinal style wave motion is not possible. The obvious example is sound |
19 |
waves. |
20 |
|
21 |
The acoustic wave equation is; |
22 |
\begin{equation} |
23 |
\nabla ^2 p - \frac{1}{c^2} \frac{\partial ^2 p}{\partial t^2} = 0 |
24 |
\label{eqn:acswave} |
25 |
\end{equation} |
26 |
where $p$ is the pressure, $t$ is the time and $c$ is the wave velocity. |
27 |
|
28 |
|
29 |
|
30 |
\section{Numerical Solution Stability} |
31 |
Unfortunately, the wave equation is belongs to a class of equations called |
32 |
\textbf{stiff} PDEs. This types of equations can be difficult to solve |
33 |
numerically as they tend to oscilate about the exact solution and can |
34 |
eventually blow up. To counter this problem, explicitly stable schemes like the |
35 |
backwards Euler method are required. In terms of the wave equation, the |
36 |
analytical wave must not propagate faster than the numerical wave is able to, |
37 |
and in general, needs to be much slower than the numerical wave. |
38 |
|
39 |
For example, a line 100m long is discretised into 1m intervals or 101 nodes. If |
40 |
a wave enters with a propagation velocity of 100m/s then the travel time for |
41 |
the wave between each node will be 0.01 seconds. The time step, must therefore |
42 |
be significantly less than this. Of the order $10E-4$ would be appropriate. |
43 |
|
44 |
This requirement for very small step sizes makes stiff equations difficult to |
45 |
solve numerically due to the large number of time iterations required in each |
46 |
solution. Models with very high velocities and fine meshes will be the worst |
47 |
affected by this problem. |
48 |
|
49 |
|
50 |
\section{Displacement Solution} |
51 |
\sslist{example07a.py} |
52 |
|
53 |
We begin the solution to this PDE with the centred difference formula for the |
54 |
second derivative; |
55 |
\begin{equation} |
56 |
f''(x) \approx \frac{f(x+h - 2f(x) + f(x-h)}{h^2} |
57 |
\label{eqn:centdiff} |
58 |
\end{equation} |
59 |
substituting \refEq{eqn:centdiff} for $\frac{\partial ^2 p }{\partial t ^2}$ |
60 |
in \refEq{eqn:acswave}; |
61 |
\begin{equation} |
62 |
\nabla ^2 p - \frac{1}{c^2h^2} \left[p_{(t+1)} - 2p_{(t)} + p_{(t-1)} \right] |
63 |
= 0 |
64 |
\label{eqn:waveu} |
65 |
\end{equation} |
66 |
Rearranging for $p_{(t+1)}$; |
67 |
\begin{equation} |
68 |
p_{(t+1)} = c^2 h^2 \nabla ^2 p_{(t)} +2p_{(t)} - p_{(t-1)} |
69 |
\end{equation} |
70 |
this can be compared with the general form of the \modLPDE module and it |
71 |
becomes clear that $D=1$, $X=-c^2 h^2 \nabla ^2 p_{(t)}$ and $Y=2p_{(t)} - |
72 |
p_{(t-1)}$. |
73 |
|
74 |
\section{Acceleration Solution} |
75 |
\sslist{example07b.py} |
76 |
|
77 |
An alternative method is to solve for the acceleration $\frac{\partial ^2 |
78 |
p}{\partial t^2}$ directly, and derive the the displacement solution from the |
79 |
PDE solution. \refEq{eqn:waveu} is thus modified; |
80 |
\begin{equation} |
81 |
\nabla ^2 p - \frac{1}{c^2} a = 0 |
82 |
\label{eqn:wavea} |
83 |
\end{equation} |
84 |
and can be solved directly with $Y=0$ and $X=-c^2 \nabla ^2 p_{(t)}$. |
85 |
After each iteration the displacement is re-evaluated via; |
86 |
\begin{equation} |
87 |
p_{(t+1)}=2p_{(t)} - p_{(t-1)} + h^2a |
88 |
\end{equation} |
89 |
|
90 |
|