Institute of the computational modeling SB RAN
The software for the solution of the forward and inverse three-dimensional and two-dimensional problems of magnetometry
Krasnoyarsk 2003
Importing
data from grid file12
ADGM3D v1.0 developed with
Borland Delphi.
Model type: block-layered
Unlimited number of layers and
blocks in the layer.
Data: DTa or DZa magnetic field
anomalies uniformly scattered on the surface of observation.
Unlimited number of the
surfaces of observation[1].
Packet is intended for the
solution of the forward and inverse three-dimensional and two-dimensional
problems of magnetometry based on the data of the anomalous magnetic field,
measured in the knots of uniform grid on the assigned surfaces of observation.
Three-dimensional block-layered model of medium with the
piecewise-linear layer boundaries is assumed for the purposes of solution. Each
layer is approximated by the set of parallelepiped elements (blocks). Along the
axes X and Y the partition into the blocks is conducted according to the preset
rectangular grid, while the vertical dimensions of blocks are determined by the
positions of layer boundaries. Inside
of the elementary block the magnetic susceptibility of medium assumed constant.
We consider the following
problems:
a) For each elementary
block, value of the magnetic susceptibility is given. All boundaries are known.
Determine the values of DTa or DZa along the required
surfaces, which can coincide or not with the original ground.
b) The values of DTa or DZa are given. All
boundaries are known. Determine the magnetic susceptibilities for each block.
c) The values of DTa or DZa are given and for each
elementary block, value of the magnetic susceptibility is given. Also, the
upper and bottom boundaries are known. Determine the inner layer boundary
positions.
It is customary in geophysics
to call the problems subsequently forward
problem, inverse problem
and contact problem. Adding up
magnetic influences from each elementary block solves the forward problem. The
field of elementary block calculated from known formulae [1,2]. The inverse
problem is reduced to solving a linear equation system, and the contact problem
is described by non-linear equation system, where coefficients are dependent
of the layer boundary coordinates. Both
systems are solved by adaptive method of solving the systems of algebraic (linear and nonlinear) equations. The coefficients
of system in contact problem are refined after each iteration.
The adaptive method being used
has the following features:
The solution of inverse
problem gives a block model with completely determined susceptibilities,
boundaries and modeled field. After
that, we can solve additional problem of finding layer-homogeneous model with
double number of layers. Each layer will be divided onto two sub-layers, assuming
that susceptibilities are constant within those sub-layers. The upper sub-layer
will be assigned minimal value from all the blocks making up the layer and the
bottom sub-layer will receive maximal. Then, a new boundary position will be
calculated so that summated magnetic moment from both blocks equaled that from
old block. It is also possible to manually choose susceptibilities of
sub-layers and boundary position. That new model can later be used as an
initial approximation for the contact problem. Finally, anomalous gravity field
Dg will be calculated.
The input data contain
information about model geometry, physical properties of medium, computation
variants and conditions and also some text information about researched field
and well logs. Each piece of data has a designation., which are used in table
descriptions and help system.
Two main types of input data
are scalars and arrays.
This type of parameter
represents a simple scalar value.
Tasks. This parameter can
assume four values:
As you can see, forward
problem will always be solved after inverse problem. If you set Iterations at
0, inverse problem solution will be skipped. It is a convenience feature, intended
for use with manual inverse problem solution. According to this method, you do
not compute model parameters, but change them manually. Of course, this method
can reasonably be used only for very simple task.
Number of…
Model parameters
Above parameters are
determining the dimensions of elementary blocks.
Object description – any
sequence of symbols no longer then 60 symbols.
Scale – any sequence of
symbols no longer then 60 symbols.
You can use these fields to
designate field name and scale of data.
Each of the following arrays
shown as a matrix of kp*kt dimensions. Value in square brackets shows a type of
task, for which this array applied.
ï –
forward
î –
inverse
ê –
contact
z[ïî] – Boundaries. Levels in
meters. Levels below sea level are negative numbers. First boundary - sensor
level, last - bottom of downmost layer.
kapx0[î] – Initial estimation of
susceptibilities. For inverse problem.
skap0[î] – Error estimations of
susceptibilities values. For inverse problem.
zx0[ê] – Initial estimation of
boundary coordinates. For contact problem.
sz[ê] – Error estimations
for boundary coordinates. For contact problem.
kap[ïê] – Susceptibilities (kappa).
Absolute or excessive values for each layer. Used in forward and contact
problem.
dt[îê] – Observed magnetic
field anomalies, nT. For inverse and contact problems.
dx_rk[îê] – Strengths of observed magnetic
field anomalies along X-axis, nT For inverse and contact problems.
dy_rk[îê] – Strengths of observed magnetic
field anomalies along Y-axis, nT For inverse and contact problems.
dz_rk[îê] – Strengths of observed magnetic
field anomalies along Z-axis, nT For inverse and contact problems.
s0[îê] – Mean square error of magnetic
field anomalies.
un[ïîê] – For each observation curve,
level (meters) for recalculating magnetic field anomalies from model estimated
as a result of inversion or contact problem. Levels below sea level are
negative numbers.
Fij – Background
susceptibilities. Must be set for each layer, if it is desirable to obtain
absolute (not excessive) susceptibilities. Otherwise, must be 0.
Typk – Curve type of
anomalious field. 0–curve not used, 1–DHx,2–DHy, 3–DHz, 4–Dt.
For joint interpretation of
magnetic and gravity data the following parameters must also be set:
Bk – ks constants (meters per
sec. per susceptibility unit).
Vk – ks constants (meters per
sec. per susceptibility unit).
Density for k-layer and
i,j-block is calculated as: ro[k,i,j] = bk[k]*ln(kap[k,i,j]) + vk[k].
Calculated densities are used
for forward gravity modeling. Computation can be performed either alongside
with forward problem solution, or by selecting Compute->Misc.
fij_gr – Background densities.
Must be set for each layer, if it is desirable to obtain absolute (not
excessive) densities.
You probably wonder what array
with strange name “---------“ in the list means. This is buffer array,
separating input data from output and can also be used for exchanging data
between arrays at will.
nevz[ïîê] – Mean square discrepancies
between observed dt and calculated from model obtained as a result of inversion
or contact problem.
kapx[î] – Susceptibilities, results of
inversion.
skapx – Susceptibility error
estimates obtained from inversion.
zx[ê] – Boundaries, results of contact problem
solving.
szx[k] – Boundary
coordinates error estimates. Obtained from contact problem.
dt[ï]– dt field values from forward
problem. Also, from a model obtained as a result of inversion or contact
problem.
Ðàçíîñòü
– Magnetic field error estimates (any problem)
dx_l[ï] – dT field values along X-axis,
obtained from the solution of forward problem. Also, from the forward modeling
of data from inverse or contact problem.
dz_l[ï] – dT field values along Z-axis,
obtained from the solution of forward problem. Also, from the forward modeling
of data from inverse or contact problem.
dy_l[ï] – dT field values along Y-axis,
obtained from the solution of forward problem. Also, from the forward modeling
of data from inverse or contact problem.
ro – Densities for each layer.
Excessive or absolute values. For forward gravity problem.
dg[ï] – dg field values, obtained from
forward modeling of gravity from results of inversion, converted to densities.
The main operating modes of
ADGM-3D are: creating, reading, editing and checking job files, running
computation and visualizing results.
Main menu is always available
in upper part of program window. There are 6 sub-menus: File, Orientation,
Compute, Settings and Help.
To edit scalar data, first
select Scalars tab from the main window. All data are divided onto several
groups.
Tasks. Select from pull-down
menu:
Note that changing task
changes also arrays used, so you should check Arrays tab and see if all arrays
used are set correctly.
Data description:
Object description – any
sequence of symbols no longer then 60 symbols. Scale – any sequence of symbols
no longer then 60 symbols. You can use these fields to designate field name and
scale of data. It will not affect the results.
Number of…
After editing, press
to apply changes. If any of the parameters will be marked red
after that, it means that parameter has not been set or has an illegal value.
Model parameters. These do not
affect array sizes, so there is no need to check arrays after editing.
If above are changed, the
model itself will be changed and you will need to run computation again.
Inner radius, outer radius
(meters). “Outer radius” controls the area for blocks participating in divider
computation. Outer radius must be greater then inner radius. If both radiuses
are greater then maximal diagonal size of the research area, computations will
be precise. Forward problem always computed exactly. It is better to keep inner
radius close to actual distance between observation points.
X normal component – the
strength of background magnetic field along X-axis, Oe.
Y normal component – the
strength of background magnetic field along Y-axis, Oe
Z normal component – the
strength of background magnetic field along Z-axis, Oe.
Iterations – number of
iterations for inverse or contact problem. Should be 1.
Coordinates – here you can see
data limits along X and Y axes. They are computed automatically. You can change
the coordinate origin by subtracting a value from all coordinates. Click
to move data to auxiliary window. To perform the subtraction,
click
or press “Enter”.
First, click the Arrays tab of
the main window. Select the array by its name from the Array drop-down list.
All arrays are 3-dimensional. Two dimensions contain data from rectangular
grid, sorted by profile number. Data for several levels of survey (from the
same lateral grid) can be present in one array. Select desired profile and
level from the drop-down lists.
Arrays are divided onto input
and output. The arrays above the divider array “-------“ in the Array list are
considered input. You can customize the order of arrays and their names in the
Settings->Basic Settings->Array Names window.
Select needed array slice from
the list Layer(boundaries). This slightly unusual name suggests that array can
contain data for the layer as well as data for the boundary.
On the right you can see a
group of buttons:

These are editing buttons,
affecting the whole layer.
|
|
Erase all data for all profiles
in this layer |
|
|
Add value from the Value
field to all data values in this layer |
|
|
Fill all profiles in the
layer with value from the Value field, overwriting old data |
|
|
Revert data sign for all
profiles in the layer |
|
|
Multiply data in all profiles
in the layer to value from the Value field |
Select needed profile from
drop-down menu. On the right you can see a group of buttons.

These buttons are for editing
data in selected profile.
|
|
Erase all data for all profiles in this layer |
|
|
Copy data from current profile to all profiles with smaller ordinal numbers |
|
|
Copy data from current
profile to all profiles with larger ordinal numbers |
|
|
Add value from the Value
field to all data values in this profile |
|
|
Fill current profile with
value from the Value field, overwriting old data |
|
|
Revert data sign for current
profile |
|
|
Multiply data in current
profile to value from the Value field |
|
|
Copy data from current
profile to clipboard |
|
|
Paste data from clipboard to
current profile |
Also, you can manually edit
values for each data point. Several shortcuts are provided:
|
|
Switch between text mode and
graphic mode editing. In graphic mode, data will be plotted and dragging the
point with the mouse can change value for any point. Layer, profile, pint
number and value are indicated in the status line. |
|
|
Calls the Array Operations window. You can add, subtract and copy
arrays. If size of the arrays differ, the size of the resulting array will be
smallest of the two. Adding arrays: select from the drop-down list array for storing
results and arrays which should be added, then click Subtracting arrays: select from the drop-down list array for storing
results and arrays participating in the operation, then click Copying arrays is similar to adding, only you don’t need to select the
second array. |
|
|
Calls the Layer
Break window. The selected layer will be broken onto two sublayers. The upper
sub-layer will be assigned minimal value from all the blocks making up the
layer and the bottom sub-layer will receive maximal. Then, a new boundary
position will be calculated so that summated magnetic moment from both blocks
equaled that from old block. |
The well log is represented as
set of blocks, each characterized with bottom boundary and magnetic
susceptibility. The upper boundary of the first block coincides with surface
and the upper boundaries of other blocks coincide with bottom boundary of upper
block.. Blocks beyond bottom boundary of the model are ignored.
To create a well log, activate
Logs tab of the main window. Number and user-defined name of the log will be
shown in Log field. Click Add to create new log. Edit the name of the log. This
name will be shown on all plots. Select the symbol for the log to show on maps
from the Designations drop-down. Input the coordinates of the well.
Blocks are created when you
click button Add near the Block drop-down list. For each, the following
parameters must be set: coordinate of bottom boundary, absolute depth marker
(bottom boundary of the well, relative to daylight surface, coordinates below
are negative numbers) and magnetic susceptibility.
Activate Images tab of the
main window to access graphic-related functions. You can make images of the sections, surfaces, plot various
parameters, combine several images into one and export them in bmp format. Use
Settings->Basic Settings->Graphic and various windows, accessed from
Windows menu.
The type of image can be
selected from drop-down list on the left. When the type selected, window
Graphics: Basic will show parameters related to this type of image. Types of
images are:
|
X |
Erase all
points in the section |
|
|
Erase last
point |
|
|
Make section
along the first profile |
|
|
Make section
through the first point of all profiles |
|
|
Move the
line in the direction of the arrows at he distance equal to the number in the
field. |
The Colors window serves for
setting up palette. Click the corresponding buttons for setting the colors of
isolines, dividers and fonts. Choose the preset palette from the drop-down
list. The default is the first one in alphabetic order.
You can switch between
“global” and “local” palettes. The local palette assigns colors from minimum to
maximum value of plotted parameter. If we change the level of data, the range
will automatically change. It is better for making up the details.
The global palette will seek
the maximum and minimum values in the entire data cube, so the palette will not
be changed from one slice to another.
Click button > to edit the
palette. This will call the Edit palette window. You can choose colors, save
and load the palettes and work with background textures.
Double-click the element of
the palette to change its color and texture.
Point at the element of the
palette, press and hold left mouse button, drag the mouse to some other element
of the palette and release mouse button. You will be prompted to select the
color for the first element, then for the second and after that the range
between them will be automatically filled up with a smooth gradation of colors.
When you are satisfied with
your palette choices, click Save as… button and save your palette. Click Apply
button to see how you picture look with new palette. Clicking Cancel button
will cancel the changes and close the Edit palette window. Do not forget to
Apply your changes before closing the window, or your changes will be lost.
The Graphics: Basic window
will be showing the parameters relevant to drawing the field and horizontal
section of the model.
You can also select a method
for visualizing – blocks, isolines or layers.
Note that after changing image
parameters, you should click Refresh button in the main window, or the image
could remain the same.
When you are satisfied with
image, you’ll probably want to save it for later viewing, embedding in your
documents or printing. You can either save the image you currently viewing as
Windows Bitmap file, or you can combine several images into one and the save
it.
To combine images, use
Graphics: Tools window. Click the Remember Image button in this window. Every
image will be assigned a number. Select New in the drop-down list to add a new
image to the set. After you have acquired a desired number of images, save them
by clicking Auto button of the Graphics: Tools window.
To save a single image, use
Save to file button of the main window. You will be prompted for filename.
Printing currently is somewhat
delicate matter. For professional printing, we recommend exporting images to
specialized packages. You can, however, print a draft for a quick analysis
using our package. Click the Print button in the main window. This will call
the Print window. You can select printer, adjust orientation justification and
zoom and embed a caption in the image. Finally, print the picture clicking the
Print button.
You can customize many
aspects. Use Settings->Basic settings command from the main menu to access
customization window.
Do not forget to Apply your
changes before closing the window.
The format of the grid file is
simple. It is a plain ASCII text file containing columns of numbers. First and
second columns are considered X and Y coordinates of data points, all other are
values of data. Use command File->Import and browse for the file. Data will
be checked for consistency (if this option isn’t turned off in the settings).
If all goes well, you will see window with 3D preview of data at the lower
right. The preview can be rotated with the mouse. Select the columns of data
and arrays for storing the data. The number of profiles and points will be
computed automatically (that’s why it is important to have X and Y coordinates
in the file). Click Create arrays. This will create arrays of needed size, but
will not store the data. You must click Apply to store imported data in the
arrays.
Note that data points must be
uniformly distributed along the rectangular grid. Non-numeric symbols are not
allowed in the file. A newline must be the last symbol in the file.
ü
Program does not start. Possible reasons:
o Read-only attribute set on the files.
Remove it.
o Too large max size of the picture
specified in settings. Remove *.ini file in the program directory to reset all
settings to defaults.
o Some files are missing or corrupted.
Reinstall the program.
o Close all non-needed applications.
Reboot Windows.
ü
Other errors do not exist, and if you’ll find them, do not believe your
eyes.
[1] The number of layers and blocks in
the layer is, in fact, limited by physical memory available. For example,
during the creation of the model of 1000x1000x1000 73 Gb of memory required
only for storing the model. Additionally no more than 8 mb. of memory is
required for the solution.