Institute of the computational modeling SB RAN

 

 

 

 

 

 

ADM–3D

 

The software for the solution of the forward and inverse three-dimensional and two-dimensional problems of magnetometry

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Krasnoyarsk 2003


General info   2

Algorithm    2

Input data   3

Scalars  3

Data description   4

Input arrays  5

Output arrays  5

Operating manual   6

Main menu   6

Editing scalar data   7

Working with array data   8

Working with well logs  9

Working with images  9

Printing   12

Configuration   12

Importing data from grid file   12

Troubleshooting   13

 


 

General info

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.

Algorithm

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.

Input data

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.

Scalars

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.

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.

Input arrays

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.

Output arrays

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.

 

Operating manual

The main operating modes of ADGM-3D are: creating, reading, editing and checking job files, running computation and visualizing results.

Main menu

Main menu is always available in upper part of program window. There are 6 sub-menus: File, Orientation, Compute, Settings and Help.

Editing scalar data

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”.

Working with array data

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 once.

Subtracting arrays: select from the drop-down list array for storing results and arrays participating in the operation, then click once.

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.

 

Working with well logs

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.

Working with images

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

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.

Configuration

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.

Importing data from grid file

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.

Troubleshooting

ü      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.