0 valutazioniIl 0% ha trovato utile questo documento (0 voti)

8 visualizzazioni11 paginehm

Mar 18, 2019

© © All Rights Reserved

0 valutazioniIl 0% ha trovato utile questo documento (0 voti)

8 visualizzazioni11 pagineSei sulla pagina 1di 11

journal homepage: www.elsevier.com/locate/cageo

Case study

⁎

Arun Singh , Rahul Dehiya, Pravin K. Gupta, M. Israil

Department of Earth Sciences, Indian Institute of Technology Roorkee, Roorkee 247667, India

A R T I C L E I N F O A BS T RAC T

Keywords: The development of a MATLAB based computer code, AP3DMT, for modeling and inversion of 3D

Magnetotelluric Magnetotelluric (MT) data is presented. The code comprises two independent components: grid generator

MATLAB code and modeling/inversion code. The grid generator code performs model discretization and acts as an

Numerical modeling interface by generating various I/O ﬁles. The inversion code performs core computations in modular form –

Inversion

forward modeling, data functionals, sensitivity computations and regularization. These modules can be readily

Parallelization

extended to other similar inverse problems like Controlled-Source EM (CSEM). The modular structure of the

code provides a framework useful for implementation of new applications and inversion algorithms. The use of

MATLAB and its libraries makes it more compact and user friendly. The code has been validated on several

published models. To demonstrate its versatility and capabilities the results of inversion for two complex models

are presented.

provides the basic theory for forward modeling and inversion along

Several 3D electromagnetic data inversion approaches and parallel with main components for sensitivity computations. For detailed

computer codes were developed during the ﬁrst decade (notably, discussion one can refer (Egbert and Kelbert, 2012). The program is

Newman and Alumbaugh (2000), Zhdanov and Hursan (2000), divided into two parts. The ﬁrst part includes grid generator and I/O

Haber et al. (2004), Newman and Boggs (2004), Siripunvaraporn and subprograms (functions in MATLAB) while the second part includes

Egbert (2009), Avdeev and Avdeeva (2009), etc.). Most of these codes modeling/inversion. Section 3 describes the overview of the program

were focused on inversion with a particular computational approach. including grid generator for common models with cuboids and/or

Recently, Egbert and Kelbert (2012) and Kelbert et al. (2014) polyhedron shaped target bodies and forward/inverse modeling. The

presented a Fortran code, ModEM, with its emphasis on modular main feature of grid generator is its robustness in handling complex

implementation of the basic components of inversion - forward geological features needed to simulate responses for complex 3D

modeling, model parametrization and regularization, data functionals, structures. Such an eﬃcient grid generator is useful when performing

sensitivity computation and inversion algorithms which are reusable block inversion (Singh et al., 2014). A detailed description and

and readily extensible. This and most of the previous codes are written implementation of inversion and sensitivity computations is also

in Fortran programming language. Many of these algorithms permit provided in this section. These subprograms, along with a coarse

interchangeability and re-usability of various subprograms thereby grained parallelization (Section 4), can be directly used for a wide range

providing a code base for development of new inversion algorithms. of problems. The key feature of AP3DMT is its capability to accom-

However, it is diﬃcult for a new researcher to make desired changes for modate modiﬁcations in the forward problem (e.g., diﬀerent forward

experimentation. MATLAB provides a solution to this problem and we solver, diﬀerent types of responses, model parameters, etc.) and their

have developed the present code, AP3DMT, on MATLAB platform. easy implementation without any modiﬁcations in other subprograms

AP3DMT provides a basic framework for 3D modeling and inversion like, inversion subprogram. In Section 5, we provide details about the

which is ﬂexible for rapid development and experimentation with actual computations for both forward problem (i.e. forward solutions,

diﬀerent schemes of inversion, parametrization and regularization. evaluation of EM ﬁeld components, etc.) and sensitivity computations.

This code will provide a basic framework to researchers who are In Section 6, we demonstrate the code versatility for grid generation

conversant with MATLAB and willing to use or develop its capabilities and inversion with the help of two synthetic examples.

for future applications.

In the present paper, main focus is on program structure with some

⁎

Corresponding author.

E-mail address: arunsingh2626@gmail.com (A. Singh).

http://dx.doi.org/10.1016/j.cageo.2017.03.019

Received 19 February 2016; Received in revised form 22 March 2017; Accepted 24 March 2017

Available online 27 March 2017

0098-3004/ © 2017 Elsevier Ltd. All rights reserved.

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

ϕ (m , dobs) = (dobs − F (m))T (dobs − F (m)) + λ mT m , (4)

∼ 1/2

where, F (m) = F (C m m + m 0). After minimizing (4) in transform

domain the model parameters are transformed back into the space of

the original model parameter m͠ = C1/2 m m + m 0 . For details one can

refer to Kelbert et al. (2008). We have implemented both quasi-linear

inversion and non-linear inversion using conjugate gradient for the

minimization of (4).

In this approach, the objective functional is ﬁrst approximated by a

Taylor series expansion. The quadratic approximation of the objective

functional is then minimized to produce a series of the updated models.

In the Gauss Newton (GN) method only the ﬁrst derivative in the

Fig. 1. Staggered ﬁnite diﬀerence grid for the 3D MT forward problem. Since the PDE is

Hessian matrix of Newton's method is retained but the second-order

formulated in terms of electric ﬁeld components, these are deﬁned on cell edges and the

magnetic ﬁeld components are deﬁned on center of the cell faces.

derivative is discarded. This leads to an iterative sequence of approx-

imate solutions as,

2. Theory (JT J + λ I) δ mn = JT r − λ mn , (5)

where mn are the model parameters at the nth

iteration, J is Jacobian

2.1. Forward modeling

and r = dobs − F (mn) is the residual. (5) is solved for δmn and the new

updated model parameter vector is obtained as mn +1 = mn + δ mn . For

The electric ﬁeld E are simulated by solving the vector Helmholtz

stability this linearized scheme generally requires some form of step

equation, given below, in frequency domain (assuming eiωt time

length damping (Marquardt, 1963; Rodi and Mackie, 2001).

dependence),

Alternatively, instead of solving for δm one can solve for mn+1 using

∇ × ∇ × E + iωμσ E = 0, (1) Occam approach (Constable et al., 1987; Parker, 1994). In Occam's

where ω is the angular frequency, μ is the magnetic permeability and σ algorithm (5) is written as

is the conductivity. Magnetic ﬁelds corresponding to an electric ﬁeld l,

(JT J + λ I) mn +1 = JT d (6)

solution E can be expressed as H = (−iωμ)−1∇ × E .

where dl= dobs

− F (m) + Jmn . In data space, (Siripunvaraporn and

(1) is approximated on a staggered-grid (Yee, 1966), as shown in

Fig. 1, using ﬁnite diﬀerence (FD) formulation. The linear system, for Egbert, 2000; Siripunvaraporn et al., 2005) the solution of (6) is

frequency f, resulting after symmetric scaling can be expressed as written as

Am e = s, (2) mn +1 = JT bn ; l.

(JJT + λ I) bn = d (7)

where Am is a frequency dependent Ne × Ne sparse symmetric To avoid explicit computation and storage of J, (6) and (7) are solved

complex matrix with 13 non-zero elements per row; s is the Ne with a memory eﬃcient Krylov subspace iterative solver such as

dimensional source vector and e is the Ne dimensional vector repre- conjugate gradients (CG). In this approach, the product of matrix

senting electric ﬁelds at the Ne internal nodes. This sparse linear system and an arbitrary vector such as (JT J + λ I) m is computed and this can

is solved iteratively using bi-conjugate gradient stabilized (BiCGSTAB) be performed at the cost of just two forward problems. Following

scheme which belongs to a class of Krylov subspace techniques. The Newman and Alumbaugh (1997), at the nth inversion iteration, the

incomplete LU decomposition of the diagonal sub-block matrix regularization parameter λ for GN is determined as λ = rsum /2n−1 where,

(Mackie et al., 1994) is used for pre-conditioning. rsum is the largest row sum of real (JT J).

For stable and accurate solutions of (2) at low frequencies, a

divergence correction is periodically applied (Smith, 1996) by solving 2.2.2. Non-linear inversion using conjugate gradient

a Poisson-like equation with pre-conditioned conjugate gradients (CG). In this approach, (4) is directly minimized using a gradient based

Smith (1996) has shown that the convergence is improved by applying optimization technique like non-linear conjugate gradient (NLCG)

divergence correction and it thereby signiﬁcantly reduces the computa- (Rodi and Mackie, 2001; Newman and Boggs, 2004; Kelbert et al.,

tional time needed for solution of (2). 2014). Here, the gradient of (4) with respect to the variation in model

parameter m is computed as,

2.2. Inversion

∂ϕ

= −2JT r + 2λ mn ,

All the inversion algorithms aim at ﬁnding a meaningful model m͠ , a ∂m mn (8)

M - dimensional model parameter vector, while ﬁtting the data dobs of

and it is used to a compute new ‘conjugate’ search direction. The ‘line

dimension Nd to an acceptable level in a stable manner. We consider

search’ is used to minimize the penalty functional along this direction

minimization of the penalty functional deﬁned as

and it requires solving forward problem few times and the gradient is

∼ ∼ recomputed. Basic computational steps for NLCG include solving

ϕ (m͠ , dobs) = (dobs − F (m͠ ))T C−1

d (d

obs − F (m͠ )) + λ (m͠ − m 0)T C−1

m (m͠

forward problem for model parameter mn and multiplication of JT by

− m 0), (3)

the residual r. However, for the regularization parameter approach

∼

where F (m͠ ) is the forward mapping, Cd is the data covariance matrix, described above, this scheme does not work because varying the

m 0 is the apriori model, Cm is the model covariance matrix or regularization parameter would compromise the orthogonality of

regularization term and λ is the trade-oﬀ parameter. Cd is generally search directions (Egbert, 2012). Following Kelbert et al. (2008),

diagonal hence, it can be eliminated from deﬁnition of penalty NLCG iterations are performed for ﬁxed value of λ and when misﬁt

functional by simply rescaling of data and forward mapping. Both m 0 stalls i.e. diﬀerence between misﬁts of two previous iterations is less

and Cm can also be eliminated from (3) by setting m = C−1/2

m (m ͠ − m 0) . than a predeﬁned threshold, λ is reduced by a predetermined factor (10

2

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

in present study). for the ﬁrst polarization. Performing such operation for all the model

The schemes for minimizing (4), as discussed above, are expressed parameters results in a Ne × M matrix. However, columns of P af can

in terms of data and model parameter vectors dobs and m, forward also be written as αEA′mi, f where, E is the Ne × Ne diagonal matrix and

mapping F (m), Jacobian J (or JT ), data and model covariance matrices A′mi, f is now a column vector of length Ne. Hence, P af can be written as

Cd and Cm . The modular implementation of any inversion algorithm αEA′m, f with A′m, f being a Ne × M matrix. Thus Pf can be written for

can be readily carried out using these components. In the next section both the polarizations as

we brieﬂy discuss and provide formulation of Jacobian J in terms of the

⎡ E a 0 ⎤ ⎡ P ⎤ ⎡ P af ⎤

forward solver, model parameterization and the numerical simulation Pf = α ⎢ ⎥ ⎢ ⎥ = ⎢ ⎥.

of the necessary observation operator as implemented in AP3DMT ⎣ 0 E b ⎦ ⎣ P ⎦ ⎢⎣ P bf ⎥⎦ (16)

code.

The components E and E are diagonal matrices with electric ﬁelds

a b

2.3. Data sensitivities

elements and P represents A′m, f . The elements of real and frequency

independent operator P depend on the numerical grid and model

The computation of predicted data d f (forward mapping Ff (m)), for

parameter and these are inexpensive to compute.

a single frequency f, involves two steps; (i) solving the vector Helmholtz

The matrix Lf is deﬁned as

Eq. (1) for electric ﬁeld e and, (ii) computing the predicted data like

impedance at observation sites using these ﬁelds. After using FD Lf = [Laf Lbf ]. (17)

approximation, the PDE is transformed into the matrix Eq. (2). The

predicted data set is obtained at the observation points via A row of matrix Lf has two blocks, each of length Ne, which multiply to

the perturbations in electric ﬁeld for the two polarizations and sums

d jf = Ffj (m) = ψj (e (m), m) j = 1, …, nobs. (9) together to yield the total perturbation in the data. For detailed

expression of Lf for impedance and vertical magnetic ﬁeld TFs see

where, ψj is generally a non-linear function of e (and possibly m ).

Appendix A. The relevant formula for apparent resistivity and phase

Using chain rule, the expression for the Jacobian matrix of the forward

are given by Egbert and Kelbert (2012) and for phase tensor by Patro

mapping Ff (m), is given as

et al. (2013) and Kristina et al. (2015). Thus, Jf can be expressed in the

Jikf = ∂k F fi (m) = ∑ ∂j ψ i (e)∂k e j (m) + ∂k ψ i (m), matrix form as

(10) ⎡ A−1 0 ⎤ ⎡ P af ⎤

j

m, f

where, ∂k signiﬁes partial diﬀerentiation with respect to the kth ⎢⎣ 0 A−1 ⎥⎢Pa ⎥ f m, f f f m, f f

m, f ⎦ ⎣ f ⎦ (18)

argument of a function [reading ψ (m) as ψ (m1, m2, …, m M )]. Let Gf , Lf

and Qf , the partial derivative matrices, for the frequency f, be deﬁned Generally, the data set is obtained for a range of frequencies. Thus,

as both the vectors, observed and predicted, can be decomposed into

Lijf = ∂j ψ i (e) en, mn G jkf = ∂k e j (m) mn , Qikf = ∂k ψ i (m) en, mn , ( f = 1, …, Nf ) independent blocks, corresponding to each frequency.

(11)

⎡ d1 ⎤ ⎡ F1 (m) ⎤ ⎡ dobs ⎤

where e n is the solution of (2) for model parameter mn . Hence, the ⎢ ⎥ ⎢ ⎥ ⎢ 1 ⎥

Jacobian at mn can be written in matrix notation as d = ⎢ ⋮ ⎥ = ⎢ ⋮ ⎥; dobs = ⎢ ⋮ ⎥ .

⎢⎣ d Nf ⎥⎦ ⎢⎣ FNf (m)⎥⎦ ⎢ d obs ⎥

⎣ Nf ⎦ (19)

Jf = Lf Gf + Qf . (12)

Similarly, the full Jacobain J can be decomposed using its components

Now, diﬀerentiating (2) with respect to model parameter we obtain,

as,

⎡ ⎤

⎡ L1 0 0 ⎤ ⎡ A−1 0 ⎤ ⎡ P1 ⎤ ⎡ L1A−1 ⎤

∂e ⎥ = − ∂ (Am, f e n)

Am, f ⎢ , m,1 0 ⎥⎢ ⎥ ⎢ m,1P1 ⎥

⎢⎣ ∂m m = mn ⎥

⎦ ∂m (13) ⎢ ⎥⎢

mn J = ⎢ 0 ⋱ 0 ⎥⎢ 0 ⋱ 0 ⎥⎢ ⋮ ⎥ = ⎢ ⋮ ⎥

⎢⎣ 0 0 L Nf ⎥⎦ ⎢ 0 0 A−1 ⎥ ⎢ P ⎥ ⎢ L A−1 P ⎥

or, ⎣ m, Nf ⎦ ⎣ Nf ⎦ ⎣ Nf m, Nf Nf ⎦ (20)

Am, f Gf = Pf . (14) and its transpose as

here e n is considered independent from the parameter vector m. JT = [P1T A−1 T T −1 T

m,1L1 ⋯ P Nf Am, Nf L Nf ] (21)

Combining (12) and (14) and noting the fact that for 3D MT data

Qf = 0 , we get Jacobian in a matrix form as here, ATm, f

= Am, f (symmetric matrix).

Further, the model parameter m is real but all the computations are

Jf = Lf A−1

m, f Pf , (15) eﬃciently performed using complex arithmetic. Data may be real (e.g.,

phase) or complex (e.g., impedance, vertical magnetic ﬁeld TFs). For

where, (i) the operator Pf , deﬁnes the product of sensitivity of the

the penalty functional (4), we have assumed that the data set is real,

coeﬃcient matrix (with respect to the model parameter) and electric

∂e that is, both real and imaginary parts of a complex observation are

ﬁeld; (ii) the forward solver, A−1

m, f (maps Pf to ∂m ); (iii) sensitivity

treated as independent elements of the data set d, and the operator J

functional, Lf (maps perturbation in the EM solution to perturbation in

has been recast as real mapping from model parameter to data vector.

∂e ∂d pred

f

the predicted data i.e. ∂m to ∂m ).

To evaluate the impedance tensor and the vertical magnetic ﬁeld 3. Overview of the AP3DMT program

transfer functions (TFs), the EM ﬁeld solutions for two modes of

polarizations, corresponding to E-W and N-S polarized (say a and b) The AP3DMT program is divided into two independent parts. The

uniform source, are required (e = (e a, e b)). Thus, the rows of Jacobian ﬁrst part, using a graphic user interface (GUI), deals with the grid

are formed from the components of these two source polarizations. generator and the I/O functions while the second part performs the

The columns of operator P af , for single frequency index, f, and for modeling/inversion computations. The organization of AP3DMT is

the ﬁrst polarization, a, are deﬁned as αA′mi, f e a for (i=1,…, M). Here, shown in Fig. 3. Figs. 6 and 7 show the block diagrams of modeling and

A′mi, f is the Ne × Ne diagonal matrix obtained after the diﬀerentiation of inversion codes. Table 1 lists the major functions used in the program.

the coeﬃcient matrix with respect to model parameter mi with each Details of ﬁle preparation and of modeling/inversion are given in the

element scaled by (iωμ)−1, α being the scalar iωμ , e a is the electric ﬁeld following subsections.

3

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Table 1 provide an input model ﬁle (.xls ﬁle) which contains stations, manual

Main functions used for grid generation and sensitivity computations (* D′Errico, 2006). grids (if any) and model description (synthetic and/or initial guess) on

diﬀerent sheets. In this ﬁle, the model is described in terms of layers,

Functions Purpose Description

target bodies and modeling domain. The cuboid shaped target bodies

gridfit* Grid Generation Models a surface on a 2D grid from are deﬁned using seven parameters (six for location and one for

scattered or semi-scattered z(x,y) resistivity) whereas, the polyhedron shaped bodies are deﬁned using

inhull* Grid Generation Tests if a set of points are inside a

three times the total number of vertices for location description and

convex hull

grid3D Grid Generation Grid generation and resistivity matrix one parameter for resistivity. The program uses information from GUI

construction and the.xls ﬁle and generates four ﬁles to be subsequently used in

intercoeﬀ Forward Solution Compute interpolation coefficients inversion code (see Fig. 3). These ﬁles include parameter ﬁle, data ﬁle

ForwardResp Forward Solution Compute Predicted Data and Field (data corresponding to all data types and for all stations and frequen-

Solutions (optional)

cies) and model ﬁle (synthetic and/or apriori model).

BoundCond Forward Solution Set Source and Boundary Conditions

DiscreteSolver Forward Solution Forward Solver A−1

In this code, the main component is a grid generation program

OutInterp Forward Solution Data Functional which eﬃciently handles arbitrarily shaped target bodies along with

JacobJob Jacobian Multiply Jacobian or its transpose by topography (or bathymetry). Some examples are given here under.

computations vector

LpJob Jacobian Multiply Data Sensitivity, L by vector

3.1.1. Cuboid bodies

computations

LTpJob Jacobian Multiply L transpose by vector For cuboid shaped target bodies, the grids are generated on the

computations basis of skin depths across an interface. First, the domain of modeling

PpJob Jacobian Multiply Solver Sensitivity P, by vector is divided into regions on the basis of target bodies and a resistivity

computations

matrix is constructed. For example, let us consider two blocks of

PTpJob Jacobian Multiply P transpose by vector

computations resistivities ρa and ρb (1 and 100 Ω-m respectively with each of

dimensions 40 × 20 × 10 km) placed adjacent to each other and in a

half space of resistivity ρh (10 Ω-m) (see Fig. 4a). At an interface (say

3.1. Preparation of ﬁles vertical interface number ‘2′‘, Fig. 4b), the minimum skin depth, δ ,

among the two diﬀerent regions, is computed (columns between

When the main function ProgramRun is called, a GUI pops up interface 1–2 and interface 2–3) and then two grid lines are generated

allowing the user to ﬁll the necessary details like, dimension, type of on either side of the interface with spacing equal to δ/4 and then δ/3

grid (manual or automatic), impedance units, ﬁeld variation, frequen- and so on. This approach ensures ﬁne grids near the conductivity

cies, solver details and inversion parameters (see Fig. 2). The user must contrast to obtain accurate results in these areas. The coarseness of the

grid, increases as one moves away from the interface (see Fig. 5a). The

Fig. 2. Figure showing Graphic User Interface (GUI) for providing user input.

4

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Fig. 3. Schematic representation of AP3DMT showing grid generation, ﬁle making and inversion part.

coarseness of the grid can be easily increased by preserving the overall assigned of the target body resistivity else that of the background. For

pattern but changing period used for skin depth computation. Once the the construction of resistivity matrix for some complex model like, a

grids are generated, ﬁnal resistivity matrix is created where each helical conductor in half space see the Supplementary material.

element represents a discretized cell of constant resistivity.

Alternatively, manual grids can also be provided in the input ﬁle but

3.1.3. Topography

one must ensure that a grid line passes through each interface. This

To incorporate topography (and/or bathymetry), we ﬁrst model, in

feature makes the code more user friendly as the user can assign

the form of z(x,y), a surface from the scattered or semi-scattered data

desired grids as per the requirement.

using the MATLAB function gridﬁt. Although gridﬁt is not an inter-

polant, it builds a surface over a complete lattice (models grids in xy

plane), extrapolating smoothly into the corners. Once the surface has

3.1.2. Polyhedron bodies

been modeled, a uniform grid in the vertical direction is generated till

To represent the complex geological features and structures,

the maximum elevation (depression) is reached. Later, based on these

polyhedrons are best suited. For example, consider a body of resistivity

surface values the resistivity matrix is modiﬁed.

ρa (5 Ω-m with dimensions 80 × 28 × 16 km with top at 4 km depth),

with its major axis making an angle of 45° with respect to y-axis,

embedded in half space a of resistivity ρh (100 Ω-m) (see Fig. 4c). This 3.2. Modeling/Inversion

polyhedron body (oblique block) is initially approximated by a cuboid

abcd (length and breadth along cartesian coordinate system) which In any inversion scheme, the basic working vectors are: data dobs ,

encapsulates the whole target body (Fig. 4c) and a resistivity matrix is model parameter vector m , EM ﬁeld solution e and source ﬁeld s .

created. Uniform grids of speciﬁed size (2 km) are generated for this For an MT problem, the complete data set (dobs ) is multi-frequency,

region as a stair case model which is better suited for such bodies. In multi-receiver and multi-component. For example, there are set of

other regions of the model, the grids are generated on the basis of skin frequencies, each requiring separate solutions for the two independent

depth criteria, as discussed above (see Fig. 5b). After grids generation, source polarizations. For each frequency, there will be number of sites

construction of the resistivity matrix begins. All the cell centers of the and for each site there will be multi-component data, e.g., there are

cuboid (encapsulating all the polyhedron bodies) are checked using the four complex components in impedance tensor and two in vertical

MATLAB function inhull which tests whether a point is inside a convex magnetic ﬁeld TFs.

hull or not. If the cell center lies inside a convex hull then the cell is The data set is organized according to three attributes which are

Fig. 4. (a) Top view of a model with 2 blocks of resistivity ρa and ρb Ω-m placed adjacent to each other and embedded in ρh Ω-m half space. (b) Model is discretized into regions on the

basis of target bodies. (c) Top view of a model with ρa Ω-m body, major axis rotated by 45°, embedded in ρh Ω-m half space.

5

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Fig. 5. Schematic diagram showing top view of the (a) 3D model with conductive (1 Ω-m) and resistive (100 Ω-m) prisms buried in a layered Earth (Mackie et al., 1993) with grids at

z=0 km. Period of 1 s was used for computing the skin depth. (b) 5 Ω-m body, major axis rotated anticlockwise by 45° with respect to y-axis, embedded in 100 Ω-m half space with grids

at z=4.37 km.

referred to as transmitter, data type and receiver (observation sites). up computations, parallelization over frequency is implemented.

These three attributes are read from one data ﬁle and are stored as In summary, the interaction among various components of

ﬁelds of a structured array deﬁned as CData in the code. This structure Jacobian (sensitivity functional L; solver A−1

m ; operator P) is eﬃciently

array also stores other parameters like solver information (from and smoothly managed in sensitivity function JacobJob. As we discuss

parameter ﬁle), etc. The attribute transmitter consists of a list of in the next section, a coarse grain parallelization, over frequency,

frequencies to setup and solve the forward problem. Fields in attribute similar to that of Siripunvaraporn and Egbert (2009), is also imple-

data type deﬁne the data functionals such as impedance, vertical mented.

magnetic ﬁeld TFs, phase tensor, etc. and are accessed by name. The

attribute receiver provides information about all the unique observa-

tion sites (Cartesian coordinate system). Thus, the full data vector (dobs ) 4. Parallelization

is an array corresponding to diﬀerent frequencies. Each, in turn, stores

all the components corresponding to all the data types for all the active AP3DMT implements a coarse grained parallelization over forward

receivers. A binary array is used to keep track of certain missing problem. Implementation of parallelization over number of frequencies

components, if any, in the data set. is quite simple. Fig. 8 explains the basic scheme of implementation.

The data vector structure allows for mixing of diﬀerent data types MATLAB's inbuilt function parfor is used which executes loop itera-

and simpliﬁes addition of new data types by adding new ﬁelds tions in parallel. The command matlabpool (parpool in 2015a version)

corresponding to the new data type. Addition of new data type starts a pool, with the pool size speciﬁed by parallel preferences and the

simultaneously allows computing predicted data and/or sensitivity default proﬁle or one can manually start a pool with desired number of

calculations for all the active receivers by solving the forward problem workers. After initialization, one processor acts as the master, and the

only once. others act as workers. The master performs the main job of the code

The main feature of AP3DMT is its easy implementation of until a step requiring parallel computations (like forward problem or

linearized inversion scheme that can be expressed in terms of (dobs ), multiplication of Jacobian with a vector) is reached i.e. parfor loop

m, e, s, forward mapping F (m), Jacobian J and the model and data over number of frequencies. At this point the master sends a message

covariance matrices Cm and Cd respectively. During the inversion, indicating nature of the task and the necessary input data to all the

various operations are performed like, multiplication of data by C−1/2 d

active workers. The worker performs the task for a single frequency by

and C1/2 1/2

d , multiplication of model parameters by C m , C m or C m ,

−1/2 calling appropriate functions like FwdResTotal. When the task has

multiplication of J with arbitrary model space vector vm and JT with been performed, it returns the solution to master. These functions are

arbitrary data space vector vd . The Jacobian function is further same as called in the sequential version. Note, that in absence of any

modularized, using the decomposition given in (15), to implement pool parfor is equivalent to for.

multiplication by J (or JT ) using the operators L , P and the solver for The communication between master and worker can be minimized

discrete system matrix A−1 m (or their adjoints) (Figs. 6 and 7). To speed by transferring some ﬁxed components or data to all the active workers

in the beginning itself and storing there to avoid transfer during each

Predicted Data

grid and source information

Master

Call forward solver, compute

EM fields

Worker

Store or write data d

Compute data using data

Parallel Computation functional

Fig. 6. Schematic representation of AP3DMT for forward modeling. Frequency Parallelization is implemented for computing forward responses.

6

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Read models m, m0

Read data dobs from file

and other information

penalty functional f(m), field solutions e

Generic Inversion

Inversion Algorithms

Forward Solver, A-1 Parallel Computation

(NLCG, GN-CG, DCG)

Fig. 7. Schematic representation of AP3DMT for inverse modeling. Frequency Parallelization is implemented for multiplication of J and JT with model and data space vectors

respectively.

interaction with the inversion and Jacobian functions, hence, a wide

range of speciﬁc implementations can be accommodated with appro-

priate modiﬁcations.

Forward modeling forms the core of inversion. In AP3DMT, we are

solving for electric ﬁelds at the cell edges. The function ForwardResp

implements the forward problem and returns the predicted data and an

array of EM solutions e (optionally) corresponding to all the frequen-

cies. These solutions can be saved and used for subsequent sensitivity

calculations (e.g., gradient of the penalty functional).

The forward modeling function includes (i) parameter mapping to

edges, AverageSigma, (ii) setting up boundary conditions, BoundCond,

(iii) computing EM ﬁeld at grid nodes, DiscreteSolver and (iv) the

predicted data at observation points OutInterp. First, the model

parameters are mapped on to the edges of numerical grid. Currently,

the model parameters, σ, are deﬁned as log conductivity. For each grid

node the average conductivity, σ , is deﬁned as weighted average of

exp(σ ) of four surrounding cells to each edge. If any other mapping

scheme is used, like harmonic mean instead of arithmetic mean, then

only changes in this function are required with other portions remain-

ing unchanged. Afterwards, BoundCond is called where right hand side

vector, s, is formed and stored as a column vector depending on the

application. The array s is a matrix with two columns corresponding to

the two independent sources of polarization. Either the total ﬁeld or the

scattered ﬁeld solution can be computed. Arbitrary sources and the

boundary data can be easily incorporated for another technique like

CSEM. In DiscreteSolver the coeﬃcient matrix, with boundary condi-

Fig. 8. Pseudo-code for the parallelization over frequencies of a task like forward

tions enforced, is formed and stored in a sparse format. The coeﬃcient

response. matrix is made symmetric simply by multiplying each row by integra-

tion volume elements and the implementation of the transposed solver

parallel call. is straightforward. The forward solver, in DiscreteSolver, is called and

the ﬁeld solutions are obtained. The OutInterp uses the previously

computed interpolation functional and electric ﬁelds to evaluate the

5. Numerical implementation

desired data at all receivers. For computation of sensitivity, additional

components may be returned (e.g., all elements of impedance tensor)

In this section, we describe the implementation of forward and

for some data types like apparent resistivity and phase. The whole

inverse modeling in detail. For eﬃcient memory usage, a sparse storage

process from BoundCond to OutInterp is looped over frequencies and

is used where ever needed like, coeﬃcient matrix, interpolation

all the data and solutions are assembled together in ForwardResp. To

matrices, etc. Inbuilt functions for dot-product, norm, Hadamard

accommodate new solutions from new sources, the structure array may

product, etc. are used for basic manipulation of various arrays. Each

be used.

time a function is called, the required space is allocated for various

The data functionals F (m) can be expressed in terms of (i) electric

temporary working arrays. Once the job is completed, all the temporary

ﬁeld; (ii) magnetic ﬁeld (mapped from electric ﬁeld); (iii) interpolation

arrays are cleared and just the requisite solution is returned.

operator for electric and magnetic ﬁelds and (iv) functionals of the

measured ﬁeld components, e.g., impedance and/or vertical magnetic

5.1. Forward modeling

ﬁeld TFs. To evaluate this data functional, appropriate interpolation

functional on the basis of observation sites are designed. The function

Forward Modeling is performed by a group of functions dealing

interpcoeﬀ is simple and it computes the basic interpolation func-

with basic numerical grid, model parameters, ﬁeld arrays, forward

tionals (λex , λey , λbx , etc. in sparse storage) required to evaluate

solver and interpolation functional. This functional is essential for

7

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Ex , E y , Hx , Hy and Hz at the site and applies these to solutions for both and phase or phase tensor, ﬁrst the perturbations in impedance are

polarizations. For computation of magnetic ﬁeld from electric ﬁeld, the computed and therefrom the perturbations in the desired datatype are

transformation h = Te (T is a transformation matrix) has been computed. LpJobs performs the product of Lf with vef to form

incorporated in the interpolation coeﬃcients so that this functional vdf = Lf vef . LTpJobs multiplies this vector by the appropriate data

can be applied directly to the ﬁeld vector. The transformation matrix T components to form LTf vdf . Here, instead of implementing LTf vdf , we

is scaled by (−iωμ)−1 to keep it real and frequency independent. After have implemented (v dTf Lf )T . This does away with the need to imple-

computing, h ﬁelds are multiplied by (−iωμ)−1 to take care of the scaling ment LTf .

factor. Once the ﬁeld components are computed, the impedance tensor For the addition of new data type or mixing diﬀerent data types,

and/or the vertical magnetic ﬁeld TFs or any other transformations appropriate changes are required in OutInterp, LpJobs and LTpJobs

required for a particular data type (e.g., apparent resistivity or phase) for computing the predicted data and the sensitivity calculations.

can be computed. Multiple data types are supported with appropriate

selection. The interpolation implemented in the current version is

5.2.2. Forward solver

based on tri-linear interpolation coeﬃcients. Since these interpolation

The function DiscreteSolver is common to the forward modeling,

coeﬃcients are stored in a sparse format and do not aﬀect other

and sensitivity computations. This function includes the standard

modules, other functions would remain unchanged (e.g., calculation of

BiCGSTAB iterative solver (MATLAB library) for solving (2) with the

impedance). Further, addition of new data types or their combinations

incomplete LU decomposition for pre-conditioning and the pre-condi-

will not demand any changes to interpolation aspect.

tioned conjugate gradients for divergence correction. For each fre-

For a diﬀerent numerical discretization like, ﬁnite element method

quency, the output vector ve consists of two sets of solutions corre-

with a non-structured grid, changes in the construction of coeﬃcient

sponding to the two modes of polarizations, requiring two solver calls

matrix and boundary conditions (if any) are required. Since the system

with diﬀerent right hand side vectors (boundary conditions) for each

matrix is explicitly formed and stored, any change in its structure will

frequency. The DiscreteSolver implements the general solver, allowing

not aﬀect the matrix solver which is not the case when the forward

for boundary conditions and solution for both the forward problem and

operator is implemented using a matrix-free approach.

its transpose. Addition of new sources can be easily incorporated by

appropriate boundary conditions and additional solver calls for new

5.2. Inversion

solutions. Also, it is very easy to replace one solver with another like

replacing BiCGSTAB with QMR (Quasi-Minimal Residual). With

In inversion algorithm the main operators are forward operator,

MATLAB inbuilt solvers and preconditioners (like incomplete

data and model covariance matrices and Jacobian. As discussed earlier,

Cholesky, Incomplete LU, Modiﬁed Incomplete LU, etc.), one can test

the main task is the multiplication of these operators with vectors like,

various numerical implementations easily.

C−1/2

d with data vector, C−1/2

m with model parameter vector, J by model

space vector, etc. Since these are standalone operators with no direct

interaction with the inversion function, a new inversion algorithm can 5.2.3. Solver sensitivity

be easily implemented. Symmetric covariance operators, both data and One of the main components of Jacobian is Pf , which deﬁnes the

model, are standalone with input and output being the data vector or product of the sensitivity of the coeﬃcient matrix Am, f to the model

model parameter vector. For data covariances, full matrix can be parameters (log conductivity) with the electric ﬁeld. (13) Provides the

provided. However, for our inversion tests, we have used diagonal error derivative of the ﬁeld with respect to the parameters. This derivative

covariances into error functional for noisy measurements; these are can be interpreted as the ﬁeld due to a collection of sources described

generally based on the standard deviations of the measurements. The as the product of derivatives of Am, f and the ﬁeld vector e. As discussed

model covariances are much more complicated, like C−1 m can be earlier, the operator Pf consists of two components. The ﬁrst part

represented by DT D where D is a ﬁnite diﬀerence approximation of provides the scaled derivative of the coeﬃcient matrix with respect to

the gradient or the Laplacian (∇2) operator, as in Occam inversion the model parameters (see (13)). For a FD approximation, only the

(Constable et al., 1987), or as deﬁned by Kelbert et al. (2008). A model diagonal elements of the matrix Am, f depend on conductivity elements

covariance ﬁle (optional) allows the user to turn oﬀ the smoothening in the form of iωμσ . Here, σ is the volume average of the conductivity of

across the domain boundaries, and also allows the model parameters nearby cells. Hence, each parameter contributes to twelve internal

within a domain to be frozen (e.g., water, air in case of topography, nodes. This results in a maximum of twelve non-zero elements per

etc.). Since this function is completely independent of other functions, parameter. The derivatives of Am, f are made real and frequency

various covariance operators can be easily implemented and tested for independent by simply scaling these with the factor (iωμ)−1. Once these

3D EM problems. The multiplication of J (or J T ) with a vector is derivatives are obtained, these are multiplied with the model parameter

performed using the components of J as discussed earlier: (i) the vector to perform the operation Pvm . This product can be viewed as

M

operator P; (ii) the forward solver; (iii) the sensitivity functional, L. ∑i =1 mi A′mi, f where A′mi, f is a column vector of length Ne with only 12

Details of how these components are formed for a single frequency f, non-zero elements with their indices deﬁned by the mapping. These

are given below. non-zero elements are −Vexp i (mi ) where, Vi is the integration volume

for the ith cell having parameter mi deﬁned as log conductivity.

5.2.1. Sensitivity functional Afterwards, this vector is multiplied element by element with the

The function LpJobs implements the sensitivity functionals for use electric ﬁeld solution e n , corresponding to frequency f, and ﬁnally by

in sensitivity computations. This function performs the linearization of iωμ to obtain the ﬁnal solution Pf vm in PpJob. For the transpose case,

the data functional with respect to variations in the EM solution e . these steps are reversed in PTpJob. In this function, ﬁrst the input

Here, the Lf matrix is not explicitly formed, rather the product of Lf vector vef is multiplied element by element with the electric ﬁeld e n

and vector vef or of LTf and vector vdf is computed using the components resulting in vef = (v e af , v e bf ) (solutions for two source polarization).

of Lf . If the measured component is EM ﬁeld itself, then Lf simply Finally, the operation iωμ[PT (v e af + v e bf )] is performed resulting in a

computes the interpolated values (using Ex , E y , etc.) at the sites and model parameter vector vmf .

stores them in a vector. For datatype like Impedance or vertical The multiplication of J with the model parameter vector vm is

magnetic ﬁeld TFs the components of Lf include the interpolation parallelized over frequency. Master sends a copy of vm and other

and transformation matrices (λex , λey , λbx etc.), the magnetic ﬁeld and necessary information to each worker. Each worker computes

the impedance values at the observation sites (see Appendix A for vdf = Lf A−1

m, f Pf vm . The product vsf = Pf vm results in a matrix with two

detailed expression of L). For other datatype viz. apparent resistivity columns for the two modes of polarization. Hence, for vef = A−1 m, f vsf , the

8

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

matrix solver is called twice for diﬀerent right hand side vectors.

Finally, the product vdf = Lf vef is obtained using the linear combination

of product of each block of Lf matrix and column of vef (see (18)). If the

operation JTf vdf is required (like JT J in GN-CG) then the same worker

performs the operation vmf = P Tf A−1 T

m, f Lf vdf . If only the gradient is

required, like in NLCG, then the master sends the residual vector r f ,

corresponding to each frequency, to each worker and the workers

compute the gradient. Once the gradient is computed for each

frequency, the linear sum is computed and ﬁnal JT vd is formed.

JacobJob implements all these three tasks viz. Jvm , JT vd and JT Jvm

computations depending on the call. JJT vd is computed using the

combination of JT vd and Jvm .

6. Results

Fig. 10. Ratio between model parameters of the inverse models as obtained by AP3DMT

The AP3DMT code has been tested and validated over a variety of and ModEM.

3D standard models available in literature. For demonstration, we have

selected two synthetic test models. The ﬁrst test model is a ‘checker- then increase logarithmically downwards. AP3DMT is used to compute

board’ conductivity distribution, Rubick Model, (Egbert and Kelbert, the impedance tensor for 12 periods logarithmically spaced between

2012) and the second is Dublin Test Model 2 (DTM2) (Groom and 0.01 and 10000 s at 49 sites, located on circles of diﬀerent radii from

Bailey, 1991; Miensopust et al., 2013). These two data sets were the center of the hemisphere except one at the center. An error ﬂoor of

inverted using NLCG algorithm on HP Z620, Intel Xeon E2643, 32 GB 5% of |Zxy Z yx |1/2 is assigned to the impedance tensor. For inversion,

with 8 cores for parallelization. again a homogeneous model of 100 Ω-m, discretized into 54 × 54 × 37

The ﬁrst model consists of 10 and 1000 Ω-m blocks in a homo- cells (500 m × 500 m × 50 m , vertical extent increasing with depth) is

geneous 100 Ω-m half-space (Fig. 9a). For comparison of inversion used as apriori and initial model. In 42 NLCG iterations the nRMS

results, the synthetic data and the initial guess model are taken from error reduced from 18.3 to 1.12. The inverted model thus obtained is

the test ﬁles provided along with the ModEM code. This data set shown in Fig. 11 (right panel). The circular shape of the hemisphere

includes the impedance tensor and the vertical magnetic ﬁeld TFs and the correct order of resistivity were recovered. The correct

sampled at 225 sites distributed on a regular 2D array with 80 and representation of the circular body is limited due to the use of

40 km spacing in x- and y- directions respectively for 12 periods, rectangular meshing. Table 2 summarizes the above results in a tabular

logarithmically spaced between 10 and 10000 s. Errors ﬂoor is set as form along with the run time and other details.

3% of |Zxy Z yx |1/2 for impedance tensor and 0.03 for vertical magnetic For both these models and for the other models tested, the edges of

TFs. For computation of this data, authors of ModEM code discretized the target bodies are not represented by a sharp boundary as in the true

the test model into 67 × 67 × 60 cells (excluding cells in air), with model. The resistivity gradually changes across the boundary of a

nominal resolution of 20 km horizontally. For inversion a homoge- structure resulting in smearing out of structures. This is so because the

neous model of 100 Ω-m, discretized into same number of cells, is used current code is based on smooth model approach.

as apriori and initial model. In 58 NLCG iterations the normalized

root-mean-square (nRMS) error reduced from 12.38 to 1.06. The

inverted model thus obtained is shown in Fig. 9b. Fig. 10 shows the 7. Conclusions

ratio between model parameters of the inverted models as obtained by

AP3DMT and ModEM. The main model features present in the test We have presented the development of a MATLAB based code,

model are recovered. As expected, there is some degradation in the AP3DMT, for modeling and inversion of 3D MT data. The capability of

features below the conductive structures. this program for performing inversion is demonstrated through two

The second model DTM2, Fig. 11 (left panel), consists of a synthetic test models. The key feature is its compactness and simplicity

hemisphere of 10 Ω-m and radius of 5 km directly beneath the surface and its potential as a tool for rapid development and testing of new

of a homogeneous 300 Ω-m half space. The origin of the coordinate applications. Basic functions are simple and readily available. Thus, it

system has been taken as the center of the hemisphere. The model is would be easy to replace one scheme with another one like replacing

discretized into 54 × 54 × 42 cells with horizontal cell dimensions of NLCG with quasi-Newton (e.g., Nocedal and Wright, 2000; Newman

500 m. Cell thicknesses are 500 m in the upper 5 km of the model and and Boggs, 2004) or one iterative solver with another one. AP3DMT

Fig. 9. (a) Resistivity model for 3D test, with site locations shown at top (Egbert and Kelbert, 2012), and (b) inverse solution obtained with AP3DMT after 58 iterations by ﬁtting full

impedances and vertical ﬁeld TFs. In the cut-away view the upper surface shown is at 2 km depth, but the structures shown extend to the surface.

9

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

Fig. 11. A plan view of true model and the inversion model. The black dots represent the used sites.

provides a natural platform for development and comparison of not BiCGSTAB, ILU, etc. may be considered both as its strength and

only inversion search algorithms but also various modeling schemes or weakness. Use of these global functions make the code more versatile,

its components like iterative solvers, preconditioners and modiﬁed compact and user friendly which will open opportunities for develop-

ﬁnite diﬀerences schemes. ment and experimentation. It may be mentioned that the MATLAB

Use of MATLAB platform and its in-built functions such as functions have multiple checks and are therefore slower than the

Table 2

List of inversion results. Beside the model name, information about the data, mesh and inversion parameters are given as well as the number of iterations, RMS value (initial/final) and

target tolerance (TT).

RMS 12.38/1.06 Impedance & VTF ∼9939 m × ∼20011 m × ∼500 m center cell

TT = 10−6 (forward & gradient) 12 periods (10 − 10000 s) starting model: 100 Ω m half-space

49.25 h, 9.9 GB (8 cores) Error floor 3% of |Zxy Z yx |1/2 for Z

HP Z620, Intel Xeon E2643 3.30 GHz, 32 GB and 0.03 for VTF

RMS 18.3/1.12 Impedance 54 × 54 × 37 cells (inversion)

TT = 10−6 (forward & gradient) 24 periods (0.01 − 1000 s) ∼500 m × ∼500 m × ∼50 m center cell

30.69 h, 5.8 GB (8 cores) Error floor 5% of |Zxy Z yx |1/2 for Z (vertical extent increasing with depth)

HP Z620, Intel Xeon E2643 3.30 GHz, 32 GB starting model: 100 Ω m half-space

10

A. Singh et al. Computers & Geosciences 104 (2017) 1–11

corresponding functions of a Fortran code. However, in a MATLAB authors are thankful to Ministry of Earth Sciences, Govt. of India for

code the implementation, parallelization etc. are much easier. providing computational facilities. The authors are thankful to Institute

Computer Center, IIT Roorkee for providing MATLAB-2013. The

Acknowledgment authors are also thankful to Gary Egbert and Anna Kelbert for

providing ModEM code.We also thank Jef Caers (the editor) and the

Two of the authors, Arun Singh and Rahul Dehiya, are grateful to three anonymous reviewers, for their detailed comments, which helped

Ministry of Human Resource Development, Govt. of India for provid- us to improve this paper.

ing ﬁnancial support during the preparation of this manuscript. The

Let Z be a 2×2 impedance tensor with its elements deﬁned as Z11, Z12, Z 21 and Z22. For a single frequency, the data d can be written as

⎡ Z11 ⎤

⎢ ⎥

Z

d = ⎢ 12 ⎥

⎢ Z21 ⎥

⎢⎣ Z22 ⎥⎦ (A.1)

where, each block (i = 1, 2; j = 1, 2) is a complex column vector (of length equal to number of sites) with elements representing the corresponding

components of impedance values at the observation sites.

The matrix L (complex) takes the form as

⎡ ∂Z11 ⎤

⎢ ∂e ⎥ ⎡ Bx (λex − Z11λbx − Z12 λby ) Bay (λex − Z11λbx − Z12 λby ) ⎤

a

⎢ ∂Z12 ⎥ ⎢ b ⎥

⎢ ⎥ ⎢ Bx (λex − Z11λbx − Z12 λby ) Bby (λex − Z11λbx − Z12 λby ) ⎥

L = ⎢ ∂Z∂e ⎥ = ⎢ a ⎥

− Z22 λby ) Bay (λey − Z21λbx − Z22 λby )⎥

⎢ ∂e ⎥ ⎢ x ey

21 B (λ − Z21λbx

⎢

⎢ ∂Z22 ⎥ ⎣ Bbx (λey − Z 21λbx ⎥

− Z 22 λby ) Bby (λey − Z 21λbx − Z22 λby ) ⎦

⎣ ∂e ⎦ (A.2)

with each block of size nobs × Ne . In (A.2), Bkx and Bky (k = a, b ) are diagonal matrices with elements as inverse of magnetic ﬁelds at local sites,

Zik (i = 1, 2; j = 1, 2) represents the diagonal matrices with elements as impedance values at local sites and λex , λey and λbx , λby are interpolation and

transformation matrices respectively. Note that the transformation matrices λbx , λby are real and frequency independent, hence care must be taken

while performing any operation involving these matrices. For example Z11λbx will become α Z11λbx where α is −iωμ)−1.

For VTFs only ﬁrst 2 rows in (A.2) exists with λex replaced by λbz and vertical ﬁeld TFs matrices by impedance matrices.

Supplementary data associated with this article can be found in the online version at http://dx.doi.org/10.1016/j.cageo.2017.03.019.

Miensopust, M.P., Queralt, P., Jones, A.G., The 3D MT-modellers, 2013. Magnetotelluric

3-D inversion-a review of two successful workshops on forward and inversion code

Avdeev, D.B., Avdeeva, A., 2009. 3D magnetotelluric inversion using a limited-memory testing and comparison. Geophys. J. Int., 193, 1216–1238.

quasi-newton optimization. Geophysics 74 (3), F45–F57. Newman, G.A., Alumbaugh, D.L., 1997. Three-dimensional massively parallel

Constable, S.C., Parker, R.L., Constable, C.G., 1987. Occam's inversion: a practical electromagnetic inversion - i. Geophys. J. Int. 128, 345–354.

algorithm for generating smooth models from electromagnetic sounding data. Newman, G.A., Alumbaugh, D.L., 2000. Three-dimensional magnetotelluric inversion

Geophysics 52 (3), 289–300. using non-linear conjugate gradients. Geophys. J. Int. 140, 410–424.

Egbert, G.D., 2012. Hybrid conjugate gradient-occam algorithms for inversion of multi- Newman, G.A., Boggs, P.T., 2004. Solution accelerators for large-scale three-dimensional

frequency and multi-transmitter em data. Geophys. J. Int. 190, 255–266. electromagnetic inverse problems. Inverse Probl. 20, 151–170.

Egbert, G.D., Kelbert, A., 2012. Computational recipes for electromagnetic inverse Nocedal, J., Wright, S.J., 2000. Numerical Optimization. Springer, New York, USA.

problems. Geophys. J. Int. 189, 167–251. Parker, R.L., 1994. Geophysical Inverse Theory. Princeton University Press, Princeton,

Groom, R.W., Bailey, R.C., 1991. Analytic investigations of the eﬀects of near-surface New Jersey.

three-dimensional glavanic scatterers on mt tensor decompositions. Geophysics 56 Patro, K.P., Uyeshima, M., Siripunvaraporn, W., 2013. Three-dimensional inversion of

(4), 496–518. magnetotelluric phase tensor data. Geophys. J. Int. 192 (2), 58–66.

Haber, E., Ascher, U.M., Oldenburg, D.W., 2004. Inversion of 3D electromagnetic data in Rodi, W.L., Mackie, R.L., 2001. Nonlinear conjugate gradients algorithm for 2-D

frequency and time domain using an inexact all-at-once approach. Geophysics 69 magnetotelluric inversion. Geophysics 66 (1), 174–187.

(5), 1216–1228. Singh, A., Dehiya, R., Gupta, P.K., Israil, M., 2014. Development of block inversion

J. D’Errico, (2006). Surface Fitting using gridﬁt, MATLAB Central File Exchange. algorithm and its comparison with cell inversion scheme. 22th Workshop on

Retrieved Sep 26, 2015. Electromagnetic Induction Weimar, Germany.

Kelbert, A., Egbert, G.D., Schultz, A., 2008. Non-linear conjugate gradient inversion for Siripunvaraporn, W., Egbert, G.D., 2000. An eﬃcient data-subspace inversion method

global em induction: resolution studies. Geophys. J. Int. 173 (2), 365–381. for 2-D magnetotelluric data. Geophysics 65 (3), 791–803.

Kelbert, A., Meqbel, N., Egbert, G.D., Tandon, K., 2014. Modem: a modular system for Siripunvaraporn, W., Egbert, G.D., 2009. WSINV3DMT: vertical magnetic ﬁeld transfer

inversion of electromagnetic geophysical data. Comput. Geosci. 66, 40–53. function inversion and parallel implementation. Earth Planet. Inter 173 (3–4),

Kristina, T., Oliver, R., Egbert, G.D., 2015. 3-d Joint inversion of the magnetotelluric 317–329.

phase tensor and vertical magnetic transfer functions. Geophys. J. Int. 203, Siripunvaraporn, W., Egbert, G.D., Lenbury, Y., Uyeshima, M., 2005. Three dimensional

1128–1148. magnetotelluric inversion: data-space method. Earth Planets Space 150 (13), 3–14.

Mackie, R.L., Madden, T.R., Wannamaker, P.E., 1993. Three-dimensional Smith, J.T., 1996. Conservative modeling of 3-D electromagnetic ﬁelds: 2. Biconjugate

magnetotelluric modeling using diﬀerence equations: theory and comparisons to gradient solution and an accelerator. Geophysics 61 (5), 1319–1324.

integral equation solutions. Geophysics 58, 215–226. Yee, K., 1966. Numerical solution of initial boundary value problems involving maxwell's

Mackie, R.L., Smith, J.T., Madden, T.R., 1994. 3-Dimensional electromagnetic modeling equations in isotropic media. IEEE Trans. Antennas Propag. 14, 302–307.

using ﬁnite-diﬀerence equations-the magnetotelluric example. Radio Sci. 29 (4), Zhdanov, M., Hursan, G., 2000. 3D electromagnetic inversion based on quasi analytical

923–935. approximation. Inverse Probl. 16, 1297–1322.

Marquardt, D.W., 1963. An algorithm for least-squares estimation of nonlinear

11

## Molto più che documenti.

Scopri tutto ciò che Scribd ha da offrire, inclusi libri e audiolibri dei maggiori editori.

Annulla in qualsiasi momento.