26 |
where $p$ is the pressure, $t$ is the time and $c$ is the wave velocity. In this |
where $p$ is the pressure, $t$ is the time and $c$ is the wave velocity. In this |
27 |
chapter the acoustic wave equation is demonstrated. Important steps include the |
chapter the acoustic wave equation is demonstrated. Important steps include the |
28 |
translation of the Laplacian $\nabla^2$ to the \esc general form, the stiff |
translation of the Laplacian $\nabla^2$ to the \esc general form, the stiff |
29 |
equation stability criterion and solving for the displacement of acceleration solution. |
equation stability criterion and solving for the displacement or acceleration solution. |
30 |
|
|
31 |
\section{The Laplacian in \esc} |
\section{The Laplacian in \esc} |
32 |
The Laplacian operator which can be written as $\Delta$ or $\nabla^2$ is |
The Laplacian operator which can be written as $\Delta$ or $\nabla^2$, is |
33 |
calculated via the divergence of the gradient of the object, which in this |
calculated via the divergence of the gradient of the object, which in this |
34 |
example is the scalar $p$. Thus we can write; |
example is the scalar $p$. Thus we can write; |
35 |
\begin{equation} |
\begin{equation} |
70 |
\end{equation} |
\end{equation} |
71 |
|
|
72 |
\autoref{eqn:grad} corresponds to the Linear PDE general form value |
\autoref{eqn:grad} corresponds to the Linear PDE general form value |
73 |
$X$. Notice however that the general form contains the term $X |
$X$. Notice however, that the general form contains the term $X |
74 |
_{i,j}$\footnote{This is the first derivative in the $j^{th}$ |
_{i,j}$\footnote{This is the first derivative in the $j^{th}$ |
75 |
direction for the $i^{th}$ component of the solution.}, |
direction for the $i^{th}$ component of the solution.}, |
76 |
hence for a rank 0 object there is no need to do more then calculate the |
hence for a rank 0 object there is no need to do more then calculate the |
77 |
gradient and submit it to the solver. In the case of the rank 1 or greater |
gradient and submit it to the solver. In the case of the rank 1 or greater |
78 |
object, it is necessary to calculate the trace also. This is the sum of the |
object, it is also necessary to calculate the trace. This is the sum of the |
79 |
diagonal in \autoref{eqn:gradrank1}. |
diagonal in \autoref{eqn:gradrank1}. |
80 |
|
|
81 |
Thus when solving for equations containing the Laplacian one of two things must |
Thus when solving for equations containing the Laplacian one of two things must |
103 |
\section{Numerical Solution Stability} \label{sec:nsstab} |
\section{Numerical Solution Stability} \label{sec:nsstab} |
104 |
Unfortunately, the wave equation belongs to a class of equations called |
Unfortunately, the wave equation belongs to a class of equations called |
105 |
\textbf{stiff} PDEs. These types of equations can be difficult to solve |
\textbf{stiff} PDEs. These types of equations can be difficult to solve |
106 |
numerically as they tend to oscillate about the exact solution which can |
numerically as they tend to oscillate about the exact solution, which can |
107 |
eventually lead to a catastrophic failure. To counter this problem, explicitly |
eventually lead to a catastrophic failure. To counter this problem, explicitly |
108 |
stable schemes like the backwards Euler method and correct parameterisation of |
stable schemes like the backwards Euler method, and correct parameterisation of |
109 |
the problem are required. |
the problem are required. |
110 |
|
|
111 |
There are two variables which must be considered for |
There are two variables which must be considered for |
132 |
\end{equation} |
\end{equation} |
133 |
For example a 50Hz signal will require a sampling rate greater then 100Hz or |
For example a 50Hz signal will require a sampling rate greater then 100Hz or |
134 |
one sample every 0.01 seconds. The wave equation relies on a spatial frequency, |
one sample every 0.01 seconds. The wave equation relies on a spatial frequency, |
135 |
thus the sampling theorem in this case applies to the solution mesh spacing. In |
thus the sampling theorem in this case applies to the solution mesh spacing. |
136 |
this way, the frequency content of the input signal directly affects the time |
This relationship confirms that the frequency content of the input signal |
137 |
discretisation of the problem. |
directly affects the time discretisation of the problem. |
138 |
|
|
139 |
To accurately model the wave equation with high resolutions and velocities |
To accurately model the wave equation with high resolutions and velocities |
140 |
means that very fine spatial and time discretisation is necessary for most |
means that very fine spatial and time discretisation is necessary for most |
228 |
We then submit the output to \verb!Locator! and finally return the appropriate |
We then submit the output to \verb!Locator! and finally return the appropriate |
229 |
values using the \verb!getValue! function. |
values using the \verb!getValue! function. |
230 |
\begin{python} |
\begin{python} |
231 |
src=Locator(mydomain,src_cut) |
src=Locator(mydomain,src_cut) |
232 |
src_cut=src.getValue(u) |
src_cut=src.getValue(u) |
233 |
\end{python} |
\end{python} |
234 |
It is then a trivial task to plot and save the output using \mpl |
It is then a trivial task to plot and save the output using \mpl |
235 |
(\autoref{fig:cxsource}). |
(\autoref{fig:cxsource}). |
236 |
\begin{python} |
\begin{python} |
237 |
pl.plot(cut_loc,src_cut) |
pl.plot(cut_loc,src_cut) |
238 |
pl.axis([xc[0]-src_radius*3,xc[0]+src_radius*3,0.,2*U0]) |
pl.axis([xc[0]-src_radius*3,xc[0]+src_radius*3,0.,2*U0]) |
239 |
pl.savefig(os.path.join(savepath,"source_line.png")) |
pl.savefig(os.path.join(savepath,"source_line.png")) |
240 |
\end{python} |
\end{python} |
272 |
\section{Acceleration Solution} |
\section{Acceleration Solution} |
273 |
\sslist{example07b.py} |
\sslist{example07b.py} |
274 |
|
|
275 |
An alternative method is to solve for the acceleration $\frac{\partial ^2 |
An alternative method to the displacement solution, is to solve for the |
276 |
p}{\partial t^2}$ directly, and derive the displacement solution from the |
acceleration $\frac{\partial ^2 p}{\partial t^2}$ directly. The displacement can |
277 |
PDE solution. \autoref{eqn:waveu} is thus modified; |
then be derived from the acceleration after a solution has been calculated |
278 |
|
The acceleration is given by a modified form of \autoref{eqn:waveu}; |
279 |
\begin{equation} |
\begin{equation} |
280 |
\nabla ^2 p - \frac{1}{c^2} a = 0 |
\nabla ^2 p - \frac{1}{c^2} a = 0 |
281 |
\label{eqn:wavea} |
\label{eqn:wavea} |
310 |
First, we let the frequency content of the source be very small. If we define |
First, we let the frequency content of the source be very small. If we define |
311 |
the source as a cosine input, then the wavlength of the input is equal to the |
the source as a cosine input, then the wavlength of the input is equal to the |
312 |
radius of the source. Let this value be 5 meters. Now, if the maximum velocity |
radius of the source. Let this value be 5 meters. Now, if the maximum velocity |
313 |
of the model is $c=380.0ms^{-1}$ then the source |
of the model is $c=380.0ms^{-1}$, then the source |
314 |
frequency is $f_{r} = \frac{380.0}{5} = 76.0 Hz$. This is a worst case |
frequency is $f_{r} = \frac{380.0}{5} = 76.0 Hz$. This is a worst case |
315 |
scenario with a small source and the models maximum velocity. |
scenario with a small source and the models maximum velocity. |
316 |
|
|
341 |
\Delta t \leq \frac{1000.0m}{800} \frac{1}{380.0} = 0.0032s |
\Delta t \leq \frac{1000.0m}{800} \frac{1}{380.0} = 0.0032s |
342 |
\end{equation} |
\end{equation} |
343 |
\end{subequations} |
\end{subequations} |
344 |
We can see, that for each doubling of the number of nodes in the mesh, we halve |
Observe that for each doubling of the number of nodes in the mesh, we halve |
345 |
the timestep. To illustrate the impact this has, consider our model. If the |
the time step. To illustrate the impact this has, consider our model. If the |
346 |
source is placed at the center, it is $500m$ from the nearest boundary. With a |
source is placed at the center, it is $500m$ from the nearest boundary. With a |
347 |
velocity of $380.0ms^{-1}$ it will take $\approx1.3s$ for the wavefront to |
velocity of $380.0ms^{-1}$ it will take $\approx1.3s$ for the wavefront to |
348 |
reach that boundary. In each case, this equates to $100$, $200$ and $400$ time |
reach that boundary. In each case, this equates to $100$, $200$ and $400$ time |
349 |
steps. This is again, only a best case scenario, for true stability these time |
steps. This is again, only a best case scenario, for true stability these time |
350 |
values may need to be halved and possibly havled again. |
values may need to be halved and possibly halved again. |
351 |
|
|
352 |
\begin{figure}[ht] |
\begin{figure}[ht] |
353 |
\centering |
\centering |
354 |
\subfigure[Undersampled Example]{ |
\subfigure[Undersampled Example]{ |
355 |
\includegraphics[width=3in]{figures/ex07usamp.png} |
\includegraphics[width=0.45\textwidth,trim=0cm 6cm 5cm 6cm |
356 |
|
,clip]{figures/ex07usamp.png} |
357 |
\label{fig:ex07usamp} |
\label{fig:ex07usamp} |
358 |
} |
} |
359 |
\subfigure[Just sampled Example]{ |
\subfigure[Just sampled Example]{ |
360 |
\includegraphics[width=3in]{figures/ex07jsamp.png} |
\includegraphics[width=0.45\textwidth,trim=0cm 6cm 5cm 6cm |
361 |
|
,clip]{figures/ex07jsamp.png} |
362 |
\label{fig:ex07jsamp} |
\label{fig:ex07jsamp} |
363 |
} |
} |
364 |
\subfigure[Over sampled Example]{ |
\subfigure[Over sampled Example]{ |
365 |
\includegraphics[width=3in]{figures/ex07nsamp.png} |
\includegraphics[width=0.45\textwidth,trim=0cm 6cm 5cm 6cm |
366 |
|
,clip]{figures/ex07nsamp.png} |
367 |
\label{fig:ex07nsamp} |
\label{fig:ex07nsamp} |
368 |
} |
} |
|
\label{fig:ex07sampth} |
|
369 |
\caption{Sampling Theorem example for stability |
\caption{Sampling Theorem example for stability |
370 |
investigation.} |
investigation.} |
371 |
|
\label{fig:ex07sampth} |
372 |
\end{figure} |
\end{figure} |
373 |
|
|
374 |
|
|