Fesapi
2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates. Adjacent cell corner are supposed to be located the same so they are not repeated unless you define split lines or split nodes. More...
#include <IjkGridExplicitRepresentation.h>
Public Member Functions | |
virtual | ~IjkGridExplicitRepresentation ()=default |
void | getXyzPointsOfKInterfaceSequence (unsigned int kInterfaceStart, unsigned int kInterfaceEnd, double *xyzPoints) override |
Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS. More... | |
void | getXyzPointsOfBlock (double *xyzPoints) override |
Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded. More... | |
virtual void | setGeometryAsCoordinateLineNodes (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, double *points, eml2::AbstractHdfProxy *proxy=nullptr, unsigned long splitCoordinateLineCount=0, unsigned int *pillarOfCoordinateLine=nullptr, unsigned int *splitCoordinateLineColumnCumulativeCount=nullptr, unsigned int *splitCoordinateLineColumns=nullptr, char *definedPillars=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0 |
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage, Technical guide and Enterprise Architect diagrams for details. More... | |
virtual void | setGeometryAsCoordinateLineNodesUsingExistingDatasets (gsoap_resqml2_0_1::resqml20__PillarShape mostComplexPillarGeometry, gsoap_resqml2_0_1::resqml20__KDirection kDirectionKind, bool isRightHanded, const std::string &points, eml2::AbstractHdfProxy *proxy=nullptr, unsigned long splitCoordinateLineCount=0, const std::string &pillarOfCoordinateLine="", const std::string &splitCoordinateLineColumnCumulativeCount="", const std::string &splitCoordinateLineColumns="", const std::string &definedPillars="", resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0 |
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage, Technical guide and Enterprise Architect diagrams for details. Same as setGeometryAsCoordinateLineNodes where the hdf datasets are already written in the the file. More... | |
bool | isNodeGeometryCompressed () const final |
geometryKind | getGeometryKind () const final |
Public Member Functions inherited from resqml2::AbstractIjkGridRepresentation | |
AbstractIjkGridRepresentation (common::DataObjectRepository *repo, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr) | |
AbstractIjkGridRepresentation (resqml2::AbstractFeatureInterpretation *interp, const std::string &guid, const std::string &title, unsigned int iCount, unsigned int jCount, unsigned int kCount, bool *kGaps=nullptr, eml2::AbstractHdfProxy *proxy=nullptr) | |
AbstractIjkGridRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject, bool withTruncatedPillars=false) | |
virtual | ~AbstractIjkGridRepresentation () |
unsigned int | getICellCount () const |
void | setICellCount (unsigned int iCount) |
unsigned int | getJCellCount () const |
void | setJCellCount (unsigned int jCount) |
Sets the count of cells in the J direction. More... | |
uint64_t | getCellCount () const final |
unsigned int | getColumnCount () const |
unsigned int | getPillarCount () const |
unsigned int | getKGapsCount () const |
void | getKGaps (bool *kGaps) const |
unsigned int | getFaceCount () const |
unsigned int | getIPillarFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getJPillarFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getGlobalIndexPillarFromIjIndex (unsigned int iPillar, unsigned int jPillar) const |
unsigned int | getIColumnFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getJColumnFromGlobalIndex (unsigned int globalIndex) const |
unsigned int | getGlobalIndexColumnFromIjIndex (unsigned int iColumn, unsigned int jColumn) const |
unsigned int | getGlobalIndexCellFromIjkIndex (unsigned int iCell, unsigned int jCell, unsigned int kCell) const |
bool | isRightHanded () const |
void | getPillarsOfSplitCoordinateLines (unsigned int *pillarIndices, bool reverseIAxis=false, bool reverseJAxis=false) const |
void | getColumnsOfSplitCoordinateLines (unsigned int *columnIndices, bool reverseIAxis=false, bool reverseJAxis=false) const |
void | getColumnCountOfSplitCoordinateLines (unsigned int *columnIndexCountPerSplitCoordinateLine) const |
unsigned long | getSplitCoordinateLineCount () const |
unsigned long | getBlockSplitCoordinateLineCount () const |
uint64_t | getSplitNodeCount () const |
void | getPillarGeometryIsDefined (bool *pillarGeometryIsDefined, bool reverseIAxis=false, bool reverseJAxis=false) const |
bool | hasEnabledCellInformation () const |
void | getEnabledCells (bool *enabledCells, bool reverseIAxis=false, bool reverseJAxis=false, bool reverseKAxis=false) const |
void | setEnabledCells (unsigned char *enabledCells, eml2::AbstractHdfProxy *proxy=nullptr) |
void | loadSplitInformation () |
void | loadBlockInformation (unsigned int iInterfaceStart, unsigned int iInterfaceEnd, unsigned int jInterfaceStart, unsigned int jInterfaceEnd, unsigned int kInterfaceStart, unsigned int kInterfaceEnd) |
void | unloadSplitInformation () |
bool | isColumnEdgeSplitted (unsigned int iColumn, unsigned int jColumn, unsigned int edge) const |
Checks either a given column edge is splitted or not. This method requires that you have already loaded the split information. More... | |
uint64_t | getXyzPointIndexFromCellCorner (unsigned int iCell, unsigned int jCell, unsigned int kCell, unsigned int corner) const |
Gets the XYZ point index in the HDF dataset from the corner of a cell. This method requires that you have already loaded the split information. More... | |
void | getXyzPointOfBlockFromCellCorner (unsigned int iCell, unsigned int jCell, unsigned int kCell, unsigned int corner, const double *xyzPoints, double &x, double &y, double &z) const |
Gets the x, y and z values of the corner of a cell of a given block. This method requires that you have already both loaded the block information and get the geometry of the block thanks to getXyzPointsOfBlock(). More... | |
uint64_t | getXyzPointCountOfKInterface () const |
uint64_t | getXyzPointCountOfBlock () const |
void | getXyzPointsOfKInterface (unsigned int kInterface, double *xyzPoints) |
gsoap_resqml2_0_1::resqml20__KDirection | getKDirection () const override |
virtual common::DataObjectReference | getHdfProxyDor () const override |
Gets the data object reference of the HDF proxy which is used for storing the numerical values of this representation (i.e. its geometry). More... | |
virtual uint64_t | getXyzPointCountOfPatch (unsigned int patchIndex) const override |
virtual void | getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const override |
Gets all the xyz points of a particular patch of this representation. xyz points are given in the local CRS. More... | |
std::string | getXmlTag () const final |
unsigned int | getPatchCount () const override |
virtual std::string | getXmlNamespace () const override |
Public Member Functions inherited from resqml2::AbstractColumnLayerGridRepresentation | |
virtual | ~AbstractColumnLayerGridRepresentation ()=default |
unsigned int | getKCellCount () const |
void | setKCellCount (unsigned int kCount) |
void | setIntervalAssociationWithStratigraphicOrganizationInterpretation (uint64_t *stratiUnitIndices, uint64_t nullValue, resqml2::AbstractStratigraphicOrganizationInterpretation *stratiOrgInterp, eml2::AbstractHdfProxy *hdfProxy=nullptr) |
common::DataObjectReference | getStratigraphicOrganizationInterpretationDor () const final |
bool | hasIntervalStratigraphicUnitIndices () const |
uint64_t | getIntervalStratigraphicUnitIndices (uint64_t *stratiUnitIndices) |
gsoap_resqml2_0_1::resqml20__PillarShape | getMostComplexPillarGeometry () const |
Public Member Functions inherited from resqml2::AbstractGridRepresentation | |
virtual | ~AbstractGridRepresentation ()=default |
std::vector< class GridConnectionSetRepresentation * > | getGridConnectionSetRepresentationSet () const |
unsigned int | getGridConnectionSetRepresentationCount () const |
class GridConnectionSetRepresentation * | getGridConnectionSetRepresentation (unsigned int index) const |
AbstractGridRepresentation * | getParentGrid () const |
common::DataObjectReference | getParentGridDor () const |
std::vector< resqml2::AbstractGridRepresentation * > | getChildGridSet () const |
unsigned int | getChildGridCount () const |
AbstractGridRepresentation * | getChildGrid (unsigned int index) const |
void | setParentWindow (uint64_t *cellIndices, uint64_t cellIndexCount, class UnstructuredGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr) |
void | setParentWindow (unsigned int *columnIndices, unsigned int columnIndexCount, unsigned int kLayerIndexRegridStart, unsigned int *childCellCountPerInterval, unsigned int *parentCellCountPerInterval, unsigned int intervalCount, class AbstractColumnLayerGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *childCellWeights=nullptr) |
void | setParentWindow (unsigned int iCellIndexRegridStart, unsigned int *childCellCountPerIInterval, unsigned int *parentCellCountPerIInterval, unsigned int iIntervalCount, unsigned int jCellIndexRegridStart, unsigned int *childCellCountPerJInterval, unsigned int *parentCellCountPerJInterval, unsigned int jIntervalCount, unsigned int kCellIndexRegridStart, unsigned int *childCellCountPerKInterval, unsigned int *parentCellCountPerKInterval, unsigned int kIntervalCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr) |
void | setParentWindow (unsigned int iCellIndexRegridStart, unsigned int constantChildCellCountPerIInterval, unsigned int constantParentCellCountPerIInterval, unsigned int iIntervalCount, unsigned int jCellIndexRegridStart, unsigned int constantChildCellCountPerJInterval, unsigned int constantParentCellCountPerJInterval, unsigned int jIntervalCount, unsigned int kCellIndexRegridStart, unsigned int constantChildCellCountPerKInterval, unsigned int constantParentCellCountPerKInterval, unsigned int kIntervalCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr) |
Indicates that this grid takes place into another IJK parent grid. This method assumes that the count of cells per regrid interval is constant in both child and parent grids. More... | |
void | setParentWindow (unsigned int iCellIndexRegridStart, unsigned int iChildCellCount, unsigned int iParentCellCount, unsigned int jCellIndexRegridStart, unsigned int jChildCellCount, unsigned int jParentCellCount, unsigned int kCellIndexRegridStart, unsigned int kChildCellCount, unsigned int kParentCellCount, class AbstractIjkGridRepresentation *parentGrid, eml2::AbstractHdfProxy *proxy=nullptr, double *iChildCellWeights=nullptr, double *jChildCellWeights=nullptr, double *kChildCellWeights=nullptr) |
void | setForcedNonRegridedParentCell (uint64_t *cellIndices, uint64_t cellIndexCount) |
void | setCellOverlap (uint64_t parentChildCellPairCount, uint64_t *parentChildCellPair, const std::string &volumeUom, double *overlapVolumes=nullptr) |
int64_t | getParentCellIndexCount () const |
void | getParentCellIndices (uint64_t *parentCellIndices) const |
int64_t | getParentColumnIndexCount () const |
void | getParentColumnIndices (uint64_t *parentColumnIndices) const |
uint64_t | getRegridStartIndexOnParentGrid (char dimension) const |
uint64_t | getRegridIntervalCount (char dimension) const |
bool | isRegridCellCountPerIntervalConstant (char dimension, bool childVsParentCellCount) const |
uint64_t | getRegridConstantCellCountPerInterval (char dimension, bool childVsParentCellCount) const |
void | getRegridCellCountPerInterval (char dimension, uint64_t *childCellCountPerInterval, bool childVsParentCellCount) const |
bool | hasRegridChildCellWeights (char dimension) const |
void | getRegridChildCellWeights (char dimension, double *childCellWeights) const |
bool | hasForcedNonRegridedParentCell () const |
void | setCellAssociationWithStratigraphicOrganizationInterpretation (uint64_t *stratiUnitIndices, uint64_t nullValue, class AbstractStratigraphicOrganizationInterpretation *stratiOrgInterp) |
class AbstractStratigraphicOrganizationInterpretation * | getStratigraphicOrganizationInterpretation () const |
bool | hasCellStratigraphicUnitIndices () const |
uint64_t | getCellStratigraphicUnitIndices (uint64_t *stratiUnitIndices) |
void | setCellAssociationWithRockFluidOrganizationInterpretation (uint64_t *rockFluidUnitIndices, uint64_t nullValue, class RockFluidOrganizationInterpretation *rockFluidOrgInterp) |
class RockFluidOrganizationInterpretation * | getRockFluidOrganizationInterpretation () const |
virtual common::DataObjectReference | getRockFluidOrganizationInterpretationDor () const |
bool | hasCellFluidPhaseUnitIndices () const |
uint64_t | getCellFluidPhaseUnitIndices (uint64_t *rockfluidUnitIndices) |
bool | isTruncated () const |
uint64_t | getTruncatedFaceCount () const |
void | getNodeIndicesOfTruncatedFaces (uint64_t *nodeIndices) const |
void | getCumulativeNodeCountPerTruncatedFace (uint64_t *nodeCountPerFace) const |
void | getNodeCountPerTruncatedFace (uint64_t *nodeCountPerFace) const |
uint64_t | getTruncatedCellCount () const |
void | getTruncatedCellIndices (uint64_t *cellIndices) const |
void | getTruncatedFaceIndicesOfTruncatedCells (uint64_t *faceIndices) const |
void | getCumulativeTruncatedFaceCountPerTruncatedCell (uint64_t *cumulativeFaceCountPerCell) const |
void | getTruncatedFaceCountPerTruncatedCell (uint64_t *faceCountPerCell) const |
void | getNonTruncatedFaceIndicesOfTruncatedCells (uint64_t *faceIndices) const |
void | getCumulativeNonTruncatedFaceCountPerTruncatedCell (uint64_t *cumulativeFaceCountPerCell) const |
void | getNonTruncatedFaceCountPerTruncatedCell (uint64_t *faceCountPerCell) const |
void | getTruncatedFaceIsRightHanded (unsigned char *cellFaceIsRightHanded) const |
void | loadTargetRelationships () |
Public Member Functions inherited from resqml2::AbstractRepresentation | |
virtual | ~AbstractRepresentation ()=default |
class AbstractLocal3dCrs * | getLocalCrs (unsigned int patchIndex) const |
virtual common::DataObjectReference | getLocalCrsDor (unsigned int patchIndex) const |
std::vector< class AbstractProperty * > | getPropertySet () const |
void | setInterpretation (class AbstractFeatureInterpretation *interp) |
class AbstractFeatureInterpretation * | getInterpretation () const |
common::DataObjectReference | getInterpretationDor () const |
uint64_t | getXyzPointCountOfAllPatches () const |
void | getXyzPointsOfPatchInGlobalCrs (unsigned int patchIndex, double *xyzPoints) const |
Gets all the xyz points of a particular patch of this representation. xyz points are given in the global CRS. More... | |
void | getXyzPointsOfAllPatches (double *xyzPoints) const |
Gets all the xyz points of all patches of this representation. xyz points are given in the local CRS. More... | |
bool | isInSingleLocalCrs () const |
bool | isInSingleGlobalCrs () const |
void | getXyzPointsOfAllPatchesInGlobalCrs (double *xyzPoints) const |
AbstractRepresentation * | getSeismicSupportOfPatch (const unsigned int &patchIndex) const |
std::set< AbstractRepresentation * > | getAllSeismicSupport () const |
void | pushBackIntoRepresentationSet (class RepresentationSetRepresentation *repSet) |
void | addSeismic3dCoordinatesToPatch (unsigned int patchIndex, double *inlines, double *crosslines, unsigned int pointCount, resqml2::AbstractRepresentation *seismicSupport, eml2::AbstractHdfProxy *proxy) |
void | addSeismic3dCoordinatesToPatch (unsigned int patchIndex, double startInline, double incrInline, unsigned int countInline, double startCrossline, double incrCrossline, unsigned int countCrossline, resqml2::AbstractRepresentation *seismicSupport) |
void | addSeismic2dCoordinatesToPatch (unsigned int patchIndex, double *lineAbscissa, resqml2::AbstractRepresentation *seismicSupport, eml2::AbstractHdfProxy *proxy) |
void | getSeismicLineAbscissaOfPointsOfPatch (unsigned int patchIndex, double *values) const |
void | getInlinesOfPointsOfPatch (unsigned int patchIndex, double *values) const |
void | getCrosslinesOfPointsOfPatch (unsigned int patchIndex, double *values) const |
Public Member Functions inherited from common::AbstractObject | |
bool | isPartial () const |
virtual bool | isTopLevelElement () const |
std::string | getUuid () const |
std::string | getTitle () const |
std::string | getEditor () const |
time_t | getCreation () const |
tm | getCreationAsTimeStructure () const |
std::string | getOriginator () const |
std::string | getDescription () const |
time_t | getLastUpdate () const |
tm | getLastUpdateAsTimeStructure () const |
std::string | getFormat () const |
std::string | getDescriptiveKeywords () const |
std::string | getVersion () const |
void | setTitle (const std::string &title) |
void | setEditor (const std::string &editor) |
void | setCreation (time_t creation) |
void | setCreation (const tm &creation) |
void | setOriginator (const std::string &originator) |
void | setDescription (const std::string &description) |
void | setLastUpdate (time_t lastUpdate) |
void | setLastUpdate (const tm &lastUpdate) |
void | setDescriptiveKeywords (const std::string &descriptiveKeywords) |
void | setVersion (const std::string &version) |
void | setMetadata (const std::string &title, const std::string &editor, time_t creation, const std::string &originator, const std::string &description, time_t lastUpdate, const std::string &descriptiveKeywords) |
void | serializeIntoStream (std::ostream *stream) |
void | setGsoapProxy (gsoap_resqml2_0_1::eml20__AbstractCitedDataObject *gsoapProxy) |
void | setGsoapProxy (gsoap_eml2_1::eml21__AbstractObject *gsoapProxy) |
gsoap_resqml2_0_1::eml20__AbstractCitedDataObject * | getEml20GsoapProxy () const |
gsoap_eml2_1::eml21__AbstractObject * | getEml21GsoapProxy () const |
gsoap_eml2_2::eml22__AbstractObject * | getEml22GsoapProxy () const |
void | setGsoapProxy (gsoap_eml2_2::eml22__AbstractObject *gsoapProxy) |
gsoap_eml2_3::eml23__AbstractObject * | getEml23GsoapProxy () const |
void | setGsoapProxy (gsoap_eml2_3::eml23__AbstractObject *gsoapProxy) |
soap * | getGsoapContext () const |
int | getGsoapType () const |
gsoap_resqml2_0_1::eml20__DataObjectReference * | newResqmlReference () const |
gsoap_eml2_1::eml21__DataObjectReference * | newEmlReference () const |
gsoap_eml2_2::eml22__DataObjectReference * | newEml22Reference () const |
gsoap_eml2_3::eml23__DataObjectReference * | newEml23Reference () const |
gsoap_resqml2_0_1::resqml20__ContactElementReference * | newContactElementReference2_0_1 () const |
gsoap_eml2_3::resqml22__ContactElement * | newContactElementReference2_2 () const |
common::DataObjectRepository * | getRepository () const |
virtual std::string | getXmlNamespaceVersion () const |
virtual std::string | getContentType () const |
virtual std::string | getQualifiedType () const |
virtual std::string | getPartNameInEpcDocument () const |
std::string | serializeIntoString () |
void | addAlias (const std::string &authority, const std::string &title) |
unsigned int | getAliasCount () const |
std::string | getAliasAuthorityAtIndex (unsigned int index) const |
std::string | getAliasTitleAtIndex (unsigned int index) const |
std::vector< eml2::Activity * > | getActivitySet () const |
unsigned int | getActivityCount () const |
eml2::Activity * | getActivity (unsigned int index) const |
void | pushBackExtraMetadata (const std::string &key, const std::string &value) |
std::unordered_map< std::string, std::string > | getExtraMetadataSet () const |
std::vector< std::string > | getExtraMetadata (const std::string &key) const |
unsigned int | getExtraMetadataCount () const |
std::string | getExtraMetadataKeyAtIndex (unsigned int index) const |
std::string | getExtraMetadataStringValueAtIndex (unsigned int index) const |
Additional Inherited Members | |
Public Types inherited from resqml2::AbstractIjkGridRepresentation | |
enum | geometryKind { UNKNOWN = 0 , EXPLICIT = 1 , PARAMETRIC = 2 , LATTICE = 3 , NO_GEOMETRY = 4 } |
Public Types inherited from resqml2::AbstractRepresentation | |
enum | indexableElement { NODE = 0 , EDGE = 1 , FACE = 2 , VOLUME = 3 , PILLAR = 4 } |
Public Types inherited from common::AbstractObject | |
enum | hdfDatatypeEnum { UNKNOWN = 0 , DOUBLE = 1 , FLOAT = 2 , LONG_64 = 3 , ULONG_64 = 4 , INT = 5 , UINT = 6 , SHORT = 7 , USHORT = 8 , CHAR = 9 , UCHAR = 10 } |
Static Public Member Functions inherited from common::AbstractObject | |
static void | setFormat (const std::string &vendor, const std::string &applicationName, const std::string &applicationVersionNumber) |
Static Public Attributes inherited from resqml2::AbstractIjkGridRepresentation | |
static const char * | XML_TAG |
static const char * | XML_TAG_TRUNCATED |
Static Public Attributes inherited from resqml2::AbstractGridRepresentation | |
static const char * | XML_TAG |
Static Public Attributes inherited from resqml2::AbstractRepresentation | |
static const char * | XML_TAG |
An IJK Grid explicit representation defines each cell corner position by means of XYZ coordinates. Adjacent cell corner are supposed to be located the same so they are not repeated unless you define split lines or split nodes.
|
virtualdefault |
Destructor does nothing since the memory is managed by the gSOAP context.
Reimplemented in resqml2_2::IjkGridExplicitRepresentation, and resqml2_0_1::IjkGridExplicitRepresentation.
|
finalvirtual |
Gets the geometry kind of this IJK grid.
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
overridevirtual |
Gets all the XYZ points of the current block. XYZ points are given in the local CRS. Block information must be loaded.
std::invalid_argument | If this grid is truncated. |
std::invalid_argument | If the block information is not loaded. |
std::invalid_argument | If xyzPoints is nullptr . |
[out] | xyzPoints | A linearized 2d array where the first (quickest) dimension is coordinate dimension (XYZ) and second dimension is vertex dimension. It must be pre allocated with a size of 3 * getXyzPointCountOfBlock(). |
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
overridevirtual |
Gets all the XYZ points of a particular sequence of K interfaces. XYZ points are given in the local CRS.
std::invalid_argument | If this grid is truncated. |
std::out_of_range | If kInterfaceStart > getKCellCount() or kInterfaceEnd > getKCellCount() + getKGapsCount(). |
std::range_error | If kInterfaceStart > kInterfaceEnd . |
std::invalid_argument | If xyzPoints is nullptr . |
kInterfaceStart | The K index of the starting interface taken from zero to getKCellCount(). | |
kInterfaceEnd | The K index of the ending interface taken from zero to getKCellCount() + getKGapsCount(). | |
[out] | xyzPoints | A linearized 2d array where the first (quickest) dimension is coordinate dimension (XYZ) and second dimension is vertex dimension. It must be preallocated with a size of 3 * getXyzPointCountOfKInterface() * (kInterfaceEnd - kInterfaceStart + 1) . |
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
finalvirtual |
Checks whether the node geometry dataset is compressed or not.
std::invalid_argument | If this grid has no geometry. |
Reimplemented from resqml2::AbstractIjkGridRepresentation.
|
pure virtual |
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage, Technical guide and Enterprise Architect diagrams for details.
std::invalid_argument | If points is nullptr . |
std::invalid_argument | If (splitCoordinateLineCount != 0 && (pillarOfCoordinateLine == nullptr || splitCoordinateLineColumnCumulativeCount == nullptr || splitCoordinateLineColumns == nullptr)) . |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If localCrs is nullptr and no default local 3d CRS is defined. |
mostComplexPillarGeometry | The most complex pillar geometry which occurs on this reservoir grid. | |
kDirectionKind | The direction of the K axis on the earth. It is not directly related to Z of the vertical CRS but to the physical earth (as the vertical CRS is). | |
isRightHanded | Indicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions. | |
[in] | points | XYZ double triplets ordered by i then j then split then k. Count must be ((iCellCount+1) * (jCellCount+1) + splitCoordinateLineCount) * kCellCount . |
[in,out] | proxy | (Optional) The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | (Optional) The count of split coordinate line. A grid pillar is splitted in up to 4 coordinate lines. | |
[in] | pillarOfCoordinateLine | (Optional) For each split coordinate line, indicates which pillar it belongs to. Pillars are identified by their absolute 1d index (iPillar + jPillar * iPillarCount) where iPillarCount == iCellCount+1 . Count is splitCoordinateLineCount. |
[in] | splitCoordinateLineColumnCumulativeCount | (Optional) For each split coordinate line, indicates how many columns of the ijk grid are incident to it (minimum is one and maximum is 3) + the count of all incident columns of previous spit coordinate lines in the array. For example {1, 4, 6} would mean that the first split coordinate line is incident to only one column, the second split coordinate line is incident to 4 - 1 = 3 columns and the third column is incident to 6 - 4 = 2 columns. Count is splitCoordinateLineCount. |
[in] | splitCoordinateLineColumns | (Optional) For each split coordinate line, indicates which columns are incident to it. Count is the last value in the splitCoordinateLineColumnCumulativeCount array. Columns are identified by their absolute 1d index (iColumn + jColumn * iColumnCount) where Column == Cell. |
[in] | definedPillars | (Optional) For each pillar : 0 if pillar is not defined (i.e points equal to NaN) else the pillar is defined. This information overrides any pillar geometry information. If null, then all pillars are assumed to be defined. |
[in] | localCrs | (Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used. |
Implemented in resqml2_2::IjkGridExplicitRepresentation, and resqml2_0_1::IjkGridExplicitRepresentation.
|
pure virtual |
Sets the geometry of this IJK grid as explicit coordinate line nodes. See RESQML Usage, Technical guide and Enterprise Architect diagrams for details. Same as setGeometryAsCoordinateLineNodes where the hdf datasets are already written in the the file.
std::invalid_argument | If points is nullptr . |
std::invalid_argument | If (splitCoordinateLineCount != 0 && (pillarOfCoordinateLine == nullptr || splitCoordinateLineColumnCumulativeCount == nullptr || splitCoordinateLineColumns == nullptr)) . |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If localCrs is nullptr and no default local 3d CRS is defined. |
mostComplexPillarGeometry | The most complex pillar geometry which occurs on this reservoir grid. | |
kDirectionKind | The direction of the K axis on the earth. It is not directly related to Z of the vertical CRS but to the physical earth (as the vertical CRS is). | |
isRightHanded | Indicates that the IJK grid is right handed, as determined by the triple product of tangent vectors in the I, J, and K directions. | |
[in] | points | XYZ double triplets ordered by i then j then split then k. Count must be ((iCellCount+1) * (jCellCount+1) + splitCoordinateLineCount) * kCellCount . |
[in,out] | proxy | (Optional) The HDF proxy where all numerical values will be stored. If nullptr , then the default HDF proxy of the repository will be used. |
splitCoordinateLineCount | (Optional) The count of split coordinate line. A grid pillar is splitted in up to 4 coordinate lines. | |
[in] | pillarOfCoordinateLine | (Optional) For each split coordinate line, indicates which pillar it belongs to. Pillars are identified by their absolute 1d index (iPillar + jPillar * iPillarCount) where iPillarCount == iCellCount+1 . Count is splitCoordinateLineCount. |
[in] | splitCoordinateLineColumnCumulativeCount | (Optional) For each split coordinate line, indicates how many columns of the ijk grid are incident to it (minimum is one and maximum is 3) + the count of all incident columns of previous spit coordinate lines in the array. For example {1, 4, 6} would mean that the first split coordinate line is incident to only one column, the second split coordinate line is incident to 4 - 1 = 3 columns and the third column is incident to 6 - 4 = 2 columns. Count is splitCoordinateLineCount. |
[in] | splitCoordinateLineColumns | (Optional) For each split coordinate line, indicates which columns are incident to it. Count is the last value in the splitCoordinateLineColumnCumulativeCount array. Columns are identified by their absolute 1d index (iColumn + jColumn * iColumnCount) where Column == Cell. |
[in] | definedPillars | (Optional) For each pillar : 0 if pillar is not defined (i.e points equal to NaN) else the pillar is defined. This information overrides any pillar geometry information. If null, then all pillars are assumed to be defined. |
[in] | localCrs | (Optional) The local CRS where the points are given. If nullptr (default) then the default CRS of the repository will be used. |
Implemented in resqml2_2::IjkGridExplicitRepresentation, and resqml2_0_1::IjkGridExplicitRepresentation.