30 |
calculated via the divergence of the gradient of the object, which is in this |
calculated via the divergence of the gradient of the object, which is in this |
31 |
example $p$. Thus we can write; |
example $p$. Thus we can write; |
32 |
\begin{equation} |
\begin{equation} |
33 |
\nabla^2 p = \nabla \cdot \nabla p = \frac{\partial^2 p}{\partial |
\nabla^2 p = \nabla \cdot \nabla p = |
34 |
x^2\hackscore{i}} |
\sum\hackscore{i}^n |
35 |
|
\frac{\partial^2 p}{\partial x^2\hackscore{i}} |
36 |
\label{eqn:laplacian} |
\label{eqn:laplacian} |
37 |
\end{equation} |
\end{equation} |
38 |
For the two dimensional case in Cartesian coordinates \refEq{eqn:laplacian} |
For the two dimensional case in Cartesian coordinates \refEq{eqn:laplacian} |
67 |
\end{equation} |
\end{equation} |
68 |
|
|
69 |
\refEq{eqn:grad} corresponds to the Linear PDE general form value |
\refEq{eqn:grad} corresponds to the Linear PDE general form value |
70 |
$X$. Notice however that the gernal form contains the term $X \hackscore{i,j}$, |
$X$. Notice however that the general form contains the term $X |
71 |
|
\hackscore{i,j}$\footnote{This is the first derivative in the $j^{th}$ |
72 |
|
direction for the $i^{th}$ component of the solution.}, |
73 |
hence for a rank 0 object there is no need to do more than calculate the |
hence for a rank 0 object there is no need to do more than calculate the |
74 |
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 |
75 |
object, it is nesscary to calculate the trace also. This is the sum of the |
object, it is nesscary to calculate the trace also. This is the sum of the |
137 |
This requirement makes the wave equation arduous to |
This requirement makes the wave equation arduous to |
138 |
solve numerically due to the large number of time iterations required in each |
solve numerically due to the large number of time iterations required in each |
139 |
solution. Models with very high velocities and frequencies will be the worst |
solution. Models with very high velocities and frequencies will be the worst |
140 |
effected by this problem. |
affected by this problem. |
141 |
|
|
142 |
\section{Displacement Solution} |
\section{Displacement Solution} |
143 |
\sslist{example07a.py} |
\sslist{example07a.py} |
235 |
pl.savefig(os.path.join(savepath,"source_line.png")) |
pl.savefig(os.path.join(savepath,"source_line.png")) |
236 |
\end{python} |
\end{python} |
237 |
\begin{figure}[h] |
\begin{figure}[h] |
238 |
\includegraphics[width=5in]{figures/sourceline.png} |
\centering |
239 |
|
\includegraphics[width=6in]{figures/sourceline.png} |
240 |
\caption{Cross section of the source function.} |
\caption{Cross section of the source function.} |
241 |
\label{fig:cxsource} |
\label{fig:cxsource} |
242 |
\end{figure} |
\end{figure} |
249 |
\begin{python} |
\begin{python} |
250 |
rec=Locator(mydomain,[250.,250.]) |
rec=Locator(mydomain,[250.,250.]) |
251 |
\end{python} |
\end{python} |
252 |
When the solution \verb u is update we can extract the value at that point |
When the solution \verb u is updated we can extract the value at that point |
253 |
via; |
via; |
254 |
\begin{python} |
\begin{python} |
255 |
u_rec=rec.getValue(u) |
u_rec=rec.getValue(u) |
269 |
\sslist{example07b.py} |
\sslist{example07b.py} |
270 |
|
|
271 |
An alternative method is to solve for the acceleration $\frac{\partial ^2 |
An alternative method is to solve for the acceleration $\frac{\partial ^2 |
272 |
p}{\partial t^2}$ directly, and derive the the displacement solution from the |
p}{\partial t^2}$ directly, and derive the displacement solution from the |
273 |
PDE solution. \refEq{eqn:waveu} is thus modified; |
PDE solution. \refEq{eqn:waveu} is thus modified; |
274 |
\begin{equation} |
\begin{equation} |
275 |
\nabla ^2 p - \frac{1}{c^2} a = 0 |
\nabla ^2 p - \frac{1}{c^2} a = 0 |
281 |
p\hackscore{(t+1)}=2p\hackscore{(t)} - p\hackscore{(t-1)} + h^2a |
p\hackscore{(t+1)}=2p\hackscore{(t)} - p\hackscore{(t-1)} + h^2a |
282 |
\end{equation} |
\end{equation} |
283 |
|
|
284 |
|
\subsection{Lumping} |
285 |
For \esc, the acceleration solution is prefered as it allows the use of matrix |
For \esc, the acceleration solution is prefered as it allows the use of matrix |
286 |
lumping. Lumping or mass lumping as it is sometimes known, is the process of |
lumping. Lumping or mass lumping as it is sometimes known, is the process of |
287 |
aggressively approximating the density elements of a mass matrix into the main |
aggressively approximating the density elements of a mass matrix into the main |
288 |
diagonal. The use of Lumping is motivaed by the simplicity of diagonal matrix |
diagonal. The use of Lumping is motivaed by the simplicity of diagonal matrix |
289 |
inversion. As a result, Lumping can significantly reduce the computational |
inversion. As a result, Lumping can significantly reduce the computational |
290 |
requirements of a problem. |
requirements of a problem. Care should be taken however, as this |
291 |
|
function can only be used when the $A$, $B$ and $C$ coefficients of the |
292 |
|
general form are zero. |
293 |
|
|
294 |
To turn lumping on in \esc one can use the command; |
To turn lumping on in \esc one can use the command; |
295 |
\begin{python} |
\begin{python} |