Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
Proxy class for a grid connection set representation. This representation consists of a list of connections between grid cells, potentially on different grids. More...
#include <GridConnectionSetRepresentation.h>
Public Member Functions | |
virtual | ~GridConnectionSetRepresentation ()=default |
virtual uint64_t | getCellIndexPairCount () const =0 |
virtual int64_t | getCellIndexPairs (int64_t *cellIndexPairs) const =0 |
virtual uint64_t | getCellIndexPairCountFromInterpretationIndex (int64_t interpretationIndex) const =0 |
Gets the count of cell index pairs which correspond to a particular interpretation or to no interpretation. | |
virtual bool | isAssociatedToInterpretations () const =0 |
virtual void | getInterpretationIndexCumulativeCount (uint64_t *cumulativeCount) const =0 |
virtual void | getInterpretationIndices (int64_t *interpretationIndices) const =0 |
virtual int64_t | getInterpretationIndexNullValue () const =0 |
virtual void | getGridConnectionSetInformationFromInterpretationIndex (int64_t *cellIndexPairs, unsigned short *gridIndexPairs, int *localFaceIndexPairs, int64_t interpretationIndex) const =0 |
std::string | getInterpretationUuidFromIndex (uint64_t interpretationIndex) const |
virtual common::DataObjectReference | getInterpretationDorFromIndex (uint64_t interpretationIndex) const =0 |
class AbstractFeatureInterpretation * | getInterpretationFromIndex (uint64_t interpretationIndex) const |
virtual uint64_t | getInterpretationCount () const =0 |
virtual bool | hasLocalFacePerCell () const =0 |
virtual int64_t | getLocalFacePerCellIndexPairs (int *localFacePerCellIndexPairs) const =0 |
virtual bool | isBasedOnMultiGrids () const =0 |
virtual void | getGridIndexPairs (unsigned short *gridIndexPairs) const =0 |
virtual void | setCellIndexPairsUsingExistingDataset (uint64_t cellIndexPairCount, const std::string &cellIndexPair, int64_t cellIndexPairNullValue, eml2 ::AbstractHdfProxy *proxy=nullptr, int64_t gridIndexPairNullValue=-1, const std::string &gridIndexPair="")=0 |
void | setCellIndexPairs (uint64_t cellIndexPairCount, int64_t const *cellIndexPair, int64_t cellIndexPairNullValue=-1, eml2 ::AbstractHdfProxy *proxy=nullptr, uint16_t gridIndexPairNullValue=(std::numeric_limits< uint16_t >::max)(), uint16_t const *gridIndexPair=nullptr) |
Sets the cell index pairs of this grid connection set representation. If this instance is supported by a single grid, then optional gridIndex* parameters are not needed. Default cell index null value is set to -1. | |
virtual void | setLocalFacePerCellIndexPairsUsingExistingDataset (const std::string &localFacePerCellIndexPair, int64_t nullValue, eml2 ::AbstractHdfProxy *proxy=nullptr)=0 |
Sets the local face per cell index pairs of this grid connection set representation. Local face-per-cell indices are used because global face indices need not have been defined. The numerical values are already stored in an existing hdf5 dataset. Null value = -1 according to documentation. | |
void | setLocalFacePerCellIndexPairs (int const *localFacePerCellIndexPair, int nullValue, eml2 ::AbstractHdfProxy *proxy=nullptr) |
Sets the local face per cell index pairs of this grid connection set representation. Local face-per-cell indices are used because global face indices need not have been defined. The numerical values will be written as a new HDF5 dataset in an existing HDF5 file. | |
virtual void | setConnectionInterpretationIndices (uint64_t const *cumulativeInterpCount, int64_t const *interpIndices, eml2 ::AbstractHdfProxy *proxy=nullptr)=0 |
void | pushBackInterpretation (class AbstractFeatureInterpretation *interp) |
virtual void | setInterpretationForAllConnections (class AbstractFeatureInterpretation *interp, eml2 ::AbstractHdfProxy *proxy=nullptr)=0 |
void | pushBackSupportingGridRepresentation (class AbstractGridRepresentation *supportingGridRep) |
virtual uint64_t | getSupportingGridRepresentationCount () const =0 |
class AbstractGridRepresentation * | getSupportingGridRepresentation (uint64_t index) const |
virtual common::DataObjectReference | getSupportingGridRepresentationDor (uint64_t index) const =0 |
uint64_t | getXyzPointCountOfPatch (unsigned int patchIndex) const override |
void | getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const override |
uint64_t | getPatchCount () const override |
virtual std::string | getXmlTag () const override |
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 |
virtual common::DataObjectReference | getHdfProxyDor () const =0 |
Gets the data object reference of the HDF proxy which is used for storing the numerical values of this representation (i.e. its geometry). | |
void | setTimeIndex (uint64_t timeIndex, eml2 ::TimeSeries *timeSeries) |
uint64_t | getTimeIndex () const |
Gets the time index of this representation in the associated TimeSeries. Be sure to first check that a TimeSeries is associated this representation by calling getTimeSeriesDor or getTimeSeries;. | |
eml2::TimeSeries * | getTimeSeries () const |
common::DataObjectReference | getTimeSeriesDor () const |
Gets the data object reference of the TimeSeries containing the time of this representation at a particular index. For now, this method only look for a TimeSeries at the first patch containing a point geometry. | |
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. | |
void | getXyzPointsOfAllPatches (double *xyzPoints) const |
Gets all the xyz points of all patches of this representation. xyz points are given in the local CRS. | |
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, uint64_t 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 |
Static Public Attributes | |
static const char * | XML_TAG |
Static Public Attributes inherited from resqml2::AbstractRepresentation | |
static constexpr char const * | XML_TAG = "AbstractRepresentation" |
Proxy class for a grid connection set representation. This representation consists of a list of connections between grid cells, potentially on different grids.
Connections are in the form of (Grid,Cell,Face)1<=>(Grid,Cell,Face)2 and are stored as three integer pair arrays (one grid index pair array, one cell index pair array and one face index pair array) corresponding to these six elements.
Grid connection sets are the preferred means of representing faults on a grid. The use of cell-face-pairs is more complete than single cell- faces, which are missing a corresponding cell face entry, and only provide an incomplete representation of the topology of a fault. Unlike what is sometimes the case in reservoir simulation software, RESQML does not distinguish between standard and non-standard connections. Within RESQML, if a grid connection corresponds to a "nearest neighbor" as defined by the cell indices, then it is never additive to the implicit nearest neighbor connection.
BUSINESS RULE: A single cell- face-pair should not appear within more than a single grid connection set. This rule is designed to simplify the interpretation of properties assigned to multiple grid connection sets, which might otherwise have the same property defined more than once on a single connection, with no clear means of resolving the multiple values.
|
virtualdefault |
Destructor does nothing since the memory is managed by the gsoap context.
|
pure virtual |
Gets the cell index pair count of this grid connection set representation.
|
pure virtual |
Gets the count of cell index pairs which correspond to a particular interpretation or to no interpretation.
std::invalid_argument | If the HDF5 library could not read the count of interpretation indices associated to this grid connection set representation. |
std::logic_error | If the intepretation indices are not stored in a HDF5 integer array. |
std::out_of_range | If interpretationIndex is out of range. |
interpretationIndex | The index of an interpretation in the collection of feature interpretation of this grid connection set. Or -1 for having cell index pair count which are not associated to any interpretation at all. |
interpretationIndex
or to no interpretation.
|
pure virtual |
Gets the cell index pairs of this grid connection set representation
logic_error | If the cell index pairs are not stored in a HDF5 integer array. |
[out] | cellIndexPairs | A buffer for receiving the cell index pairs. It must be preallocated with a size of 2 * getCellIndexPairCount() . Two consecutive values cellIndexPairs[i] and cellIndexPairs[i+1] constitute a pair of cell index. |
|
pure virtual |
Gets the cell index pairs, the grid index pairs (optional) and the local face index pairs (optional) which correspond to a particular interpretation or to no interpretation.
std::logic_error | If the intepretation indices or interpretation indices cumulative counts are not stored in a HDF5 integer array. |
std::out_of_range | If interpretationIndex is out of range. |
[out] | cellIndexPairs | Mandatory buffer to receive the cell index pairs. Must be preallocated with 2 * getCellIndexPairCountFromInterpretationIndex(interpretationIndex) . |
[in,out] | gridIndexPairs | Optional buffer to receive the grid index pairs. Please set to nullptr for not collecting these pairs. Must be preallocated with 2 * getCellIndexPairCountFromInterpretationIndex(interpretationIndex) . |
[in,out] | localFaceIndexPairs | Optional buffer to receive the local face index pairs. Please set to nullptr for not collecting these pairs. Must be preallocated with 2 * getCellIndexPairCountFromInterpretationIndex(interpretationIndex) . See http://docs.energistics.org/#RESQML/RESQML_TOPICS/RESQML-000-252-0-C-sv2010.html for IJK cell face index convention. |
interpretationIndex | The index of an interpretation in the collection of feature interpretation of this grid connection set. Or -1 for having information for cells which are not associated to any interpretation at all. |
|
pure virtual |
Gets the grid index pairs of this grid connection representation. Please check that this grid connection set representation is based on several grids thanks to isBasedOnMultiGrids() before calling this method.
std::invalid_argument | If this representation is not based on several grids. |
std::logic_error | If the grid index pairs are not stored in a HDF5 integer array. |
[out] | gridIndexPairs | A buffer for receiving the grid index pairs. It must be preallocated with a size getCellIndexPairCount()*2 and won't be freed by fesapi. |
|
pure virtual |
Get the count of interpretations in this grid connection set.
range_error | If the count of associated interpretations is strictly greater than unsigned int. |
|
pure virtual |
Gets the DOR of a particular (fault) interpretation of this grid connection set.
std::invalid_argument | If this grid connection set representation does not contain fault interpretation association. |
std::invalid_argument | If the associated feature interpretation at position interpretationIndex is not a fault one. This is legal but not yet implemented. |
std::out_of_range | If interpretationIndex is out of range. |
interpretationIndex | The index of a (fault) interpretation in the collection of feature interpretation of this grid connection set. |
interpretationIndex
. class AbstractFeatureInterpretation * resqml2::GridConnectionSetRepresentation::getInterpretationFromIndex | ( | uint64_t | interpretationIndex | ) | const |
Gets a particular (fault) interpretation of this grid connection set.
std::invalid_argument | If this grid connection set representation does not contain fault interpretation association. |
std::invalid_argument | If the associated feature interpretation at position interpretationIndex is not a fault one. This is legal but not yet implemented. |
std::out_of_range | If interpretationIndex is out of range. |
interpretationIndex | The index of a (fault) interpretation in the collection of feature interpretation of this grid connection set. |
interpretationIndex
.
|
pure virtual |
Gets the (fault) interpretation index cumulative counts of this grid connection representation.
std::invalid_argument | If this grid connection set representation does not contain any (fault) interpretation association. |
std::logic_error | If the intepretation indices cumulative counts are not stored in a HDF5 integer array. |
[out] | cumulativeCount | A buffer for receiving the cumulative counts. Must be preallocated with a size of getCellIndexPairCount(). The number of interpretations associated to the connection at index i is cumulativeCount[i] . |
|
pure virtual |
Gets the null value for interpretation index.
std::invalid_argument | If this grid connection set representation does not contain any (fault) interpretation association. |
std::logic_error | If the intepretation indices are not stored in a HDF5 integer array. |
|
pure virtual |
Gets the (fault) interpretation indices of this grid connection representation.
std::invalid_argument | If this grid connection set representation does not contain any (fault) interpretation association. |
std::logic_error | If the intepretation indices are not stored in a HDF5 integer array. |
[out] | interpretationIndices | A buffer for receiving the interpretation indices. It must be preallocated with a size equals to the last value of cumulativeCount after calling getInterpretationIndexCumulativeCount(cumulativeCount). |
|
inline |
Gets the UUID of a particular (fault) interpretation of this grid connection set.
std::invalid_argument | If this grid connection set representation does not contain fault interpretation association. |
std::invalid_argument | If the associated feature interpretation at position interpretationIndex is not a fault one. This is legal but not yet implemented. |
std::out_of_range | If interpretationIndex is out of range. |
interpretationIndex | The index of a (fault) interpretation in the collection of feature interpretation of this grid connection set. |
interpretationIndex
.
|
pure virtual |
Gets the local face per cell index pairs of this grid connection representation. Please check that this grid connection set representation has local face per cell index pairs thanks to hasLocalFacePerCell() before calling this method.
std::invalid_argument | If this representation has no local face per cell pair. |
std::logic_error | If the local face per cell index pairs are not stored in a HDF5 integer array. |
[out] | localFacePerCellIndexPairs | A buffer for receiving the local face per cell index pairs. It must be preallocated with a size of getCellIndexPairCount()*2 and won't be freed by FESAPI. See http://docs.energistics.org/#RESQML/RESQML_TOPICS/RESQML-000-252-0-C-sv2010.html for IJK cell face index convention. |
localFacePerCellIndexPairs
.
|
inlineoverridevirtual |
class AbstractGridRepresentation * resqml2::GridConnectionSetRepresentation::getSupportingGridRepresentation | ( | uint64_t | index | ) | const |
Gets the supporting grid representation located at a specific index of this grid connection set representation.
std::out_of_range | If index is out of range. |
index | Zero-based index of the supporting grid representation we look for. |
index
.
|
pure virtual |
Gets the count of supporting grid representations of this grid connection representation.
std::range_error | If the count of supporting grid representations is strictly greater than unsigned int maximum value. |
|
pure virtual |
Gets the data object reference of the supporting grid representation located at a specific index of this grid connection set representation.
std::out_of_range | If index is out of range. |
index | Zero-based index of the supporting grid representation we look for. |
index
.
|
overridevirtual |
Please do note use: not implemented yet.
Implements resqml2::AbstractRepresentation.
|
overridevirtual |
Please do note use: not implemented yet.
Implements resqml2::AbstractRepresentation.
|
pure virtual |
Indicates if this grid connection set representation contains information on the connected faces of the cell pairs.
|
pure virtual |
Indicates whether the cell connections are associated to interpretation or not.
|
pure virtual |
Indicates if this grid connection set representation is based on several grids.
void resqml2::GridConnectionSetRepresentation::pushBackInterpretation | ( | class AbstractFeatureInterpretation * | interp | ) |
Pushes back an interpretation which can be mapped with some connections. Do not use this method when you assign a single interpreation to all connections. Use
std::invalid_argument | If interp is nullptr . |
[in] | interp | The interpretation to push back. |
void resqml2::GridConnectionSetRepresentation::pushBackSupportingGridRepresentation | ( | class AbstractGridRepresentation * | supportingGridRep | ) |
Pushes back a grid representation which is one of the support of this representation. Pushes back this representation as a grid connection information of the grid representation as well.
std::invalid_argument | If supportingGridRep is nullptr . |
[in] | supportingGridRep | The supporting grid representation to push back. |
void resqml2::GridConnectionSetRepresentation::setCellIndexPairs | ( | uint64_t | cellIndexPairCount, |
int64_t const * | cellIndexPair, | ||
int64_t | cellIndexPairNullValue = -1, | ||
eml2 ::AbstractHdfProxy * | proxy = nullptr, | ||
uint16_t | gridIndexPairNullValue = (std::numeric_limits< uint16_t >::max)(), | ||
uint16_t const * | gridIndexPair = nullptr ) |
Sets the cell index pairs of this grid connection set representation. If this instance is supported by a single grid, then optional gridIndex* parameters are not needed. Default cell index null value is set to -1.
std::invalid_argument | If cellIndexPairCount is 0. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If cellIndexPairNullValue is strictly greater than uint64_t max. The XML null value cannot be greater than a 64 bits signed integer cause of gSOAP mappings. |
cellIndexPairCount | The count of cell index pairs. It is half the size of cellIndexPair (and of gridIndexPair if used). | |
[in] | cellIndexPair | All the cell index pair in a 1d array where the cell indices go faster than the pair. |
cellIndexPairNullValue | (Optional) The integer null value used in cellIndexPair . | |
[in,out] | proxy | (Optional) The HDF proxy where the numerical values (cell indices) are stored. If nullptr , then the default HDF proxy of the repository will be used. |
gridIndexPairNullValue | (Optional) The integer null value used in gridIndexPair . | |
[in] | gridIndexPair | (Optional) All the grid index pair in a 1d array where the grid indices go faster than the pair. The grid at an index must correspond to the cell at the same index in the cellIndexPair array. |
|
pure virtual |
Sets the cell index pairs of this grid connection set representation using some existing HDF datasets.
std::invalid_argument | If cellIndexPairCount is 0. |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
cellIndexPairCount | The count of cell index pairs. It is half the size of the 1d array containing the cell index pairs (and of the one containing grid index pairs if there is one). | |
cellIndexPair | The HDF dataset path where we can find all the cell index pairs in a 1d array where the cell indices go faster than the pair. | |
cellIndexPairNullValue | The integer null value used in the HDF cell index pair dataset. | |
[in] | proxy | (Optional) The HDF proxy where the numerical values (cell indices) are stored. If nullptr , then the default HDF proxy of the repository will be used. |
gridIndexPairNullValue | (Optional) The integer null value used in the HDF grid index pair dataset. | |
gridIndexPair | (Optional) The HDF dataset path where we can find all the grid index pairs in a 1d array where the grid indices go faster than the pair. The grid at an index must correspond to the cell at the same index in the cellIndexPair array. If empty string (default), then no grid index pair will be set and parameter gridIndexPairNullValue will be unused. |
|
pure virtual |
For each connection in this grid connection set representation, allows to map zero to several feature interpretation.
std::logic_error | If getCellIndexPairs() == 0 . |
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. |
[in] | cumulativeInterpCount | For each connection, the cumulative count of the associated interpretations. Count must be equal to getCellIndexPairs(). |
[in] | interpIndices | The index of the interpretation associated to cell index pairs. The count of this array is cumulativeInterpCount [cumulativeInterpCount.size() - 1]. The nullValue is -1. Interpretation index is related to pushBackInterpretation. |
[in,out] | proxy | The Hdf proxy where the numerical values will be stored. |
|
pure virtual |
For each connection in this grid connection set representation, associate the same interpretation.
std::logic_error | If getCellIndexPairs() == 0 . |
std::logic_error | If interpretation has already been pushed into this instance. |
[in] | interp | The interpretation to associate to all connections. |
[in,out] | proxy | The Hdf proxy where the numerical values will be stored. |
void resqml2::GridConnectionSetRepresentation::setLocalFacePerCellIndexPairs | ( | int const * | localFacePerCellIndexPair, |
int | nullValue, | ||
eml2 ::AbstractHdfProxy * | proxy = nullptr ) |
Sets the local face per cell index pairs of this grid connection set representation. Local face-per-cell indices are used because global face indices need not have been defined. The numerical values will be written as a new HDF5 dataset in an existing HDF5 file.
std::invalid_argument | If proxy is nullptr and no default HDF proxy is defined in the repository. std::logic_error If the cell index pairs have not been set yet. |
[in] | localFacePerCellIndexPair | All the local face per cell index pairs in a 1d array where the local face per cell indices go faster than the pair. The local face per cell at an index must correspond to the cell at the same index in the 1d array containing the cell index pairs. See http://docs.energistics.org/#RESQML/RESQML_TOPICS/RESQML-000-252-0-C-sv2010.html for IJK cell face index convention. |
nullValue | The null value in localFacePerCellIndexPair . | |
[in,out] | proxy | The HDF proxy where the numerical values (cell indices) are stored. If nullptr , then the default HDF proxy of the repository will be used. |
|
pure virtual |
Sets the local face per cell index pairs of this grid connection set representation. Local face-per-cell indices are used because global face indices need not have been defined. The numerical values are already stored in an existing hdf5 dataset. Null value = -1 according to documentation.
std::invalid_argument | If proxy == nullptr and no default HDF proxy is defined in the repository. std::logic_error If the cell index pairs have not been set yet. |
localFacePerCellIndexPair | The HDF dataset path where we can find all the local Face Per CellIndex Pair in a 1d array. The size of the numerical values is 2 times the number of connections array of local face-per- cell indices for (Cell1,Cell2) for each connection. See http://docs.energistics.org/#RESQML/RESQML_TOPICS/RESQML-000-252-0-C-sv2010.html for IJK cell face index convention. | |
nullValue | The null value. | |
[in,out] | proxy | The HDF proxy where the numerical values (cell indices) are stored. if nullptr , then the repository default HDF proxy will be used. |
|
static |
The standard XML tag without XML namespace for serializing this data object.