Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
resqml2_0_1::StreamlinesRepresentation Class Referencefinal

Specification of the vector field upon which the streamlines are based. More...

#include <StreamlinesRepresentation.h>

Inheritance diagram for resqml2_0_1::StreamlinesRepresentation:

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.
 
 ~StreamlinesRepresentation ()=default
 
uint64_t getLineCount () const final
 
uint64_t getWellboreTrajectoryCount () const final
 
common::DataObjectReference getWellboreTrajectoryDor (uint64_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.
 
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.
 
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, int64_t const *cellIndices, 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 (int64_t *cellIndices) const final
 
uint8_t getLocalFacePairPerCellIndices (uint8_t *localFacePairPerCellIndices) const final
 
uint64_t getGridRepresentationCount () const final
 
common::DataObjectReference getGridRepresentationDor (uint64_t index) const final
 
common::DataObjectReference getHdfProxyDor () const final
 
std::string getXmlNamespace () const final
 

Static Public Attributes

static const char * XML_NS
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ StreamlinesRepresentation() [1/3]

resqml2_0_1::StreamlinesRepresentation::StreamlinesRepresentation ( gsoap_resqml2_0_1::eml20__DataObjectReference * partialObject)
inline

Only to be used in partial transfer context.

Parameters
[in]partialObjectIf non-nullptr, the partial object.

◆ StreamlinesRepresentation() [2/3]

resqml2_0_1::StreamlinesRepresentation::StreamlinesRepresentation ( gsoap_resqml2_0_1::_resqml20__StreamlinesRepresentation * fromGsoap)
inline

Creates an instance of this class by wrapping a gSOAP instance.

Parameters
[in]fromGsoapIf non-null, the gSOAP instance.

◆ StreamlinesRepresentation() [3/3]

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.

Exceptions
std::invalid_argumentIf interp == nullptr.
Parameters
[in]interpThe interpretation this representation represents.
guidThe guid to set to the new instance. If empty then a new guid will be generated.
titleA title for the instance to create.
lineCountThe count of line in this representation.

◆ ~StreamlinesRepresentation()

resqml2_0_1::StreamlinesRepresentation::~StreamlinesRepresentation ( )
default

Destructor does nothing since the memory is managed by the gSOAP context.

Member Function Documentation

◆ getCellIndices()

int64_t resqml2_0_1::StreamlinesRepresentation::getCellIndices ( int64_t * cellIndices) const
final

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.

Exceptions
std::range_errorIf 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_errorIf the * indices are neither stored in a HDF5 integer array nor in an integer constant array.
Parameters
[out]cellIndicesAn array for receiving the cell indices. The size of this array is getIntervalCount.
Returns
The null value used in cellIndices in order to indicate that an interval does not correspond to any intersected grid.

◆ getGridIndices()

uint16_t resqml2_0_1::StreamlinesRepresentation::getGridIndices ( uint16_t * gridIndices) const
final

For each interval of the lines of the representation, gets the index of the grid it is associated to.

Exceptions
std::range_errorIf 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_errorIf the grid indices are neither stored in a HDF5 integer array nor in an integer constant array.
Parameters
[out]gridIndicesAn array for receiving the grids indices. The size of this array is getIntervalCount.
Returns
The null value used in gridIndices in order to indicate that an interval does not correspond to any intersected grid.

◆ getGridRepresentationCount()

uint64_t resqml2_0_1::StreamlinesRepresentation::getGridRepresentationCount ( ) const
final

Gets the count of grid representations of this streamlines representation.

Exceptions
std::range_errorIf the count of grid representations is strictly greater than unsigned int max.
Returns
The count of grid representation.

◆ getGridRepresentationDor()

common::DataObjectReference resqml2_0_1::StreamlinesRepresentation::getGridRepresentationDor ( uint64_t index) const
final

Get the DOR of the grid representation located at a specific index of this streamlines representation.

Exceptions
std::out_of_rangeIf index >= getSupportingGridRepresentationCount().
Parameters
indexZero-based index of the grid representation we look for.
Returns
The DOR of the grid representation at position index.

◆ getHdfProxyDor()

common::DataObjectReference resqml2_0_1::StreamlinesRepresentation::getHdfProxyDor ( ) const
final

Exceptions
std::logic_errorIf the underlying gSOAP instance is not a RESQML v2.0 or RESQML v2.0 one.

◆ getInjectorPerLine()

uint32_t resqml2_0_1::StreamlinesRepresentation::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.

Parameters
[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.
Returns
The null value used in injectorPerLine.

◆ getLineCount()

uint64_t resqml2_0_1::StreamlinesRepresentation::getLineCount ( ) const
final

Gets the count of line contained in this streamlines representation.

Exceptions
std::logic_errorIf this feature is partial.
Returns
The count of line contained in this streamlines representation.

◆ getLocalFacePairPerCellIndices()

uint8_t resqml2_0_1::StreamlinesRepresentation::getLocalFacePairPerCellIndices ( uint8_t * localFacePairPerCellIndices) const
final

For each interval of the lines of the representation, gets the entry and exit intersection faces of the line in the cell.

Exceptions
std::range_errorIf 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_errorIf the grid indices are neither stored in a HDF5 integer array nor in an integer constant array.
Parameters
[out]gridIndicesAn array for receiving the local Face Pair Per Cell Indices. The size of this array is twice getIntervalCount.
Returns
The null value used in localFacePairPerCellIndices in order to indicate that a line interval does not intersect a face in this cell.

◆ getNodeCountPerLine()

void resqml2_0_1::StreamlinesRepresentation::getNodeCountPerLine ( uint32_t * nodeCountPerPolyline) const
final

Gets the node count per line.

Parameters
[out]nodeCountPerPolylineA preallocated array to receive the node count per line. Its size must be getLineCount(patchIndex).

◆ getProducerPerLine()

uint32_t resqml2_0_1::StreamlinesRepresentation::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.

Parameters
[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.
Returns
The null value used in producerPerLine.

◆ getWellboreTrajectoryCount()

uint64_t resqml2_0_1::StreamlinesRepresentation::getWellboreTrajectoryCount ( ) const
final

Gets the count of wellbore trajectories of this streamlines representation.

Exceptions
std::range_errorIf the count of wellbore trajectories is strictly greater than unsigned int max.
Returns
The count of wellbore trajectories.

◆ getWellboreTrajectoryDor()

common::DataObjectReference resqml2_0_1::StreamlinesRepresentation::getWellboreTrajectoryDor ( uint64_t index) const
final

Get the DOR of the wellbore trajectory located at a specific index of this streamlines representation.

Exceptions
std::out_of_rangeIf index >= getWellboreTrajectoryCount().
Parameters
indexZero-based index of the wellbore trajectory we look for.
Returns
The DOR of the wellbore trajectory at position index.

◆ getXmlNamespace()

std::string resqml2_0_1::StreamlinesRepresentation::getXmlNamespace ( ) const
inlinefinal

Get the standard XML namespace for serializing this data object.

◆ getXyzPointsOfPatch()

void resqml2_0_1::StreamlinesRepresentation::getXyzPointsOfPatch ( unsigned int ,
double *  ) const
inlinefinal

Use linear interpolation between 2 trajectory stations.

◆ setGeometry()

void resqml2_0_1::StreamlinesRepresentation::setGeometry ( uint32_t const * nodeCountPerPolyline,
double const * xyzPoints,
eml2 ::AbstractHdfProxy * hdfProxy = nullptr,
resqml2 ::AbstractLocal3dCrs * localCrs = nullptr )
final

Sets the geometry of the streamlines representation.

Exceptions
std::invalid_argumentIf proxy == nullptr and no default HDF proxy is defined in the repository.
std::invalid_argumentIf localCrs == nullptr and no default local CRS id defined in the repository.
Parameters
[in]nodeCountPerPolylineThe node count per polyline in this representation. It is ordered by polyline. There must be getLineCount() values in this array.
[in]xyzPointsThe 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.

◆ setIntervalGridCells()

void resqml2_0_1::StreamlinesRepresentation::setIntervalGridCells ( uint16_t const * gridIndices,
uint16_t gridIndicesNullValue,
int64_t const * cellIndices,
uint8_t const * localFacePairPerCellIndices,
uint8_t localFacePairPerCellIndicesNullValue,
const std::vector< resqml2 ::AbstractGridRepresentation * > & supportingGrids,
eml2 ::AbstractHdfProxy * hdfProxy = nullptr )
final

Sets all information about the intersected grid cells. You must first provide the geometry of the streamlines representation before to use this method.

Exceptions
std::invalid_argumentIf gridIndices, cellIndices, localFacePairPerCellIndices or hdfProxy is nullptr.
std::invalid_argumentIf cellCount == 0.
std::logic_errorIf the geometry of the streamlines have not been provided before using this method.
Parameters
gridIndicesAn 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.
gridIndicesNullValueThe null value used in gridIndices in order to indicate that an interval does not correspond to any intersected grid.
cellIndicesAn array containing the intersected cell index. They are ordered according to geoemtry intervals and gridIndices. The array length must equal the getIntervalCount. The null value is arbitrarily set to -1 since it has no interest. Indeed corresponding gridIndex already informs about the presence or not of a cell.
localFacePairPerCellIndicesAn array containing, for each cell, the entry and exit intersection faces of the line in the cell. The array dimension must equal twice getIntervalCount.
localFacePairPerCellIndicesNullValueThe 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]hdfProxyThe 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.

◆ setWellboreInformation()

void resqml2_0_1::StreamlinesRepresentation::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

Specify the wellbores on which streamlines may originate or terminate.

Parameters
[in]injectorPerLineThe 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]producerPerLineThe 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]wellboreTrajectoriesThe list of WellboreTrajectoryRepresentation references.
[in]nullValueThe 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.

Member Data Documentation

◆ XML_NS

const char* resqml2_0_1::StreamlinesRepresentation::XML_NS
static

The standard XML namespace for serializing this data object.


The documentation for this class was generated from the following file: