Specification of the vector field upon which the streamlines are based.
More...
#include <StreamlinesRepresentation.h>
|
| StreamlinesRepresentation (gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject) |
|
| StreamlinesRepresentation (gsoap_eml2_3::resqml22__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 patchIndex, double *xyzPoints) 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 |
|
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.
◆ StreamlinesRepresentation() [1/3]
resqml2_2::StreamlinesRepresentation::StreamlinesRepresentation |
( |
gsoap_resqml2_0_1::eml20__DataObjectReference * | partialObject | ) |
|
|
inline |
Only to be used in partial transfer context.
- Parameters
-
[in] | partialObject | If non-nullptr, the partial object. |
◆ StreamlinesRepresentation() [2/3]
resqml2_2::StreamlinesRepresentation::StreamlinesRepresentation |
( |
gsoap_eml2_3::resqml22__StreamlinesRepresentation * | fromGsoap | ) |
|
|
inline |
Creates an instance of this class by wrapping a gSOAP instance.
- Parameters
-
[in] | fromGsoap | If non-null, the gSOAP instance. |
◆ StreamlinesRepresentation() [3/3]
resqml2_2::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_argument | If interp == nullptr . |
- Parameters
-
[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. |
◆ ~StreamlinesRepresentation()
resqml2_2::StreamlinesRepresentation::~StreamlinesRepresentation |
( |
| ) |
|
|
default |
Destructor does nothing since the memory is managed by the gSOAP context.
◆ getCellIndices()
int64_t resqml2_2::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_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. |
- Parameters
-
[out] | cellIndices | An 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_2::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_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. |
- Parameters
-
[out] | gridIndices | An 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_2::StreamlinesRepresentation::getGridRepresentationCount |
( |
| ) |
const |
|
final |
Gets the count of grid representations of this streamlines representation.
- Exceptions
-
std::range_error | If the count of grid representations is strictly greater than unsigned int max. |
- Returns
- The count of grid representation.
◆ getGridRepresentationDor()
Get the DOR of the grid representation located at a specific index of this streamlines representation.
- Exceptions
-
std::out_of_range | If index >= getSupportingGridRepresentationCount(). |
- Parameters
-
index | Zero-based index of the grid representation we look for. |
- Returns
- The DOR of the grid representation at position
index
.
◆ getHdfProxyDor()
- Exceptions
-
std::logic_error | If the underlying gSOAP instance is not a RESQML v2.0 or RESQML v2.0 one. |
◆ getInjectorPerLine()
uint32_t resqml2_2::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_2::StreamlinesRepresentation::getLineCount |
( |
| ) |
const |
|
final |
Gets the count of line contained in this streamlines representation.
- Exceptions
-
std::logic_error | If this feature is partial. |
- Returns
- The count of line contained in this streamlines representation.
◆ getLocalFacePairPerCellIndices()
uint8_t resqml2_2::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_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. |
- Parameters
-
[out] | gridIndices | An 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_2::StreamlinesRepresentation::getNodeCountPerLine |
( |
uint32_t * | nodeCountPerPolyline | ) |
const |
|
final |
Gets the node count per line.
- Parameters
-
[out] | nodeCountPerPolyline | A preallocated array to receive the node count per line. Its size must be getLineCount(patchIndex) . |
◆ getProducerPerLine()
uint32_t resqml2_2::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_2::StreamlinesRepresentation::getWellboreTrajectoryCount |
( |
| ) |
const |
|
final |
Gets the count of wellbore trajectories of this streamlines representation.
- Exceptions
-
std::range_error | If the count of wellbore trajectories is strictly greater than unsigned int max. |
- Returns
- The count of wellbore trajectories.
◆ getWellboreTrajectoryDor()
Get the DOR of the wellbore trajectory located at a specific index of this streamlines representation.
- Exceptions
-
- Parameters
-
index | Zero-based index of the wellbore trajectory we look for. |
- Returns
- The DOR of the wellbore trajectory at position
index
.
◆ getXmlNamespace()
std::string resqml2_2::StreamlinesRepresentation::getXmlNamespace |
( |
| ) |
const |
|
inlinefinal |
Get the standard XML namespace for serializing this data object.
◆ getXyzPointsOfPatch()
void resqml2_2::StreamlinesRepresentation::getXyzPointsOfPatch |
( |
unsigned int | patchIndex, |
|
|
double * | xyzPoints ) const |
|
final |
Use linear interpolation between 2 trajectory stations.
◆ setGeometry()
void resqml2_2::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_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. |
- Parameters
-
[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. |
◆ setIntervalGridCells()
void resqml2_2::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_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. |
- Parameters
-
| 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. 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. |
| 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 . |
◆ setWellboreInformation()
void resqml2_2::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] | 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. |
◆ XML_NS
const char* resqml2_2::StreamlinesRepresentation::XML_NS |
|
static |
The standard XML namespace for serializing this data object.
The documentation for this class was generated from the following file: