Forward Modelling
In general, the MT analysis combines Maxwell’s equations in the frequency domain to form an equation of only the electric or magnetic field, which is then discretized and solved to obtain the electric or magnetic field.
Some discretization methods exist including the finite difference method (FDM) (e.g., Kelbert et al., 2014; Sasaki, 2004; Siripunvaraporn et al., 2005), FEM (e.g., Mitsuhata & Uchida, 2004; Usui, 2015; Usui et al., 2024; Zhu et al., 2022) and FVM (e.g., Jahandari & Farquharson, 2015).
This program adopts the hexahedral cell-centered finite volume method as the forward modeling. The advantages of this method are
- 1)
the unknowns are placed at the cell center and discretized on the cell surface using a simple method similar to FDM.
- 2)
Unstructured meshes can be applied as FEM, allowing calculations with topography and local subdivision.
In MT forward modeling, the second-order Maxwell’s equations in the form of the electric
or the magnetic
fields are often solved(Siripunvaraporn, Egbert, and Lenbury 2002). The H-forming equation (1) is solved in this program (
Figure 1).
where
ω is the angular frequency,
μ0 is the magnetic permeability of the vacuum, and
ρ is specific resistance. In FVM, (1) is discretized after volume integration of both sides of Eq. (1), and the left-hand side is converted to surface integration by integral formula.
where
n is the normal vector of each cell surface, ∆
S is the Area of each cell surface, ∆and
V is the Cell volume. Note that (2) is valid with arbitrary geometry; therefore, if we can properly approximate ∇ ×
H term on each cell surface, it is possible to use unstructured meshes and local mesh refinement as FEM in Usui et al. (2024). For the air layer, (2) should be modified because of poor convergence. They can be achieved by converting and discretizing (1), assuming
is constant in the air layer, and applying the condition ∇ ∙
H = 0 as follows:
where
(3) is a general Poisson equation, which should contribute to the computational stability in the air layer. This program solves (2) and (3) in the subsurface and the air layers, respectively. In (2),
ρ on the cell surfaces are needed. This program uses the average as Taylor and Weaver (1976) and Mackie and Madden (1993). For computational stability, a transition layer is provided between the air and subsurface. In this layer, the air resistivity is 10
6 Ω ∙
m on the surfaces between the air and subsurface (
Figure 2).
Figure 1.
Schematic cartoon that indicates how to calculate ∂H/∂ei on the surfaces of cells and the locations of electric field. and are parallel to the surface . Note that this calculation can be applied to not only the structured grid but also the unstructured and non-conforming grid.
Figure 1.
Schematic cartoon that indicates how to calculate ∂H/∂ei on the surfaces of cells and the locations of electric field. and are parallel to the surface . Note that this calculation can be applied to not only the structured grid but also the unstructured and non-conforming grid.
Figure 2.
Schematic cartoon of a 2D case that indicates where electromagnetic fields are calculated. H denotes magnetic field.
Figure 2.
Schematic cartoon of a 2D case that indicates where electromagnetic fields are calculated. H denotes magnetic field.
To discretize
in the air layer and ∇ ×
H in the subsurface layer,
∂H⁄
∂xi on the cell surfaces, where
i is 1, 2, or 3 and
xi is a global coordinate system, should be calculated. This can be done by converting the spatial partial differentiation from the local coordinate system (
e1,
e2,
e3) to the global coordinate system, as follows:
(i = 1,2,3) were obtained by interpolation from the surrounding cells.
Boundary conditions on XZ and YZ planes are , where is the normal vector. On XY of the subsurface side, is adopted. On XY of the air layer side, the boundary conditions are source terms of the modeling. The author set = 1 and = 1 in twice forward modeling to obtain response functions, respectively (e.g., Siripunvaraporn et al., 2002).
Through these operations, (2) and (3) are discretized, and the linear equation Ax = b (A: coefficient matrix, x: unknown magnetic field vector, b: source term) can be assembled. We can obtain H by solving this equation.
To solve the linear equation, this program adopts BiCGSafe (Fujiwara, Yoshida, and Fujino 2006) with block incomplete LU decomposition as a preconditioner asToh et al. (2000). We set the convergence condition using the maximum change of the solution from the previous iteration ∆
, where
i is iteration number and the residual
.
where is tolerance.
The divergence correction for subsurface layers is applied as Dong and Egbert (2019), adding a term λ∇(∇ ∙ H), where λ is the scaling factor, to equation (1). In this program, λ is set to ρ × min(1, kω), where k is the safety factor equal to 0.1 because the large value of λ resulted in poor accuracy solutions, especially in long periods.
Once magnetic field
H is obtained, the electric field
E is necessary at the cell center to calculate the impedance tensor. The following equation is used for this calculation.
Based on equation (6), the electric fields of two directions parallel to cell surfaces are calculated on each cell surface (
Figure 1).
where
is the required electric field at the cell center,
is the electric field on the cell surface calculated from equation (6),
is the unit vector parallel to the cell surface,
is unit vector directions (1 or 2), and
is cell surfaces number (from 1 to 4). The component of the electric field orthogonal to cell surfaces is excluded because it is not continuous on cell surfaces. From equation (7), eight equations associated with
in each cell can be obtained. Therefore,
can be calculated using the least squares method Because
has three components. Using
H and
The impedance tensor and magnetic transfer function can be obtained in the same way as in Usui (2015).
Since this program uses the cell-centered FVM, it is necessary to use the surrounding cell-centered magnetic field to obtain the electric field at the cell surface. This program calculates the impedance tensor and magnetic transfer function on the earth’s surface using the electromagnetic fields in the transition zone and near-surface cells, as shown in
Figure 2, which is a 2D case.
For the calculation of an impedance tensor with distortion, the method adopted by Ogawa (2002) is used.
where is the calculated impedance tensor affected distortion, D is the distortion tensor, and Z is the originally calculated impedance tensor.
Note that C++ language is used to implement this program, and the library Eigen (Jacobi, Guennebaud, and other contributor 2024) is used for the internal matrix operations. Parallelization is implemented by OpenMP. The linear equations Ax = b at each frequency are solved on each thread.
Inversion
In this program, ASM is implemented for MT inversion. The details are described in Plessix (2006).
In MT inversion, an objective function
, where
is the vector of model parameter, and
is the number of model parameters, should be minimized. In ASM, the objective function
is considered as whose independent variables are
m and
x ∈ ℂ
3Ncell, where
x is the solution of linear equation
Ax =
b in forward modeling and
Ncell is the total number of computation cells, that is,
Next, the adjoint equation is solved about
.
Note that (10) is the same scale equation as
Ax =
b. Hence, the computational cost is roughly the same as solving
Ax =
b. The gradient vector of the objective function can be obtained using
as follows:
where is from to . Note that , and are calculated by automatic differentiation using library kv (Kashiwagi 2024).
The objective function
is set as below in this program.
where is the observed data vector, is calculated data vector, W is weight matrix, is smoothness matrix for constraint term, which is necessary in ill-posed MT inversion, is the total number of observation sites where impedance tensor is obtained, is distortion tensor in each observation site as described in Ogawa (2002), is identity matrix, and are trade-off parameters.
To minimize the objective function with the gradient vector, Adam (Kingma and Ba, 2014) is implemented, which can be switched easily because the library OptimLib (O’Hara 2024) is used internally.