Fesapi
2.0.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
|
Representation of streamlines associated with a streamline feature and interpretation. Use the StreamlinesFeature to specify the vector field that supports the streamlines, i.e., describes what flux is being traced. Use the Generic Feature Interpretation to distinguish between shared and differing interpretations. More...
#include <StreamlinesRepresentation.h>
Public Member Functions | |
StreamlinesRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject) | |
StreamlinesRepresentation (gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation *fromGsoap) | |
StreamlinesRepresentation (gsoap_eml2_3::_resqml22__StreamlinesRepresentation *fromGsoap) | |
virtual | ~StreamlinesRepresentation ()=default |
virtual uint32_t | getLineCount () const =0 |
virtual uint16_t | getWellboreTrajectoryCount () const =0 |
resqml2::WellboreTrajectoryRepresentation * | getWellboreTrajectory (uint16_t index) const |
virtual common::DataObjectReference | getWellboreTrajectoryDor (uint16_t index) const =0 |
virtual uint32_t | getInjectorPerLine (uint32_t *injectorPerLine) const =0 |
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... | |
virtual uint32_t | getProducerPerLine (uint32_t *producerPerLine) const =0 |
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... | |
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 |
virtual void | getNodeCountPerLine (uint32_t *nodeCountPerPolyline) const =0 |
uint64_t | getXyzPointCountOfPatch (unsigned int patchIndex) const final |
void | getIntervalCountPerLine (uint32_t *intervalCountPerPolyline) const |
uint64_t | getIntervalCount () const |
virtual void | setGeometry (uint32_t const *nodeCountPerPolyline, double const *xyzPoints, eml2::AbstractHdfProxy *hdfProxy=nullptr, resqml2::AbstractLocal3dCrs *localCrs=nullptr)=0 |
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 |
virtual uint16_t | getGridIndices (uint16_t *gridIndices) const =0 |
virtual int64_t | getCellIndices (uint64_t *cellIndices) const =0 |
virtual uint8_t | getLocalFacePairPerCellIndices (uint8_t *localFacePairPerCellIndices) const =0 |
virtual uint16_t | getGridRepresentationCount () const =0 |
resqml2::AbstractGridRepresentation * | getGridRepresentation (uint16_t index) const |
virtual common::DataObjectReference | getGridRepresentationDor (uint16_t index) const =0 |
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 |
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). More... | |
std::vector< class AbstractProperty * > | getPropertySet () const |
void | setInterpretation (class AbstractFeatureInterpretation *interp) |
class AbstractFeatureInterpretation * | getInterpretation () const |
common::DataObjectReference | getInterpretationDor () const |
uint64_t | getXyzPointCountOfAllPatches () const |
virtual void | getXyzPointsOfPatch (unsigned int patchIndex, double *xyzPoints) const =0 |
Gets all the xyz points of a particular patch of this representation. xyz points are given in the local CRS. More... | |
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 | getXmlNamespace () const =0 |
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_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) |
Representation of streamlines associated with a streamline feature and interpretation. Use the StreamlinesFeature to specify the vector field that supports the streamlines, i.e., describes what flux is being traced. Use the Generic Feature Interpretation to distinguish between shared and differing interpretations.
|
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. |
|
inline |
Creates an instance of this class by wrapping a gSOAP instance.
[in] | fromGsoap | If non-null, the gSOAP instance. |
|
virtualdefault |
Destructor does nothing since the memory is managed by the gSOAP context.
Reimplemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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. Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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. Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
resqml2::AbstractGridRepresentation* resqml2::StreamlinesRepresentation::getGridRepresentation | ( | uint16_t | index | ) | const |
Gets the grid representation located at a specific index of this streamlines representation.
std::out_of_range | If index >= getGridRepresentationCount(). |
index | Zero-based index of the grid representation we look for. |
index
.
|
pure virtual |
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. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
Get the DOR of the grid representation located at a specific index of this streamlines representation.
std::out_of_range | If index >= getGridRepresentationCount(). |
index | Zero-based index of the grid representation we look for. |
index
. Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
inline |
Gets the total interval count in this streamlines representation.
[out] | nodeCountPerPolyline | A preallocated array to receive the node count per line. Its size must be getLineCount(patchIndex) . |
|
inline |
Gets the interval count per line.
[out] | intervalCountPerPolyline | A preallocated array to receive the interval count per line. Its size must be getLineCount(patchIndex) . |
|
pure virtual |
Gets the count of line contained in this streamlines representation.
std::logic_error | If this feature is partial. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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. Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
Gets the node count per line.
[out] | nodeCountPerPolyline | A preallocated array to receive the node count per line. Its size must be getLineCount(patchIndex) . |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
inlinefinalvirtual |
|
pure virtual |
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. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
resqml2::WellboreTrajectoryRepresentation* resqml2::StreamlinesRepresentation::getWellboreTrajectory | ( | uint16_t | index | ) | const |
Gets 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
.
|
pure virtual |
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. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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
. Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
inlinefinalvirtual |
Gets the standard XML tag without XML namespace for serializing this data object.
Implements common::AbstractObject.
|
inlinefinalvirtual |
Get the xyz point count in a given patch.
Implements resqml2::AbstractRepresentation.
|
finalvirtual |
Loads target relationships
Reimplemented from resqml2::AbstractRepresentation.
|
pure virtual |
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. If the streamlines are associated to grids then the there must be one point one each face intersected by the a line + the start and end point. |
[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. |
Implemented in resqml2_2::StreamlinesRepresentation, and resqml2_0_1::StreamlinesRepresentation.
|
pure virtual |
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 . |
|
pure virtual |
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 tag without XML namespace for serializing this data object.