Fesapi
2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
Specification of the vector field upon which the streamlines are based. More...
#include <StreamlinesRepresentation.h>
Public Member Functions | |
StreamlinesRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject) | |
StreamlinesRepresentation (gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation *fromGsoap) | |
StreamlinesRepresentation (resqml2::GenericFeatureInterpretation *interp, const std::string &guid, const std::string &title, uint64_t lineCount) | |
Creates an instance of this class in a gsoap context. More... | |
~StreamlinesRepresentation ()=default | |
uint32_t | getLineCount () const final |
uint16_t | getWellboreTrajectoryCount () const final |
common::DataObjectReference | getWellboreTrajectoryDor (uint16_t index) const final |
uint32_t | getInjectorPerLine (uint32_t *injectorPerLine) const final |
Gets all the wellbore indices which are injectors. Null values signify that that line does not initiate at an injector, e.g., it may come from fluid expansion or an aquifer. More... | |
uint32_t | getProducerPerLine (uint32_t *producerPerLine) const final |
Gets all the wellbore indices which are producers. Null values signify that that line does not terminate at a producer, e.g., it may approach a stagnation area. More... | |
void | setWellboreInformation (uint32_t const *injectorPerLine, uint32_t const *producerPerLine, const std::vector< resqml2::WellboreTrajectoryRepresentation * > &wellboreTrajectories, uint32_t nullValue=(std::numeric_limits< uint32_t >::max)(), eml2::AbstractHdfProxy *hdfProxy=nullptr) final |
void | getNodeCountPerLine (uint32_t *nodeCountPerPolyline) const final |
void | getXyzPointsOfPatch (unsigned int, double *) const final |
void | setGeometry (uint32_t const *nodeCountPerPolyline, double const *xyzPoints, eml2::AbstractHdfProxy *hdfProxy=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr) final |
void | setIntervalGridCells (uint16_t const *gridIndices, uint16_t gridIndicesNullValue, uint64_t const *cellIndices, uint64_t cellIndicesNullValue, uint8_t const *localFacePairPerCellIndices, uint8_t localFacePairPerCellIndicesNullValue, const std::vector< resqml2::AbstractGridRepresentation * > &supportingGrids, eml2::AbstractHdfProxy *hdfProxy=nullptr) final |
uint16_t | getGridIndices (uint16_t *gridIndices) const final |
int64_t | getCellIndices (uint64_t *cellIndices) const final |
uint8_t | getLocalFacePairPerCellIndices (uint8_t *localFacePairPerCellIndices) const final |
uint16_t | getGridRepresentationCount () const final |
common::DataObjectReference | getGridRepresentationDor (uint16_t index) const final |
common::DataObjectReference | getHdfProxyDor () const final |
std::string | getXmlNamespace () const final |
Public Member Functions inherited from resqml2::StreamlinesRepresentation | |
StreamlinesRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject) | |
StreamlinesRepresentation (gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation *fromGsoap) | |
StreamlinesRepresentation (gsoap_eml2_3::_resqml22__StreamlinesRepresentation *fromGsoap) | |
resqml2::WellboreTrajectoryRepresentation * | getWellboreTrajectory (uint16_t index) const |
virtual void | setWellboreInformation (uint32_t const *injectorPerLine, uint32_t const *producerPerLine, const std::vector< resqml2::WellboreTrajectoryRepresentation * > &wellboreTrajectories, uint32_t nullValue=(std::numeric_limits< uint32_t >::max)(), eml2::AbstractHdfProxy *hdfProxy=nullptr)=0 |
uint64_t | getXyzPointCountOfPatch (unsigned int patchIndex) const final |
void | getIntervalCountPerLine (uint32_t *intervalCountPerPolyline) const |
uint64_t | getIntervalCount () const |
virtual void | setIntervalGridCells (uint16_t const *gridIndices, uint16_t gridIndicesNullValue, uint64_t const *cellIndices, uint64_t cellIndicesNullValue, uint8_t const *localFacePairPerCellIndices, uint8_t localFacePairPerCellIndicesNullValue, const std::vector< resqml2::AbstractGridRepresentation * > &supportingGrids, eml2::AbstractHdfProxy *hdfProxy=nullptr)=0 |
resqml2::AbstractGridRepresentation * | getGridRepresentation (uint16_t index) const |
unsigned int | getPatchCount () const final |
void | loadTargetRelationships () final |
virtual std::string | getXmlTag () const final |
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 |
Static Public Attributes | |
static const char * | XML_NS |
Static Public Attributes inherited from resqml2::StreamlinesRepresentation | |
static const char * | XML_TAG |
Static Public Attributes inherited from resqml2::AbstractRepresentation | |
static const char * | XML_TAG |
Additional Inherited Members | |
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) |
Specification of the vector field upon which the streamlines are based.
Streamlines are commonly used to trace the flow of phases (water / oil / gas / total) based upon their flux at a specified time. They may also be used for trace components for compositional simulation, e.g., CO2, or temperatures for thermal simulation.
|
inline |
Only to be used in partial transfer context.
[in] | partialObject | If non-nullptr, the partial object. |
|
inline |
Creates an instance of this class by wrapping a gSOAP instance.
[in] | fromGsoap | If non-null, the gSOAP instance. |
resqml2_0_1::StreamlinesRepresentation::StreamlinesRepresentation | ( | resqml2::GenericFeatureInterpretation * | interp, |
const std::string & | guid, | ||
const std::string & | title, | ||
uint64_t | lineCount | ||
) |
Creates an instance of this class in a gsoap context.
std::invalid_argument | If interp == nullptr . |
[in] | interp | The interpretation this representation represents. |
guid | The guid to set to the new instance. If empty then a new guid will be generated. | |
title | A title for the instance to create. | |
lineCount | The count of line in this representation. |
|
virtualdefault |
Destructor does nothing since the memory is managed by the gSOAP context.
Reimplemented from resqml2::StreamlinesRepresentation.
|
finalvirtual |
For each interval of the lines of the representation, gets the index of the cell it is associated to. Cell index in in the scope of the associated grid at the same index.
std::range_error | If the cell indices are stored in an integer constant array and if the the constant value is strictly superior than uint64_t maximum value. |
std::logic_error | If the * indices are neither stored in a HDF5 integer array nor in an integer constant array. |
[out] | cellIndices | An array for receiving the cell indices. The size of this array is getIntervalCount. |
cellIndices
in order to indicate that an interval does not correspond to any intersected grid. Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
For each interval of the lines of the representation, gets the index of the grid it is associated to.
std::range_error | If the grid indices are stored in an integer constant array and if the the constant value is strictly superior than uint16_t maximum value. |
std::logic_error | If the grid indices are neither stored in a HDF5 integer array nor in an integer constant array. |
[out] | gridIndices | An array for receiving the grids indices. The size of this array is getIntervalCount. |
gridIndices
in order to indicate that an interval does not correspond to any intersected grid. Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Gets the count of grid representations of this streamlines representation.
std::range_error | If the count of grid representations is strictly greater than unsigned int max. |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Get the DOR of the grid representation located at a specific index of this streamlines representation.
std::out_of_range | If index >= getSupportingGridRepresentationCount(). |
index | Zero-based index of the grid representation we look for. |
index
. Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
std::logic_error | If the underlying gSOAP instance is not a RESQML v2.0 or RESQML v2.0 one. |
Implements resqml2::AbstractRepresentation.
|
finalvirtual |
Gets all the wellbore indices which are injectors. Null values signify that that line does not initiate at an injector, e.g., it may come from fluid expansion or an aquifer.
[in/out] | injectorPerLine The 0-based injector wellbore index defined by the order of the wellbore in the list of WellboreTrajectoryRepresentation references. It must be preallocated with a size getWellboreTrajectories().size() and it won't be freed by FESAPI. |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Gets the count of line contained in this streamlines representation.
std::logic_error | If this feature is partial. |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
For each interval of the lines of the representation, gets the entry and exit intersection faces of the line in the cell.
std::range_error | If the grid indices are stored in an integer constant array and if the the constant value is strictly superior than uint8_t maximum value. |
std::logic_error | If the grid indices are neither stored in a HDF5 integer array nor in an integer constant array. |
[out] | gridIndices | An array for receiving the local Face Pair Per Cell Indices. The size of this array is twice getIntervalCount. |
localFacePairPerCellIndices
in order to indicate that a line interval does not intersect a face in this cell. Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Gets the node count per line.
[out] | nodeCountPerPolyline | A preallocated array to receive the node count per line. Its size must be getLineCount(patchIndex) . |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Gets all the wellbore indices which are producers. Null values signify that that line does not terminate at a producer, e.g., it may approach a stagnation area.
[in/out] | injectorPerLine The 0-based injector wellbore index defined by the order of the wellbore in the list of WellboreTrajectoryRepresentation references. It must be preallocated with a size getWellboreTrajectories().size() and it won't be freed by FESAPI. |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Gets the count of wellbore trajectories of this streamlines representation.
std::range_error | If the count of wellbore trajectories is strictly greater than unsigned int max. |
Implements resqml2::StreamlinesRepresentation.
|
finalvirtual |
Get the DOR of the wellbore trajectory located at a specific index of this streamlines representation.
std::out_of_range | If index >= getWellboreTrajectoryCount(). |
index | Zero-based index of the wellbore trajectory we look for. |
index
. Implements resqml2::StreamlinesRepresentation.
|
inlinefinalvirtual |
Get the standard XML namespace for serializing this data object.
Implements common::AbstractObject.
|
inlinefinalvirtual |
Use linear interpolation between 2 trajectory stations.
Implements resqml2::AbstractRepresentation.
|
finalvirtual |
Sets the geometry of the streamlines representation.
std::invalid_argument | If proxy == nullptr and no default HDF proxy is defined in the repository. |
std::invalid_argument | If localCrs == nullptr and no default local CRS id defined in the repository. |
[in] | nodeCountPerPolyline | The node count per polyline in this representation. It is ordered by polyline. There must be getLineCount() values in this array. |
[in] | xyzPoints | The xyz values of the nodes. Ordered by xyz, then by node and then by polyline. It must be three times the total count of nodes. It must be set to nullptr in RESQML2.0.1 |
[in,out] | hdfProxy | (Optional) The HDF proxy which defines where the nodes will be stored. If nullptr (default), then the repository default HDF proxy will be used. |
[in] | localCrs | (Optional) The local CRS where the points are defined. If nullptr (default value), then the repository default local CRS will be used. |
Implements resqml2::StreamlinesRepresentation.
|
final |
Sets all information about the intersected grid cells. You must first provide the geometry of the streamlines representation before to use this method.
std::invalid_argument | If gridIndices , cellIndices , localFacePairPerCellIndices or hdfProxy is nullptr . |
std::invalid_argument | If cellCount == 0 . |
std::logic_error | If the geometry of the streamlines have not been provided before using this method. |
gridIndices | An array containing, for each interval of the lines of the represenation, the index of the grid it is associated to. The size of this array is getIntervalCount. | |
gridIndicesNullValue | The null value used in gridIndices in order to indicate that an interval does not correspond to any intersected grid. | |
cellIndices | An array containing the intersected cell index. They are ordered according to geoemtry intervals and gridIndices . The array length must equal the getIntervalCount. | |
cellIndicesNullValue | The null value used in cellIndices in order to indicate that an interval does not correspond to any intersected grid. | |
localFacePairPerCellIndices | An array containing, for each cell, the entry and exit intersection faces of the line in the cell. The array dimension must equal twice getIntervalCount. | |
localFacePairPerCellIndicesNullValue | The null value used in localFacePerCellIndices in order to indicate that it corresponds to a missing intersection, e.g., when a line originates or terminates within a cell. | |
[in,out] | hdfProxy | The HDF proxy where the numerical values will be stored. It must be already opened for writing and won't be closed.It cannot be nullptr . |
|
final |
Specify the wellbores on which streamlines may originate or terminate.
[in] | injectorPerLine | The 0-based injector wellbore index defined by the order of the wellbore in the list of WellboreTrajectoryRepresentation references. Null values signify that that line does not initiate at an injector, e.g., it may come from fluid expansion or an aquifer. |
[in] | producerPerLine | The 0-based producer wellbore index defined by the order of the wellbore in the list of WellboreTrajectoryRepresentation references. Null values signify that that line does not terminate at a producer, e.g., it may approach a stagnation area. |
[in] | wellboreTrajectories | The list of WellboreTrajectoryRepresentation references. |
[in] | nullValue | The null value used in injectorPerLine and producerPerLine. |
[in] | hdfProxy | (Optional) The HDF proxy which defines where the nodes will be stored. If nullptr (default), then the repository default HDF proxy will be used. |
|
static |
The standard XML namespace for serializing this data object.