1 
%!TEX root = inversion.tex 
2 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
3 
% Copyright (c) 20032014 by University of Queensland 
4 
% http://www.uq.edu.au 
5 
% 
6 
% Primary Business: Queensland, Australia 
7 
% Licensed under the Open Software License version 3.0 
8 
% http://www.opensource.org/licenses/osl3.0.php 
9 
% 
10 
% Development until 2012 by Earth Systems Science Computational Center (ESSCC) 
11 
% Development 20122013 by School of Earth Sciences 
12 
% Development from 2014 by Centre for Geoscience Computing (GeoComp) 
13 
% 
14 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
15 

16 
\section{DC resistivity inversion: 3D}\label{sec:forward DCRES} 
17 
This section will discuss DC resistivity\index{DC forward} forward modelling, as well as an \escript 
18 
class which allows for solutions of these forward problems. The DC resistivity 
19 
forward problem is modelled via the application of Ohm's Law to the flow of current 
20 
through the ground. When sources are treated as a point sources and Ohm's Law 
21 
is written in terms of the potential field, the equation becomes: 
22 
\begin{equation} \label{ref:dcres:eq1} 
23 
\nabla \cdot (\sigma \nabla \phi) = I \delta(xx_s) \delta(yy_s) \delta(zz_s) 
24 
\end{equation} 
25 
Where $(x,y,z)$ and $(x_s, y_s, z_s)$ are the coordinates of the observation and source 
26 
points respectively. The total potential, $\phi$, is split into primary and secondary 
27 
potentials $\phi = \phi_p + \phi_s$, where the primary potential is analytically calculated 
28 
as a flat halfspace background model with conductivity of $\sigma_p$. 
29 
The secondary potential is due to conductivity deviations 
30 
from the background model and has its conductivity denoted as $\sigma_s$. 
31 
This approach effectively removes the singularities of the Dirac delta 
32 
source and provides more accurate results \cite{rucker2006three}. 
33 
An analytical solution is available for the primary potential of a uniform halfspace due to a single pole source and is given by: 
34 
\begin{equation} \label{ref:dcres:eq2} 
35 
\phi_p = \frac{I}{2 \pi \sigma_1 R} 
36 
\end{equation} 
37 
Where $I$ is the current and $R$ is the distance from the observation points to the source. 
38 
In \escript the observation points are the nodes of the domain and $R$ is given by 
39 
\begin{equation} \label{ref:dcres:eq3} 
40 
R = \sqrt{(xx_s)^2+(yy_s)^2 + z^2} 
41 
\end{equation} 
42 
The secondary potential, $\phi_s$, is given by 
43 
\begin{equation}\label{ref:dcres:eq4} 
44 
\mathbf{\nabla}\cdot\left(\sigma\,\nabla \phi_s \right) = 
45 
\mathbf{\nabla}\cdot\left( \left(\sigma_p\sigma\right)\,\nabla \phi_p \right) 
46 
\end{equation} 
47 
where $\sigma_p$ is the conductivity of the background halfspace. 
48 
The weak form of above PDE is given by multiplication of a suitable test function, $w$, and integrating over the domain $\Omega$: 
49 
\begin{multline}\label{ref:dcres:eq5} 
50 
\int_{\partial\Omega} \sigma\,\nabla \phi_s \cdot \hat{n} w\,ds + 
51 
\int_{\Omega} \sigma\,\nabla \phi_s \cdot \nabla w\,d\Omega =\\ 
52 
\int_{\partial\Omega} \left(\sigma_p\sigma\right)\,\nabla \phi_p 
53 
\cdot \hat{n} w\,ds + \int_{\Omega} \left(\sigma_p\sigma\right)\,\nabla \phi_p \cdot \nabla w\,d\Omega 
54 
\end{multline} 
55 
The integrals over the domain boundary provide the boundary conditions which are 
56 
implemented as Dirichlet conditions (i.e. zero potential) at all interfaces except the 
57 
top, where Neumann conditions apply (i.e. no current flux through the airearth interface). 
58 
From the integrals over the domain, the \escript coefficients can be deduced: the 
59 
lefthandside conforms to \escript coefficient $A$, whereas the righthandside agrees 
60 
with the coefficient $X$ (see User Guide). 
61 

62 
A number a of different configurations for electrode setup are available \cite[pg 5]{LOKE2014}. 
63 
An \escript class is provided for each of the following survey types: 
64 
\begin{itemize} 
65 
\item Wenner alpha 
66 
\item PolePole 
67 
\item DipoleDipole 
68 
\item PoleDipole 
69 
\item Schlumberger 
70 
\end{itemize} 
71 

72 
These configurations are comprised of at least one pair of current and potential 
73 
electrodes separated by a distance $a$. In those configurations which use $n$, 
74 
electrodes in the currently active set may be separated by $na$. In the classes 
75 
that follow, the specified value of $n$ is an upper limit. That is $n$ will 
76 
start at 1 and iterate up to the value specified. 
77 

78 
\subsection{Usage} 
79 
The DC resistivity forward modelling classes are specified as follows: 
80 

81 
\begin{classdesc}{WennerSurvey}{self, domain, primaryConductivity, secondaryConductivity, 
82 
current, a, midPoint, directionVector, numElectrodes} 
83 
\end{classdesc} 
84 

85 
\begin{classdesc}{polepoleSurvey}{domain, primaryConductivity, secondaryConductivity, 
86 
current, a, midPoint, directionVector, numElectrodes} 
87 
\end{classdesc} 
88 

89 
\begin{classdesc}{DipoleDipoleSurvey}{self, domain, primaryConductivity, secondaryConductivity, 
90 
current, a, n, midPoint, directionVector, numElectrodes} 
91 
\end{classdesc} 
92 

93 
\begin{classdesc}{PoleDipoleSurvey}{self, domain, primaryConductivity, secondaryConductivity, 
94 
current, a, n, midPoint, directionVector, numElectrodes} 
95 
\end{classdesc} 
96 

97 
\begin{classdesc}{SchlumbergerSurvey}{self, domain, primaryConductivity, secondaryConductivity, 
98 
current, a, n, midPoint, directionVector, numElectrodes} 
99 
\end{classdesc} 
100 

101 
\noindent Where: 
102 
\begin{itemize} 
103 
\item \texttt{domain} is the domain which represent the halfspace of interest. 
104 
it is important that a node exists at the points where the electrodes will be placed. 
105 
\item \texttt{primaryConductivity} is a data object which defines the primary conductivity 
106 
it should be defined on the ContinuousFunction function space. 
107 
\item \texttt{secondaryConductivity} is a data object which defines the secondary conductivity 
108 
it should be defined on the ContinuousFunction function space. 
109 
\item \texttt{current} is the value of the injection current to be used in amps this is a currently a 
110 
constant. 
111 
\item \texttt{a} is the electrode separation distance. 
112 
\item \texttt{n} is the electrode separation distance multiplier. 
113 
\item \texttt{midpoint} is the centre of the survey. Electrodes will spread from this point 
114 
in the direction defined by the direction vector and in the opposite direction, placing 
115 
half of the electrodes on either side. 
116 
\item \texttt{directionVector} defines as the direction in which electrodes are spread. 
117 
\item \texttt{numElectrodes} is the number of electrodes to be used in the survey. 
118 
\end{itemize} 
119 

120 
When calculating the potentials the survey is moved along the set of electrodes. 
121 
The process of moving the electrodes along is repeated for each consecutive value of $n$. 
122 
As $n$ increases less potentials are calculated, this is because a greater spacing is 
123 
required and hence some electrodes are skipped. The process of building up these 
124 
pseudosections is covered in greater depth by Loke (2014)\cite[pg 19]{LOKE2014}. 
125 
These classes all share common member functions described below. For the surveys 
126 
where $n$ is not specified only one list will be returned. 
127 

128 
\begin{methoddesc}[]{getPotential}{} 
129 
Returns 3 lists, each made up of a number of lists containing primary, secondary and total 
130 
potential differences. Each of the lists contains $n$ sublists. 
131 
\end{methoddesc} 
132 

133 
\begin{methoddesc}[]{getElectrodes}{} 
134 
Returns a list containing the positions of the electrodes 
135 
\end{methoddesc} 
136 

137 
\begin{methoddesc}[]{getApparentResistivityPrimary}{} 
138 
Returns a series of lists containing primary apparent resistivities one for each 
139 
value of $n$. 
140 
\end{methoddesc} 
141 

142 
\begin{methoddesc}[]{getApparentResistivitySecondary}{} 
143 
Returns a series of lists containing secondary apparent resistivities one for each 
144 
value of $n$. 
145 
\end{methoddesc} 
146 

147 
\begin{methoddesc}[]{getApparentResistivityTotal}{} 
148 
Returns a series of lists containing total apparent resistivities, one for each 
149 
value of $n$. This is generally the result of interest. 
150 
\end{methoddesc} 
151 

152 
The apparent resistivities are calculated by applying a geometric factor to the 
153 
measured potentials. 
154 
