The Program and its purpose
The program library GRAV3D is a suit of algorithms for inverting gravity data gathered over
a three dimensional earth. Version 1.0 of this facility is described in detail in Li and Oldenburg
(1998), and subsequent versions added greater flexibility and efficiency to the basic
forward modelling and inversion algorithms. In particular it allowed larger problems to be solved
through the use of wavelet transforms, and it allowed geophysical constraints, in the form of upper
and lower bounds on the density of each cell, to be included. Notes about Version 3.0 are below.
The problem addressed by GRAV3D involves gravimetric data gathered anywhere at or
above the surface of the Earth. These data are the vertical component of the gravity field caused
by a three dimensional distribution of density contrast within the volume of ground directly
beneath the survey area. This subsurface volume (with optional topography) is modelled as a set
of rectangular cells each with constant density contrast. For forward calculations the anomalous
density in each cell is known and the data that be measured over this known Earth model are
calculated. The inverse problem involves estimating the density contrasts of all the cells based
upon measurements gathered during a field survey.
In the remainder of this introduction we point out some highlights, and we emphasize the
importance of understanding what kind of models the program can recover, and how the program
operates. Changes implemented for GRAV3D Version 3.0 are outlined at the end of this chapter.
Summary of sections on theoretical background
The introduction provides a basic understanding of how gravity data relate to the Earth, and
the goal of inverting such data.
The solution to the forward problem is described, and an example of a forward calculation
is provided.
The method of solving the gravity inverse problem is outlined. In summary, the inversion is
solved as an optimization problem with the simultaneous goals of i) minimizing an objective
function on the model and ii) generating synthetic data that match observations to within a
degree of misfit consistent with the statistics of those data.
- By minimizing the model objective function, distributions of subsurface density contrast are
found that are both close to a reference and smooth in three dimensions. The degree to which
either of these two goals dominates is controlled by defining length scales for smoothness.
This is a crucial step and allows the user to incorporate a priori geophysical or geological information into the inversion. Explicit prior information may also take the form of upper and lower bounds on the density contrast in any cell.
- The relative importance of the objective function the misfit term is controlled by a regularization
parameter. This parameter is determined in one of three ways, and depends upon
how much is known about errors in the measured data. Section 1.6 discusses this problem,
and it is important to understand how the choice of options affects the outcome from the
inversion program.
Potential fields data have no inherent information about the distance between source and
measurement, therefore the incorporation of a depth or distance weighting term in the
formulation is critical. Section 1.4 describes this issue, and explains the options available
for controlling how cells in the model enter into the solution regardless of their depth or
distance from the measurements.
The large size of useful 3D inversion problems is mitigated by the use of wavelet compression.
Parameters controlling the implementation of this compression are available for
advanced users, and section 1.5 provides some details on how wavelet compression is applied.
Summary of program elements, instructions for use, and examples
Files and file formats are similar to those of other UBC-GIF codes, although there are some
aspects specific to GRAV3D V3.0. Highlights are noted below, but you must read Chapter 2
of the manual for details.
The mesh file defines how the 3D subsurface volume of ground is discretized. Specify
cell sizes that will image your target with adequate detail without resulting in a too many
model cells. Then add padding cells outside the region of investigation. Recall that the
program must invert a sensitivity matrix that has a size proportional to N x M, where N is
the number of data points and M is the total number of cells in the model. This sensitivity
matrix should reside within the computer’s memory for efficient execution. Problems with
more than 10,000 to 20,000 model cells, and/or more than a few thousand data points would
be considered large, and may be expected to require a considerable amount of computing
time.
Also, it is considered prudent to upward continue data that are gathered very close to
the ground so that measurements appear as if collected at an elevation roughly equal to half
a cell width. This is especially true in the presence of severe topography.
Files that define topography, observation locations and observations (measured data) are self
explanatory. The manual includes details on how to ensure consistency regarding elevations
and topography.
There are separate model files defining density contrasts for the initial model, reference
model, upper and lower bounds on density contrast, and final output models, all with similar
structures. These models are defined via the mesh file, and each cell has a constant density
contrast. Also, you should be clear on how cells above topography are managed.
Forward modelling, sensitivity calculation and inversion programs are run from the command
line with parameters specified in separate files. In the descriptions of these parameter files look
for details regarding depth or distance weighting, wavelet compression, and how to specify model
objective function parameters. There are also important notes on inversion "mode". Your choice
of mode determines what method the program uses to find the regularization parameter. This
choice is based upon what type of information you have on data errors, and error statistics.
Output files are also specified, and you should take particular note of the information provided
in the log file. This file summarizes the progress of inversion, and careful examination of its
information is a critical aspect of quality control. The log file contents depend upon which mode
was use for inversion; see the final section of chapter 3 for details.
The manual concludes with two synthetic examples. The first illustrates the newly added
facility for specifying upper and lower bounds on recovered cell density contrasts. The second
example illustrates inversion of a larger problem.
Conclusions
Successful application of inversion results to geological problems demands understanding
of the inversion process. While models will be as smooth and as close to a reference model
as data misfit will allow, the actual results are controlled by careful selection of length scales,
weighting functions, and constraining parameters. The size of the problem is reduced using
wavelet compression and the management of misfit is controlled by the choice of mode and
associated parameters. This degree of flexibility makes it imperative that the user has a good
understanding of general inversion theory and the specifics of its implementation for GRAV3D.
Finally, please be sure to read the notes regarding changes implemented for Version 3.0.
NOTES: GRAV3D Ver 3.0 (June 2005) - changes to the code and the manual
As might be expected, more recent UBC-GIF codes have features that have been found important for solving
practical problems but these features were not included in earlier program libraries. The upgrades described below
address this issue. The revised codes are more uniform in capabilities and are more computational efficient.
Improvements since version 2.0
- A new preconditioner for solving the Gauss-Newton system of equations results in significantly improved performance.
- All values, except for the stored sensitivity matrix, are now in double precision. This results in more accurate
calculations.
- When entering UTM coordinates, which have a lot of significant digits, the user no longer has to subtract a
constant.
- A file
sensitivity.txt is output after running gzsen3d.exe. It contains the average sensitivity for each cell. This
file can be used for depth of investigation analysis or for use in designing special model objective function
weighting.
- A file
gzinv3d_nopos.den is output during the first part of the inversion. It contains the densities without the
bounds constraints imposed.
- A file
gzinv3d_XX.den is output after each beta iteration.
- In
gzinv3d.exe the user can enter either alpha values or length scales.
- The reference model is now included in the calculation of the model norm.
- The reference model is now scaled by the depth weighting before starting the no-positivity iterations.
- Sensitivity calculations carried out by
gzsen3d.exe are now more efficient.
Changes to run-time files for GRAV3D Version 3.0
None.
Changes to this manual for GRAV3D Version 3.0
This introductory note, and a few additions to "execution".
Notes on computation speed

Run times for GRAV3D Ver2.0 and Ver3.0 are compared in
the figures above for a moderately complicated problem.
This was a real example involving 1839 data points and
920856 cells in the model, and moderate topography.
- The Version 3.0 code is significantly faster in all cases.
- Speed also depends strongly on the computer. Times when
using two computers are shown below. Both were Pentium IV
processors with 1 Gbyte of RAM. The significant difference
however concerns the size of the CPU’s cache memory. Most
good computers sold since roughly 2005 have 1.0Mb of cache
memory and this results in a significant improvement in time
to complete computation-intensive jobs.
- The complexity of the problem also affects computation times. In the table, compare times when bounds are
included to times when no bounds are included. All other aspects of the inversions are identical.
- These results are presented for illustration only. The time to compute any given problem is strongly dependent
upon the number of data points, the size of the mesh, and how how you set up all parameters for the inversion,
including data, constraints, regularization, compression, etc.
|