Last updated

API / geotoolkit3d / data / reservoir / hexahedral / ReservoirData / ReservoirData

Namespace: ReservoirData

hexahedral.ReservoirData.ReservoirData

Table of contents

Type Aliases

Contents

Type Aliases

CellData

Ƭ CellData: CellPosition & { additionalcelldata?: Record<string, any> ; bound: number[] ; ijk: number[] ; index: IJKIndex | number[] ; value: number ; volume?: number }

The object holding the cell data, or null if the cell is not found.


CellPosition

Ƭ CellPosition: Object

This object contains the cell geometric values.

Type declaration

NameTypeDescription
ijknumber[]The ijk index of the cell.
xnumber[]The x values of the 8 cell corners.
ynumber[]The y values of the 8 cell corners.
znumber[]The z values of the 8 cell corners.

CellsDataArrays

Ƭ CellsDataArrays: Object

The cell data format expected by the ReservoirData constructor:

  • The reservoir data format require 8 vertices per cell.
  • Cells do not need to be cubes or have parallel faces.
  • Neighboring cells do not need to share the same corners (useful to represent faults).
The geometrical data are expected in a regular order, see example
x values are [xA, xB, xC, xD, xE, xF, xG, xH],
y values are [yA, ..., yH]
and z values are [zA, ..., zH]

Example

I |------>

A ------- B            __
|\        |\            \
| \       | \            \  J
|  C ------- D     _      v
E -|----- F  |     |
\ |       \ |     | K
\|        \|     |
G ------- H     v

Type declaration

NameTypeDescription
additionalcelldata?Record<string, any[] | TypedArray>Additional cell properties, which can be used together with user-defined Reservoir filter.
Each additional property consist of a named field containing an Arraylike object (Javascript array, TypedArray, etc).
Each of these array should have one value for each cell, in the correct order.
We suggest using TypedArrays such as (but not limited to) Float32Array when using very large reservoirs, to reduce the memory footprint.
ijkIJKArrayThe IJK indices of each cell, stored in a typed array.
There must be 3 contiguous values (i, j and k) for each cell in the reservoir.
values?Float32ArrayThe value of each cell, stored in a typed array.
This array is optional and can be added later through the ReservoirGrid.
If defined, there must be one value for each cell in the reservoir, even if the cell has no value (see nullvalue).
xFloat32ArrayThe X coordinates of each cell vertices, stored in a typed array.
There must be 8 contiguous X coordinates for each cell in the reservoir.
yFloat32ArrayThe Y coordinates of each cell vertices, stored in a typed array.
There must be 8 contiguous Y coordinates for each cell in the reservoir.
zFloat32ArrayThe Z coordinates of each cell vertices, stored in a typed array.
There must be 8 contiguous Z coordinates for each cell in the reservoir.

CellsValues

Ƭ CellsValues: Object

The structure for setting cells values.
Must at least contain either values or additional data.

Type declaration

NameTypeDescription
additionalcelldata?Record<string, any[] | TypedArray>Additional cell properties, which can be used together with user-defined Reservoir filter.
Each additional property consist of a named field containing an Arraylike object (either a regular array or Typed array).
As with the values option, if IJKs are not provided, additionaldata array is expected to match the size and order of existing cells.
We advise using TypedArrays such as Float32Array or even Uint 16/8 bit when possible when using very large reservoirs, to reduce the memory footprint.
ijk?IJKArrayThe IJK indices of the cells to update the values of.
Contains the indices in a contiguous typed array in this fashion: [i1, j1, k1, i2, j2, k2,...]
Only necessary if the "values" field or "additionalcelldata" is not in the same order the cells were created originally, or if only a subset of cells are updated.
values?Float32ArrayThe values of each cell to update, in a typed array.
Must include either:
  • All values of each cells in the same order the cells were created ("ijk" must not be specified).
  • Only the necessary values to update ("ijk" field is required)

IJKArray

Ƭ IJKArray: Int16Array | Uint16Array | Uint32Array


Options

Ƭ Options: Object

Type declaration

NameTypeDescription
cellsdataCellsDataArraysThe structure holding the cells data (xyz coordinates, ijk indices, and optional values).
This is the recommended format to provide cells data, as providing cells in typed array is much more efficient from a memory/performance perspective than the legacy structure.
computecellsvolume?booleanIf true, precompute the cells volume. Can be computed later using ReservoirData#computeCellsVolume().
Volume can then be obtained using ReservoirData#getReservoirFullVolume(), or per cell through ReservoirData#getCellData(cellIndex).volume.
nullvalue?numberThe value to be used when a cell has no value, default is -999.25.

ReservoirMetaData

Ƭ ReservoirMetaData: MetaData & { maxi: number ; maxj: number ; maxk: number ; maxvalue: number ; mini: number ; minj: number ; mink: number ; minvalue: number ; nullvalue: number ; numijk: IJKIndex }