21 #include "../common/AbstractObject.h"
23 #include "PvtSpecification.h"
28 class RockFluidUnitInterpretation;
38 #define GETTER_FLUID_CATALOG_COMPONENT_ATTRIBUTE(vectorName, attributeName, attributeDatatype)\
39 DLL_IMPORT_OR_EXPORT attributeDatatype get##vectorName##attributeName(unsigned int index) const {\
40 if (static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog == nullptr ||\
41 static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName.size() <= index) { throw std::out_of_range("The index is out of range"); }\
42 return static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName;\
52 #define GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(vectorName, attributeName, attributeDatatype)\
53 DLL_IMPORT_OR_EXPORT void set##vectorName##attributeName(unsigned int index, const attributeDatatype& value);\
54 DLL_IMPORT_OR_EXPORT bool has##vectorName##attributeName(unsigned int index) const {\
55 return static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog != nullptr &&\
56 static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName.size() > index &&\
57 static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName != nullptr;\
59 DLL_IMPORT_OR_EXPORT attributeDatatype get##vectorName##attributeName(unsigned int index) const {\
60 if (!has##vectorName##attributeName(index)) { throw std::out_of_range("The index is out of range"); }\
61 return *static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName;\
71 #define GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(vectorName, attributeName, uomDatatype)\
72 DLL_IMPORT_OR_EXPORT void set##vectorName##attributeName(unsigned int index, double value, uomDatatype uom);\
73 DLL_IMPORT_OR_EXPORT bool has##vectorName##attributeName(unsigned int index) const {\
74 return static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog != nullptr &&\
75 static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName.size() > index &&\
76 static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName != nullptr;\
78 DLL_IMPORT_OR_EXPORT double get##vectorName##attributeName##Value(unsigned int index) const {\
79 if (!has##vectorName##attributeName(index)) { throw std::out_of_range("The index is out of range"); }\
80 return static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName->__item;\
82 DLL_IMPORT_OR_EXPORT uomDatatype get##vectorName##attributeName##Uom(unsigned int index) const {\
83 if (!has##vectorName##attributeName(index)) { throw std::out_of_range("The index is out of range"); }\
84 return static_cast<gsoap_eml2_2::prodml21__FluidCharacterization*>(gsoapProxy2_2)->FluidComponentCatalog->vectorName[index]->attributeName->uom;\
92 #define GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(vectorName)\
93 GETTER_FLUID_CATALOG_COMPONENT_ATTRIBUTE(vectorName, uid, std::string)\
94 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(vectorName, Remark, std::string)\
95 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(vectorName, MassFraction, gsoap_eml2_2::eml22__MassPerMassUom)\
96 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(vectorName, MoleFraction, gsoap_eml2_2::eml22__AmountOfSubstancePerAmountOfSubstanceUom)
98 namespace PRODML2_1_NS
120 DLL_IMPORT_OR_EXPORT
FluidCharacterization(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
132 const std::string & guid,
133 const std::string & title);
144 for (
size_t i = 0; i < modelSpecifications.size(); ++i) {
145 if (modelSpecifications[i] !=
nullptr) {
146 delete modelSpecifications[i];
151 GETTER_SETTER_OPTIONAL_ATTRIBUTE(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, FluidCharacterizationType, std::string)
152 GETTER_SETTER_OPTIONAL_ATTRIBUTE(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, IntendedUsage, std::string)
153 GETTER_SETTER_OPTIONAL_ATTRIBUTE(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, Remark, std::string)
163 DLL_IMPORT_OR_EXPORT
void setStandardConditions(
double temperatureValue, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom temperatureUom,
164 double pressureValue, gsoap_eml2_2::eml22__PressureUom pressureUom);
171 DLL_IMPORT_OR_EXPORT
bool hasStandardConditions() const;
178 DLL_IMPORT_OR_EXPORT
double getStandardTemperatureValue() const;
185 DLL_IMPORT_OR_EXPORT gsoap_eml2_2::eml22__ThermodynamicTemperatureUom getStandardTemperatureUom() const;
192 DLL_IMPORT_OR_EXPORT
double getStandardPressureValue() const;
199 DLL_IMPORT_OR_EXPORT gsoap_eml2_2::eml22__PressureUom getStandardPressureUom() const;
206 DLL_IMPORT_OR_EXPORT
void setRockFluidUnit(RESQML2_NS::RockFluidUnitInterpretation* rockFluidUnit);
213 COMMON_NS::DataObjectReference getRockFluidUnitDor() const;
220 DLL_IMPORT_OR_EXPORT RESQML2_NS::RockFluidUnitInterpretation* getRockFluidUnit() const;
227 DLL_IMPORT_OR_EXPORT
void setFluidSystem(class
FluidSystem* fluidSystem);
234 COMMON_NS::DataObjectReference getFluidSystemDor() const;
248 DLL_IMPORT_OR_EXPORT
unsigned int getFormationWaterCount() const;
255 DLL_IMPORT_OR_EXPORT
void pushBackFormationWater(const std::
string & uid);
256 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(FormationWater)
257 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(FormationWater, Salinity, gsoap_eml2_2::eml22__MassPerMassUom)
258 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(FormationWater, SpecificGravity,
double)
265 DLL_IMPORT_OR_EXPORT
unsigned int getPureFluidComponentCount() const;
274 DLL_IMPORT_OR_EXPORT
void pushBackPureFluidComponent(const std::
string & uid, gsoap_eml2_2::prodml21__PureComponentEnum kind,
bool hydrocarbonFlag);
275 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(PureFluidComponent)
276 GETTER_FLUID_CATALOG_COMPONENT_ATTRIBUTE(PureFluidComponent, Kind, std::
string)
277 GETTER_FLUID_CATALOG_COMPONENT_ATTRIBUTE(PureFluidComponent, HydrocarbonFlag,
bool)
278 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PureFluidComponent, MolecularWeight, gsoap_eml2_2::eml22__MolecularWeightUom)
285 DLL_IMPORT_OR_EXPORT
unsigned int getPlusFluidComponentCount() const;
293 DLL_IMPORT_OR_EXPORT
void pushBackPlusFluidComponent(const std::
string & uid, gsoap_eml2_2::prodml21__PlusComponentEnum kind);
294 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(PlusFluidComponent)
295 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(PlusFluidComponent, SpecificGravity,
double)
296 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(PlusFluidComponent, StartingCarbonNumber, uint64_t)
297 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PlusFluidComponent, StartingBoilingPoint, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
298 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PlusFluidComponent, AvgDensity, std::
string)
299 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PlusFluidComponent, AvgMolecularWeight, gsoap_eml2_2::eml22__MolecularWeightUom)
306 DLL_IMPORT_OR_EXPORT
unsigned int getStockTankOilCount() const;
313 DLL_IMPORT_OR_EXPORT
void pushBackStockTankOil(const std::
string & uid);
314 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(StockTankOil)
315 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, APIGravity, gsoap_eml2_2::eml22__APIGravityUom)
316 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, MolecularWeight, gsoap_eml2_2::eml22__MolecularWeightUom)
317 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, GrossEnergyContentPerUnitMass, gsoap_eml2_2::eml22__EnergyPerMassUom)
318 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, NetEnergyContentPerUnitMass, gsoap_eml2_2::eml22__EnergyPerMassUom)
319 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, GrossEnergyContentPerUnitVolume, gsoap_eml2_2::eml22__EnergyPerVolumeUom)
320 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(StockTankOil, NetEnergyContentPerUnitVolume, gsoap_eml2_2::eml22__EnergyPerVolumeUom)
327 DLL_IMPORT_OR_EXPORT
unsigned int getNaturalGasCount() const;
334 DLL_IMPORT_OR_EXPORT
void pushBackNaturalGas(const std::
string & uid);
335 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(NaturalGas)
336 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(NaturalGas, GasGravity,
double)
337 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(NaturalGas, MolecularWeight, gsoap_eml2_2::eml22__MolecularWeightUom)
338 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(NaturalGas, GrossEnergyContentPerUnitMass, gsoap_eml2_2::eml22__EnergyPerMassUom)
339 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(NaturalGas, NetEnergyContentPerUnitMass, gsoap_eml2_2::eml22__EnergyPerMassUom)
340 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(NaturalGas, GrossEnergyContentPerUnitVolume, gsoap_eml2_2::eml22__EnergyPerVolumeUom)
341 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(NaturalGas, NetEnergyContentPerUnitVolume, gsoap_eml2_2::eml22__EnergyPerVolumeUom)
348 DLL_IMPORT_OR_EXPORT
unsigned int getPseudoFluidComponentCount() const;
356 DLL_IMPORT_OR_EXPORT
void pushBackPseudoFluidComponent(const std::
string & uid, gsoap_eml2_2::prodml21__PseudoComponentEnum kind);
357 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_COMMON_ATTRIBUTES(PseudoFluidComponent)
358 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(PseudoFluidComponent, SpecificGravity,
double)
359 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(PseudoFluidComponent, StartingCarbonNumber, uint64_t)
360 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_OPTIONAL_ATTRIBUTE(PseudoFluidComponent, EndingCarbonNumber, uint64_t)
361 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PseudoFluidComponent, StartingBoilingPoint, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
362 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PseudoFluidComponent, EndingBoilingPoint, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
363 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PseudoFluidComponent, AvgBoilingPoint, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
364 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PseudoFluidComponent, AvgDensity, std::
string)
365 GETTER_AND_SETTER_FLUID_CATALOG_COMPONENT_MEASURE_ATTRIBUTE(PseudoFluidComponent, AvgMolecularWeight, gsoap_eml2_2::eml22__MolecularWeightUom)
369 CompositionalThermal = 0,
371 PengRobinson76Eos = 2,
372 PengRobinson78Eos = 3,
373 LohrenzBrayClarkCorrelation = 4,
377 CorrelationThermal = 8,
378 BergmanSuttonBubblePoint = 9,
379 DeGhettoBubblePoint = 10,
380 StandingBubblePoint = 11,
381 DindorukChristmanBubblePoint = 12,
382 PetroskyFarshadBubblePoint = 13
419 GETTER_SETTER_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, FluidCharacterizationModel, Name, std::string)
420 GETTER_SETTER_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, FluidCharacterizationModel, Remark, std::string)
421 GETTER_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, FluidCharacterizationModel, ReferenceTemperature, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
422 GETTER_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR(gsoap_eml2_2::prodml21__FluidCharacterization, gsoapProxy2_2, FluidCharacterizationModel, ReferenceStockTankTemperature, gsoap_eml2_2::eml22__ThermodynamicTemperatureUom)
429 DLL_IMPORT_OR_EXPORT
unsigned int getTableFormatCount() const;
436 DLL_IMPORT_OR_EXPORT
void pushBackTableFormat(const std::
string & uid = "");
445 DLL_IMPORT_OR_EXPORT uint64_t getTableFormatColumnCount(const std::
string & tableFormatUid) const;
454 DLL_IMPORT_OR_EXPORT std::
string getTableFormatColumnUom(const std::
string & tableFormatUid,
unsigned int columnIndex) const;
463 DLL_IMPORT_OR_EXPORT std::
string getTableFormatColumnProperty(const std::
string & tableFormatUid,
unsigned int columnIndex) const;
472 DLL_IMPORT_OR_EXPORT
void pushBackTableFormatColumn(
unsigned int tableFormatIndex, gsoap_eml2_2::eml22__UnitOfMeasure uom, gsoap_eml2_2::prodml21__OutputFluidProperty fluidProperty);
481 DLL_IMPORT_OR_EXPORT
void pushBackTableFormatColumn(
unsigned int tableFormatIndex, const std::
string & uom, const std::
string & fluidProperty);
489 DLL_IMPORT_OR_EXPORT
unsigned int getTableCount(
unsigned int modelIndex) const;
498 DLL_IMPORT_OR_EXPORT std::
string getTableName(
unsigned int modelIndex,
unsigned int tableIndex) const;
507 DLL_IMPORT_OR_EXPORT std::
string getTableFormatUid(
unsigned int modelIndex,
unsigned int tableIndex) const;
517 DLL_IMPORT_OR_EXPORT
void pushBackTable(
unsigned int modelIndex, const std::
string & name, const std::
string & tableFormatUid, const std::
string & uid = "");
526 DLL_IMPORT_OR_EXPORT
unsigned int getTableRowCount(
unsigned int modelIndex,
unsigned int tableIndex) const;
536 DLL_IMPORT_OR_EXPORT std::
string getTableRowContent(
unsigned int modelIndex,
unsigned int tableIndex,
unsigned int rowIndex) const;
545 DLL_IMPORT_OR_EXPORT
void pushBackTableRow(
unsigned int modelIndex,
unsigned int tableIndex, const std::vector<
double> & rowContent);
555 DLL_IMPORT_OR_EXPORT
void pushBackTableRow(
unsigned int modelIndex,
unsigned int tableIndex, const std::vector<
double> & rowContent,
bool isSaturated);
565 DLL_IMPORT_OR_EXPORT
void pushBackParameter(
unsigned int modelIndex,
double value, gsoap_eml2_2::eml22__UnitOfMeasure uom, gsoap_eml2_2::prodml21__OutputFluidProperty fluidProperty);
576 DLL_IMPORT_OR_EXPORT
void pushBackParameter(
unsigned int modelIndex,
double value, gsoap_eml2_2::eml22__UnitOfMeasure uom, gsoap_eml2_2::prodml21__OutputFluidProperty fluidProperty, gsoap_eml2_2::prodml21__ThermodynamicPhase phase);
583 DLL_IMPORT_OR_EXPORT static const
char* XML_TAG;
590 DLL_IMPORT_OR_EXPORT virtual std::
string getXmlTag() const final {
return XML_TAG; }
595 DLL_IMPORT_OR_EXPORT
static const char*
XML_NS;
Definition: FluidCharacterization.h:110
~FluidCharacterization()
Definition: FluidCharacterization.h:143
ModelSpecification
Definition: FluidCharacterization.h:368
FluidCharacterization(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: FluidCharacterization.h:120
static const char * XML_NS
Definition: FluidCharacterization.h:595
PvtSpecification * initModelSpecification(unsigned int modelIndex, ModelSpecification kind)
FluidCharacterization(common::DataObjectRepository *repo, const std::string &guid, const std::string &title)
FluidCharacterization(gsoap_eml2_2::prodml21__FluidCharacterization *fromGsoap)
Definition: FluidCharacterization.h:140
PvtSpecification * getModelSpecification(unsigned int modelIndex)
Definition: FluidCharacterization.h:406
void pushBackModel(const std::string &uid="")
void loadTargetRelationships() final
std::string getXmlNamespace() const final
Definition: FluidCharacterization.h:600
unsigned int getModelCount() const
Definition: FluidSystem.h:103
Definition: PvtSpecification.h:42