API / geotoolkit3d / data / reservoir / hexahedral / ReservoirData / ReservoirData
hexahedral.ReservoirData.ReservoirData
Type Aliases
Ƭ 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: Object
This object contains the cell geometric values.
| Name | Type | Description |
|---|---|---|
ijk | number[] | The ijk index of the cell. |
x | number[] | The x values of the 8 cell corners. |
y | number[] | The y values of the 8 cell corners. |
z | number[] | The z values of the 8 cell corners. |
Ƭ 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).
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| Name | Type | Description |
|---|---|---|
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. |
ijk | IJKArray | The 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? | Float32Array | The 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). |
x | Float32Array | The X coordinates of each cell vertices, stored in a typed array. There must be 8 contiguous X coordinates for each cell in the reservoir. |
y | Float32Array | The Y coordinates of each cell vertices, stored in a typed array. There must be 8 contiguous Y coordinates for each cell in the reservoir. |
z | Float32Array | The 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: Object
The structure for setting cells values.
Must at least contain either values or additional data.
| Name | Type | Description |
|---|---|---|
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? | IJKArray | The 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? | Float32Array | The values of each cell to update, in a typed array. Must include either:
|
Ƭ IJKArray: Int16Array | Uint16Array | Uint32Array
Ƭ Options: Object
| Name | Type | Description |
|---|---|---|
cellsdata | CellsDataArrays | The 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? | boolean | If 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? | number | The value to be used when a cell has no value, default is -999.25. |
Ƭ ReservoirMetaData: MetaData & { maxi: number ; maxj: number ; maxk: number ; maxvalue: number ; mini: number ; minj: number ; mink: number ; minvalue: number ; nullvalue: number ; numijk: IJKIndex }