Skip to content

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

Class: ReservoirData

hexahedral.ReservoirData.ReservoirData

This class host the Reservoir data using hexahedral (8 corner per cell) cell structure.<br> One value per cell can be added for both filtering and render coloration purpose.<br> Additionally, multiple additional data can be defined per cell to be used along user-defined filters, allowing for very customizable cell filtering.<br> The cell data format expected by the ReservoirData constructor:<ul> <li>The reservoir data format require 8 vertices per cell.</li> <li>Cells do not need to be cubes or have parallel faces.</li> <li>Neighboring cells do not need to share the same corners (useful to represent faults).</li> </ul> The geometrical data are expected in a regular order, see example<br> x values are [xA, xB, xC, xD, xE, xF, xG, xH],<br> y values are [yA, ..., yH]<br> and z values are [zA, ..., zH]<br>

Example

I |------&gt;

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

Hierarchy

Table of contents

Constructors
  • [new ReservoirData(options)](/solutions/geotoolkit/GeoToolkit_JS/apis/classes/geotoolkit3d.data-8.reservoir-1.hexahedral.reservoirdata.reservoirdata.md#new reservoirdata(options))
Methods

Contents

Constructors

new ReservoirData(options)

• new ReservoirData(options)

Parameters

Name Type
optionsOptions

Overrides

AbstractReservoirData.constructor

Methods

computeCellsVolume

▸ computeCellsVolume(): void

Compute the reservoir cells volume, and enable volume data in ReservoirData#getCellData() method.

Returns

void


dispose

▸ dispose(): void

Dispose this reservoir data to allow for garbage collection.

Returns

void


getCellData

▸ getCellData(ijk): CellData

Returns the Cell Data from the given IJK index.

Parameters

Name Type Description
ijknumber[] | IJKIndexthe ijk position of the cell data to retrieve.

Returns

CellData

the cell data, or null if the cell is not found.


getCellDataByIndex

▸ getCellDataByIndex(index): CellData

Returns the Cell Data from the given cell index.

Parameters

Name Type Description
indexnumberthe index of the cell data to retrieve.

Returns

CellData

the cell data, or null if the cell is not found.


getCellIJKbyIndex

▸ getCellIJKbyIndex(index): [i: number, j: number, k: number]

Return the IJK index of the cell identified by the given position in the reservoir.

Parameters

Name Type Description
indexnumberthe cell index in the reservoir. Index start at 0, and must be inferior to the total number of cells.

Returns

[i: number, j: number, k: number]


getCellTetrahedronIndices

▸ getCellTetrahedronIndices(): number[][]

Define the vertices repartition for turning a cell into individual convex tetrahedrons.<br> Divide the cell into 6 tetrahedrons and return the indices, used for intersections.

Example

0 ------- 1
|\        |\
| \       | \
|  2 ------- 3
4 -|----- 5  |
\ |       \ |
\|        \|
6 ------- 7

Returns

number[][]


getCellTriangleIndices

▸ getCellTriangleIndices(): number[]

Return the sequence of point indices to draw the cell triangles.<br> Will return an array of 36 indices (6 faces * 2 triangle * 3points) where each index is a number between 0 and 7 which correspond to the cell corners from A to H.

Example

0 ------- 1
|\        |\
| \       | \
|  2 ------- 3
4 -|----- 5  |
\ |       \ |
\|        \|
6 ------- 7

Returns

number[]


getClassName

▸ getClassName(): string

Returns

string

Inherited from

AbstractReservoirData.getClassName


getIJKCount

▸ getIJKCount(): IJKIndex

Returns the ijk count for this reservoir data.

Returns

IJKIndex


getIndexForCell

▸ getIndexForCell(i, j, k): number

Returns the index for the reservoir cell based on the given i j k index

Parameters

Name Type
inumber
jnumber
knumber

Returns

number

index for this i j k cell (null if the cell doesn't exist)


getMetaData

▸ getMetaData(): ReservoirMetaData

Returns the metadata of the grid

Returns

ReservoirMetaData

Overrides

AbstractReservoirData.getMetaData


getNumberOfCells

▸ getNumberOfCells(): number

Returns the number of cells in the data object.

Returns

number

number of cells

Overrides

AbstractReservoirData.getNumberOfCells


getReservoirFullVolume

▸ getReservoirFullVolume(): number

Returns the total volume measure of this reservoir.<br> Computed by the sum of the volume of every cells, filters are ignored.<br> The unit of the volume measurement is based on the unit used in cells coordinates, to user discretion. (ex: if cells coordinates are in meters, then the volume will be in cubic meters. If feet, then cubic feet, and so on.)

Returns

number


isCellIndexValid

▸ isCellIndexValid(index): boolean

Return true if the given cell index match an existing cell, false if not. Ignore user filters.

Parameters

Name Type Description
indexnumberthe cell index to check the validity of.

Returns

boolean

true if the cell index is valid, false if the index is out of bounds.


checkDuplicateIJK

▸ Static checkDuplicateIJK(ijk): void

This utility will check for duplicate IJK indices in the reservoirData.<br> Each cell must have an identical IJK index, this tool is made to verify this.<br> Depending on the number of cells this can be VERY slow, so please use only when debugging.

Parameters

Name Type Description
ijkIJKArraythe IJK typed array.

Returns

void


getClassName

▸ Static getClassName(): string

Returns

string

Inherited from

AbstractReservoirData.getClassName