3.2.5. Inversion Input File

Important

  • Both the forward and inverse problems are solved using the e3dmt_v2 executable program. In both cases, the lines of the input file are the same. However in the case of forward modeling, some lines in the input file are not used by the code and can be given any value.

  • e3dmt_v2 can accept observation files that use the original (version 1) or version 2 format. This may change the number of lines in the input file.

Line #

Parameter

Description

1

OcTree Mesh

path to octree mesh file

2a

Observation File

path to observations file (v1 and v2)

2b

Receiver File

path to receivers file (v2 only)

2c

Frequencies File

path to frequencies file (v2 only)

3

Background Conductivity

set background conductivity

4

Initial/FWD Model

initial model

5

Reference Model

reference model

6

Background Susceptibility Model

background susceptibility

7

Active Topography Cells

topography

8

Active Model Cells

active model cells

9

Cell Weights

additional cell weights

10

Face Weights

additional face weights

11

Norm Sparseness

set parameters to recover smooth, sparse or blocky models

12

beta_max beta_min beta_factor

cooling schedule for beta parameter

13

alpha_s alpha_x alpha_y alpha_z

weighting constants for smallness and smoothness constraints

14

Chi Factor

stopping criteria for inversion

15

iter_per_beta nBetas

set the number of Gauss-Newton iteration for each beta value

16

tol_ipcg max_iter_ipcg

set the tolerance and number of iterations for Gauss-Newton solve

17

Reference Model Update

reference model

18

Hard Constraints

use SMOOTH_MOD or SMOOTH_MOD_DIFF

19

Bounds

upper and lower bounds for recovered model

20

Memory Options

options for storing factorizations of forward system (RAM vs disk)

21

Phase Convention

set data convention to \(e^{-i\omega t}\) or \(e^{+i\omega t}\)

  • Example input file for forward modeling (Download ).

  • Example input file for inversion (Download ).

../../_images/inv_input_ver2.png

Fig. 3.4 Example input file for the inversion program

3.2.5.1. Line Descriptions

  • Observation File: Sets the path to the observations file. There are two file formats that can be used for the observations file:

  • Receiver File: file path to the receiver file

    • If version 1 file formats are being used, this line does not exist in the input file

    • If version 2 file formats are being used, provide the path to the receiver file

  • Frequencies File: file path to the frequencies file

    • If version 1 file formats are being used, this line does not exist in the input file

    • If version 2 file formats are being used, provide the path to the frequencies file

  • Background Conductivity: On this line, the user first specifies a flag for the background conductivity model (‘1DBACKGROUND’ or ‘3DBACKGROUND’). Next, the user may supply the file path to the corresponding conductivity model (ex: 1DBACKGROUND model1d.con), or if a homogeneous background conductivity is being used, the user may enter “VALUE” followed by a space and a numerical value (ex: 3DBACKGROUND VALUE 0.01). The way the background model is used to determine the boundary conditions for solving NSEM problem depends on the active topography cells options on line 9. Before continuing, the user is urged to read the section on boundary conditions.

Important

  • The number of layers in the 1D model for E3DMT ver 2 must equal the number of underlying mesh cells in the vertical direction. Thus if underlying mesh for the OcTree mesh is 1028 by 1028 by 512, the 1D model must have 512 layer conductivities.

  • The boundary conditions computed using 1D models is only accurate when surface topography is minimal. In the case where surface topography is significant, 3D background models are suggested.

  • Initial/FWD Model: On this line we specify either the starting model for the inversion or the conductivity model for the forward modeling. On this line, there are 3 possible options:

    • If the program is being used to forward model data, the flag ‘FWDMODEL’ is entered followed by the path to the conductivity model.

    • If the program is being used to invert data, only the path to a conductivity model is required; e.g. inversion is assumed unless otherwise specified.

    • If a homogeneous conductivity value is being used as the starting model for an inversion, the user can enter “VALUE” followed by a space and a numerical value; example “VALUE 0.01”.

Important

If data are only being forward modeled, only the background susceptibility model, active topography cells, memory options and phase convention fields are relevant. However, the remaining fields must not be empty and must have correct syntax for the code to run.

  • Reference Model: The user may supply the file path to a reference conductivity model. If a homogeneous conductivity value is being used for all active cells, the user can enter “VALUE” followed by a space and a numerical value; example “VALUE 0.01”.

  • Background Susceptibility Model: The user may supply the file path to a background susceptibility model. If the Earth is non-magnetic, the user may use the flag “NO_SUS”.

  • Active Topography Cells: Here the user specifies the cells which lie below the surface topography. To do this, the user supplies the file path to an active cells model file. The active cells model has values 1 for cells lying below the surface topography and values 0 for cells lying above.

  • Active Model Cells: Here, the user can choose to specify the model cells which are active during the inversion. To do this, the user may supply the file path to an active cells model file or type “ALL_ACTIVE”. The active model cells are given a value of 1 and inactive cells are given a value of 0. Recovered values for inactive cells are provided by the background conductivity model. All cells lying above surface topography will have a conductivity value equal to air values.

  • Cell Weights: Here, the user specifies whether cell weights are supplied. The user has two options:

    • No cell weights: the user enters the flag NO_WEIGHT.

    • Weights file: the user provides the file path to a cell weights file

  • Face Weights: Here, the user specifies whether face weights are supplied. The user has three options:

    • No face weights: the user enters the flag NO_FACE_WEIGHT

    • Simple weights: the user enters the flag FACE_WEIGHTS, THEN the number of layers for which horizontal face weights are applied, followed by the weights for each layer; for example “FACE_WEIGHTS 3 100 50 25” sets horizontal interface weights for three layer below the surface. Yes surface topography is taken into account.

    • Weights file: the user enters the flag WEIGHTS_FILE followed by the file path to a face weights file cell weights file. NOTE this option has not been added as of 2019-03-14 but will be added in the future.

  • Sparseness: The sparseness of the recovered model is determined by the terms within the model objective function . A standard approach is to use an L2-norm for all terms

    • To use the L2-norm, enter the flag ‘USE_L2’

    • To specify the Ekblom norm, enter the flag ‘USE_EKBLOM’ followed by values for \(p\) and \(\varepsilon\) where the Ekblom norm is given by:

\[\sum_{i=1}^M \, (\sigma_i^2 + \varepsilon^2)^{p/2} \;\;\; \textrm{s.t.} \;\;\; 1\leq p \leq 2, \; \varepsilon > 0\]
  • beta_max beta_min beta_factor: Here, the user specifies protocols for the trade-off parameter (beta). beta_max is the initial value of beta. beta_min is generally used to denote the minimum allowable trade-off parameter the program can use before quitting. For this code however, the minimum beta is determined through the nBeta parameter on line 15 and the beta_min parameter has no function. beta_factor defines the factor by which beta is decreased at each iteration; example “1E4 10 0.2”. The user may also enter “DEFAULT” if they wish to have beta calculated automatically. See theory on cooling schedule.

  • alpha_s alpha_x alpha_y alpha_z: Alpha parameters . Here, the user specifies the relative weighting between the smallness and smoothness component penalties on the recovered models.

  • Chi Factor: The chi factor defines the target misfit for the inversion (DEFAULT = 1); see the GIFtools cookbook . Where \(\phi_d\) is the data misfit , \(N\) is the number of data and \(\chi_{fact}\) is the chi factor, the inversion terminates when:

\[\phi_d \leq \chi_{fact} \times N\]
  • iter_per_beta nBetas: Here, iter_per_beta is the number of Gauss-Newton iterations per beta value. nBetas is the number of times the inverse problem is solved for smaller and smaller trade-off parameters until it quits. See theory section for cooling schedule and Gauss-Newton update.

  • tol_ipcg max_iter_ipcg: Here, the user specifies solver parameters. tol_ipcg defines how well the iterative solver does when solving for \(\delta m\) and max_iter_ipcg is the maximum iterations of incomplete-preconditioned-conjugate gradient. See theory on Gauss-Newton solve

  • Reference Model Update: If the flag “NOT_CHANGE_MREF” is entered, the reference model remains unchanged throughout the inversion. If the flag “CHANGE_MREF” is entered, the current model is set as the reference model for the next beta iteration.

  • Hard Constraints: SMOOTH_MOD runs the inversion without implementing a reference model (essential \(m_{ref}=0\)). “SMOOTH_MOD_DIF” constrains the inversion in the smallness and smoothness terms using a reference model.

  • Bounds: Bound constraints on the recovered model.

    • Enter “BOUNDS_NONE” if the inversion is unbounded, or if there is no a-prior information about the subsurface model.

    • Choose “BOUNDS_CONST” and enter the values of the minimum and maximum model conductivity; example “BOUNDS_CONST 1E-6 0.1”.

    • Enter the file path to a bounds file

  • Memory Options: This code uses a factorization to solve the forward system at each frequency. These factorizations must be stored. By using the flag ‘FACTOR_IC’ (in core), factorizations are stored within a computer’s RAM. Although this is faster, larger problems cannot be solved if insufficient temporary memory is available. The factorizations are stored in permanent memory (disk/solid state) if the flag ‘FACTOR_OOC’ (out of core) is used followed by the path to a directory. This is slower because the program must read these files many times. The second options is ill-advised if files are being transferred over a network.

  • Phase Convention: If the predicted/observed data have a sign convention \(e^{+i \omega t}\) use the flag ‘PLUS_IOMEGA’. If the predicted/observed data have a sign convention \(e^{-i \omega t}\) use the flag ‘MINUS_IOMEGA’.

3.2.5.2. Details regarding boundary conditions

The way background models are used to determine the boundary conditions for the problem depends on background conductivity and the active topography cells. This can be explained as follows:

1DBACKGROUND:

  • Assume VALUE is used to define the 1D background conductivity model and the flag ALL_ACTIVE is used to define active topography cells. Then the boundary conditions are obtained by solving the fields for a whole space. This approach is strongly discouraged!

  • Assume VALUE is used to define the 1D background conductivity model and an active cells model is used to define the active topography cells. Then the highest surface elevation in the active cells model is used as the surface elevation for the 1D model. Below this surface, the background conductivity is equal to the specified value. Above this surface, the background conductivity is set to air.

  • Assume a 1D model defines the background conductivity model and the flag ALL_ACTIVE is used to define active topography cells. The top of the 1D model corresponds to the top of the OcTree mesh when solving the 1D problem. As a result, it is important to include air cells in the 1D model.

  • Assume a 1D model defines the background conductivity model and an active cells model is used to define the active topography cells. Then the highest surface elevation in the active cells model is used as the surface elevation for the 1D model. The 1D problem is still solved and the top of the 1D model still corresponds to the top of the OcTree mesh. However, all layers above the surface are set to air regardless of the values specified in the 1D model.

3DBACKGROUND: