The purpose of this document is to give a quick overview of Rescue capabilities. Please send any comments concerning this document to rhanks@benchbuilt.com.

Rescue models are spatial definitions in some real-world coordinate system. Generally a local coordinate system is used. The local coordinate system is placed in a global context with a RescueVertex. The RescueVertex is a point described in a well-known coordinate system (such as a UTM, State Plane, or Geographic coordinate system) which is used as the origin of the local coordinate system.

A RESCUE model must have at least one RescueBlockUnit, and may have any number of them.

RESCUE models may be devided into blocks by vertical surfaces which cut thru the entire model. They may also be devided into units by horizontal surfaces which similarly cut thru the entire model. Because internal surfaces and sections are supported, the modeler is not obliged to devide the model into multiple blocks or multiple units.

At root, a RescueBlockUnit is a business object, and the model builder may decide how many to have.

All surfaces in RESCUE models, whether
horizontal or vertical, are described by a two dimensional grid, with an xyz triplet for each node
of the grid. Surfaces which are regular in one or two directions require less storage. Rescue can
store the coefficients for the formula `x = origin + step * gridNode` and derive triplet values at
runtime.

A RescueBlockUnit describes the volume at the intersection of one RescueBlock with one RescueUnit. The RescueBlockUnit is gridded with a three dimensional logical grid and an x,y,z triplet can be derived for each i,j,k node of the grid.

The volume x,y,z triplets may be in the model coordinate system, or in a related coordinate system which is derived by rotating the model coordinate system about a point in space. Rotation is used to save coordinate space. When the x or y element of a triplet can be derived by the simple formula

`
x = origin + step * i ` or ` y = origin + step * j
`

then the x and/or y triplet does not have to be stored in the model.

Rescue has several different schemes for defining block unit grid (BUG) xyz triplets. If top and bottom reference surfaces are available, the individual k layers can be determined by placing them proportionally between the surfaces.

This can be seen more clearly in 3d if your browser is enabled.

Similarly, with one surface the z values may be calculated by offsetting from that surface, placed either above or below the BUG, as seen below.

Again, the effect is more clear in 3d.

If conformal grids are desired, the BUG can be selectively modified to add additional complexity to the model. As described under RescueGeometry, each i,j node of the grid which requires further refinement may be defined as one of four alternate types, RescueZStack, RescueCoordinateLine, RescueCoordinatePolyLine, or RescueSplitLine. The figure below shows a grid which uses all four types.

The figure (without annotation) is more clearly viewed in 3d.

The block unit grid is termed the "micro model" because it assigns properties at a small scale. Any number of properties may be assigned to each cell of the BUG. Properties are identified by name, type, and unit of measure. The user can assign a floating point value, a string (using a lookup table) or a two-dimensional floating point table. The table can be used to describe properties which are in the form y=f(x). Properties allow both calculation and visualization.

The Macro Model defines the shape of structures within the model. Each RescueBlockUnit has at least one, and may have several RescueMacroVolume descriptions. Each of these descriptions defines a single contiguous volume. Consider the following block unit grid, which shows two distinct volumes...

3d.

For each RescueMacroVolume there is a RescueEdgeSet for each k layer of the grid. This edge set defines a trim loop around the k layer to further define the exact edge of the volume (useful for non-conformal grids) and interior edges to show where sections cut thru the grid. The boundary grids only are shown in this illustration.

3d.

Macro models are delimited top and bottom by the surfaces which lie above and below the volumes. Note that in this example the area between the two volumes is pinched out, so that the top and bottom surfaces come into contact in the middle of the block unit.

3d.

Macro models are delimited around their sides by RescueSections which enclose the space.

3d.

RescueTrimLoops delimit the area of the sides against the RescueBlockUnitSides defined for each volume.

The modeler may also define which cells of the block unit grid contact which faces of the delimiting surfaces.

Rescue tracks the position of wellbores that traverse or TD in the model.

In addition to the geometry, Rescue can store a variety of properties for each wellbore. The property types are the same as those supported for block unit grids. Floating point values can be sampled at intervals like a normal log. A table of floating point values can store functions in the form y = f(x) like an acoustic log. The string type can record picks and shows.

The modeler may also define which cells of block unit grids each wellbore traverses, and which faces of which surfaces the wellbore penetrates.