28#ifndef OPM_BLACK_OIL_FLUID_STATE_HH
29#define OPM_BLACK_OIL_FLUID_STATE_HH
33#include <opm/common/utility/gpuDecorators.hpp>
34#include <opm/material/fluidsystems/BlackOilFluidSystem.hpp>
44template <class FluidState>
45OPM_HOST_DEVICE
unsigned getPvtRegionIndex_(typename std::enable_if<HasMember_pvtRegionIndex<FluidState>::value,
46 const FluidState&>::type fluidState)
47{
return fluidState.pvtRegionIndex(); }
49template <
class Flu
idState>
50OPM_HOST_DEVICE
unsigned getPvtRegionIndex_(
typename std::enable_if<!HasMember_pvtRegionIndex<FluidState>::value,
51 const FluidState&>::type)
56template <class FluidSystem, class FluidState, class LhsEval>
58auto getInvB_(typename std::enable_if<HasMember_invB<FluidState>::value,
59 const FluidState&>::type fluidState,
62 [[maybe_unused]] const FluidSystem& fluidSystem = FluidSystem{})
63 ->
decltype(decay<LhsEval>(fluidState.invB(phaseIdx)))
64{
return decay<LhsEval>(fluidState.invB(phaseIdx)); }
66template <
class Flu
idSystem,
class Flu
idState,
class LhsEval>
68LhsEval getInvB_(
typename std::enable_if<!HasMember_invB<FluidState>::value,
69 const FluidState&>::type fluidState,
71 unsigned pvtRegionIdx,
72 const FluidSystem& fluidSystem = FluidSystem{})
74 const auto& rho = fluidState.density(phaseIdx);
75 const auto& Xsolvent =
76 fluidState.massFraction(phaseIdx, fluidSystem.solventComponentIndex(phaseIdx));
80 *decay<LhsEval>(Xsolvent)
81 /fluidSystem.referenceDensity(phaseIdx, pvtRegionIdx);
86template <class FluidState>
87OPM_HOST_DEVICE auto getSaltConcentration_(typename std::enable_if<HasMember_saltConcentration<FluidState>::value,
88 const FluidState&>::type fluidState)
89{
return fluidState.saltConcentration(); }
91template <
class Flu
idState>
92OPM_HOST_DEVICE
auto getSaltConcentration_(
typename std::enable_if<!HasMember_saltConcentration<FluidState>::value,
93 const FluidState&>::type)
98template <class FluidState>
99OPM_HOST_DEVICE auto getSaltSaturation_(typename std::enable_if<HasMember_saltSaturation<FluidState>::value,
100 const FluidState&>::type fluidState)
101{
return fluidState.saltSaturation(); }
104template <
class Flu
idState>
105OPM_HOST_DEVICE
auto getSaltSaturation_(
typename std::enable_if<!HasMember_saltSaturation<FluidState>::value,
106 const FluidState&>::type)
111template <class FluidState>
112OPM_HOST_DEVICE auto getSolventSaturation_(typename std::enable_if<HasMember_solventSaturation<FluidState>::value,
113 const FluidState&>::type fluidState)
114{
return fluidState.solventSaturation(); }
116template <
class Flu
idState>
117OPM_HOST_DEVICE
auto getSolventSaturation_(
typename std::enable_if<!HasMember_solventSaturation<FluidState>::value,
118 const FluidState&>::type)
128template <
class ValueT,
130 bool storeTemperature =
false,
131 bool storeEnthalpy =
false,
132 bool enableDissolution =
true,
133 bool enableVapwat =
false,
134 bool enableBrine =
false,
135 bool enableSaltPrecipitation =
false,
136 bool enableDissolutionInWater =
false,
137 bool enableSolvent =
false,
138 unsigned numStoragePhases = FluidSystemT::numPhases>
142 using FluidSystem = FluidSystemT;
143 using ValueType = ValueT;
145 static constexpr int waterPhaseIdx = FluidSystem::waterPhaseIdx;
146 static constexpr int gasPhaseIdx = FluidSystem::gasPhaseIdx;
147 static constexpr int oilPhaseIdx = FluidSystem::oilPhaseIdx;
149 static constexpr int waterCompIdx = FluidSystem::waterCompIdx;
150 static constexpr int gasCompIdx = FluidSystem::gasCompIdx;
151 static constexpr int oilCompIdx = FluidSystem::oilCompIdx;
153 static constexpr int numPhases = FluidSystem::numPhases;
154 static constexpr int numComponents = FluidSystem::numComponents;
156 static constexpr bool fluidSystemIsStatic = std::is_empty_v<FluidSystem>;
165 if constexpr (!fluidSystemIsStatic) {
173 template<
class OtherFlu
idSystemType>
174 auto withOtherFluidSystem(
const OtherFluidSystemType& other)
const
182 enableSaltPrecipitation,
183 enableDissolutionInWater,
185 numStoragePhases>(other);
186 bfstate.assign(*
this);
197 static_assert(fluidSystemIsStatic);
213 for (
unsigned storagePhaseIdx = 0; storagePhaseIdx < numStoragePhases; ++ storagePhaseIdx) {
219 if constexpr (storeEnthalpy)
223 if constexpr (enableDissolution) {
228 if constexpr (enableVapwat) {
232 if constexpr (enableDissolutionInWater) {
236 if constexpr (enableBrine) {
240 if constexpr (enableSaltPrecipitation) {
244 if constexpr (enableSolvent) {
251 if constexpr (storeTemperature)
260 template <
class Flu
idState>
261 OPM_HOST_DEVICE
void assign(
const FluidState& fs)
263 if constexpr (storeTemperature)
266 unsigned pvtRegionIdx = getPvtRegionIndex_<FluidState>(fs);
271 if constexpr (enableDissolution) {
272 setRs(BlackOil::getRs_<FluidSystem, FluidState, ValueType>(fs, pvtRegionIdx));
273 setRv(BlackOil::getRv_<FluidSystem, FluidState, ValueType>(fs, pvtRegionIdx));
275 if constexpr (enableVapwat) {
276 setRvw(BlackOil::getRvw_<FluidSystem, FluidState, ValueType>(fs, pvtRegionIdx));
278 if constexpr (enableDissolutionInWater) {
279 setRsw(BlackOil::getRsw_<FluidSystem, FluidState, ValueType>(fs, pvtRegionIdx));
281 if constexpr (enableBrine){
284 if constexpr (enableSaltPrecipitation){
285 setSaltSaturation(BlackOil::getSaltSaturation_<FluidSystem, FluidState, ValueType>(fs, pvtRegionIdx));
287 if constexpr (enableSolvent) {
289 setSolventDensity(BlackOil::getSolventDensity_<FluidState, ValueType>(fs, pvtRegionIdx));
290 setSolventInvB(BlackOil::getSolventInvB_<FluidState, ValueType>(fs, pvtRegionIdx));
291 setRsSolw(BlackOil::getRsSolw_<FluidState, ValueType>(fs, pvtRegionIdx));
293 for (
unsigned storagePhaseIdx = 0; storagePhaseIdx < numStoragePhases; ++storagePhaseIdx) {
294 unsigned phaseIdx = storageToCanonicalPhaseIndex_(storagePhaseIdx,
fluidSystem());
299 if constexpr (storeEnthalpy)
302 setInvB(phaseIdx, getInvB_<FluidSystem, FluidState, ValueType>(fs, phaseIdx, pvtRegionIdx,
fluidSystem()));
313 { pvtRegionIdx_ =
static_cast<unsigned short>(newPvtRegionIdx); }
318 OPM_HOST_DEVICE
void setPressure(
unsigned phaseIdx,
const ValueType& p)
319 { pressure_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())] = p; }
325 { saturation_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())] = S; }
332 totalSaturation_ = value;
343 assert(storeTemperature);
345 (*temperature_) = value;
354 OPM_HOST_DEVICE
void setEnthalpy(
unsigned phaseIdx,
const ValueType& value)
356 assert(storeEnthalpy);
358 (*enthalpy_)[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())] = value;
364 OPM_HOST_DEVICE
void setInvB(
unsigned phaseIdx,
const ValueType& b)
365 { invB_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())] = b; }
370 OPM_HOST_DEVICE
void setDensity(
unsigned phaseIdx,
const ValueType& rho)
371 { density_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())] = rho; }
378 OPM_HOST_DEVICE
void setRs(
const ValueType& newRs)
386 OPM_HOST_DEVICE
void setRv(
const ValueType& newRv)
394 OPM_HOST_DEVICE
void setRvw(
const ValueType& newRvw)
402 OPM_HOST_DEVICE
void setRsw(
const ValueType& newRsw)
409 { *saltConcentration_ = newSaltConcentration; }
415 { *saltSaturation_ = newSaltSaturation; }
421 { *solventSaturation_ = newSolventSaturation; }
427 { *solventDensity_ = newSolventDensity; }
433 { *solventInvB_ = newSolventInvB; }
438 OPM_HOST_DEVICE
void setRsSolw(
const ValueType& newRsSolw)
439 { *rsSolw_ = newRsSolw; }
444 OPM_HOST_DEVICE
const ValueType&
pressure(
unsigned phaseIdx)
const
445 {
return pressure_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())]; }
450 OPM_HOST_DEVICE
const ValueType&
saturation(
unsigned phaseIdx)
const
451 {
return saturation_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())]; }
458 return totalSaturation_;
466 if constexpr (storeTemperature) {
467 return *temperature_;
469 return fluidSystem().reservoirTemperature(pvtRegionIdx_);
479 OPM_HOST_DEVICE
const ValueType&
invB(
unsigned phaseIdx)
const
480 {
return invB_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())]; }
489 OPM_HOST_DEVICE ValueType
Rs()
const
491 if constexpr (enableDissolution) {
494 return ValueType{0.0};
505 OPM_HOST_DEVICE ValueType
Rv()
const
507 if constexpr (!enableDissolution) {
508 return ValueType{0.0};
521 OPM_HOST_DEVICE ValueType
Rvw()
const
523 if constexpr (enableVapwat) {
526 return ValueType{0.0};
537 OPM_HOST_DEVICE ValueType
Rsw()
const
539 if constexpr (enableDissolutionInWater) {
542 return ValueType{0.0};
551 if constexpr (enableBrine) {
552 return *saltConcentration_;
554 return ValueType{0.0};
563 if constexpr (enableSaltPrecipitation) {
564 return *saltSaturation_;
566 return ValueType{0.0};
575 if constexpr (enableSolvent) {
576 return *solventSaturation_;
578 return ValueType{0.0};
587 if constexpr (enableSolvent) {
588 return *solventDensity_;
590 return ValueType{0.0};
599 if constexpr (enableSolvent) {
600 return *solventInvB_;
602 return ValueType{0.0};
611 if constexpr (enableSolvent) {
614 return ValueType{0.0};
623 {
return pvtRegionIdx_; }
628 OPM_HOST_DEVICE ValueType
density(
unsigned phaseIdx)
const
629 {
return density_[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())]; }
637 OPM_HOST_DEVICE
const ValueType&
enthalpy(
unsigned phaseIdx)
const
638 {
return (*enthalpy_)[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())]; }
647 {
auto energy = (*enthalpy_)[canonicalToStoragePhaseIndex_(phaseIdx,
fluidSystem())];
663 const auto& rho =
density(phaseIdx);
665 if (phaseIdx == waterPhaseIdx)
666 return rho/
fluidSystem().molarMass(waterCompIdx, pvtRegionIdx_);
685 OPM_HOST_DEVICE ValueType
viscosity(
unsigned phaseIdx)
const
686 {
return fluidSystem().viscosity(*
this, phaseIdx, pvtRegionIdx_); }
691 OPM_HOST_DEVICE ValueType
massFraction(
unsigned phaseIdx,
unsigned compIdx)
const
695 if (compIdx == waterCompIdx)
700 if (compIdx == waterCompIdx)
702 else if (compIdx == oilCompIdx)
703 return 1.0 -
fluidSystem().convertRsToXoG(
Rs(), pvtRegionIdx_);
705 assert(compIdx == gasCompIdx);
711 if (compIdx == waterCompIdx)
713 else if (compIdx == oilCompIdx)
716 assert(compIdx == gasCompIdx);
717 return 1.0 -
fluidSystem().convertRvToXgO(
Rv(), pvtRegionIdx_);
722 OPM_THROW(std::logic_error,
"Invalid phase or component index!");
728 OPM_HOST_DEVICE ValueType
moleFraction(
unsigned phaseIdx,
unsigned compIdx)
const
732 if (compIdx == waterCompIdx)
737 if (compIdx == waterCompIdx)
739 else if (compIdx == oilCompIdx)
743 assert(compIdx == gasCompIdx);
750 if (compIdx == waterCompIdx)
752 else if (compIdx == oilCompIdx)
756 assert(compIdx == gasCompIdx);
763 OPM_THROW(std::logic_error,
"Invalid phase or component index!");
769 OPM_HOST_DEVICE ValueType
molarity(
unsigned phaseIdx,
unsigned compIdx)
const
777 ValueType result{0.0};
778 for (
unsigned compIdx = 0; compIdx < numComponents; ++ compIdx)
787 {
return fluidSystem().fugacityCoefficient(*
this, phaseIdx, compIdx, pvtRegionIdx_); }
792 OPM_HOST_DEVICE ValueType
fugacity(
unsigned phaseIdx,
unsigned compIdx)
const
821 if constexpr (fluidSystemIsStatic) {
822 static FluidSystem instance;
825 return **fluidSystemPtr_;
830 OPM_HOST_DEVICE
static unsigned storageToCanonicalPhaseIndex_(
unsigned storagePhaseIdx,
const FluidSystem&
fluidSystem)
832 if constexpr (numStoragePhases == 3)
833 return storagePhaseIdx;
835 return fluidSystem.activeToCanonicalPhaseIdx(storagePhaseIdx);
838 OPM_HOST_DEVICE
static unsigned canonicalToStoragePhaseIndex_(
unsigned canonicalPhaseIdx,
const FluidSystem&
fluidSystem)
840 if constexpr (numStoragePhases == 3)
841 return canonicalPhaseIdx;
843 return fluidSystem.canonicalToActivePhaseIdx(canonicalPhaseIdx);
846 ConditionalStorage<storeTemperature, ValueType> temperature_{};
847 ConditionalStorage<storeEnthalpy, std::array<ValueType, numStoragePhases> > enthalpy_{};
848 ValueType totalSaturation_{};
849 std::array<ValueType, numStoragePhases> pressure_{};
850 std::array<ValueType, numStoragePhases> saturation_{};
851 std::array<ValueType, numStoragePhases> invB_{};
852 std::array<ValueType, numStoragePhases> density_{};
853 ConditionalStorage<enableDissolution,ValueType> Rs_{};
854 ConditionalStorage<enableDissolution, ValueType> Rv_{};
855 ConditionalStorage<enableVapwat,ValueType> Rvw_{};
856 ConditionalStorage<enableDissolutionInWater,ValueType> Rsw_{};
857 ConditionalStorage<enableBrine, ValueType> saltConcentration_{};
858 ConditionalStorage<enableSaltPrecipitation, ValueType> saltSaturation_{};
859 ConditionalStorage<enableSolvent, ValueType> solventSaturation_{};
860 ConditionalStorage<enableSolvent, ValueType> solventDensity_{};
861 ConditionalStorage<enableSolvent, ValueType> solventInvB_{};
862 ConditionalStorage<enableSolvent, ValueType> rsSolw_{};
864 unsigned short pvtRegionIdx_{};
868 ConditionalStorage<!fluidSystemIsStatic, FluidSystem const*> fluidSystemPtr_;
A simple class which only stores a given member attribute if a boolean condition is true.
This macro generates a class HasMember_${MEMBER_NAME} which can be used for template specialization.
#define OPM_GENERATE_HAS_MEMBER(MEMBER_NAME,...)
This macro generates a class HasMember_${MEMBER_NAME} which can be used for template specialization.
Definition HasMemberGeneratorMacros.hpp:49
Some templates to wrap the valgrind client request macros.
OPM_HOST_DEVICE bool CheckDefined(const T &value)
Make valgrind complain if any of the memory occupied by an object is undefined.
Definition Valgrind.hpp:76
Implements a "tailor-made" fluid state class for the black-oil model.
Definition BlackOilFluidState.hpp:140
OPM_HOST_DEVICE void setPvtRegionIndex(unsigned newPvtRegionIdx)
Set the index of the fluid region.
Definition BlackOilFluidState.hpp:312
OPM_HOST_DEVICE void setRv(const ValueType &newRv)
Set the oil vaporization factor [m^3/m^3] of the gas phase.
Definition BlackOilFluidState.hpp:386
OPM_HOST_DEVICE ValueType solventDensity() const
Return the solvent density [kg/m^3].
Definition BlackOilFluidState.hpp:585
OPM_HOST_DEVICE const ValueType & totalSaturation() const
Return the total saturation needed for sequential.
Definition BlackOilFluidState.hpp:456
OPM_HOST_DEVICE ValueType molarDensity(unsigned phaseIdx) const
Return the molar density of a fluid phase [mol/m^3].
Definition BlackOilFluidState.hpp:661
OPM_HOST_DEVICE void setEnthalpy(unsigned phaseIdx, const ValueType &value)
Set the specific enthalpy [J/kg] of a given fluid phase.
Definition BlackOilFluidState.hpp:354
OPM_HOST_DEVICE void setRsw(const ValueType &newRsw)
Set the gas dissolution factor [m^3/m^3] of the water phase.
Definition BlackOilFluidState.hpp:402
OPM_HOST_DEVICE ValueType fugacity(unsigned phaseIdx, unsigned compIdx) const
Return the fugacity of a component in a fluid phase [Pa].
Definition BlackOilFluidState.hpp:792
OPM_HOST_DEVICE BlackOilFluidState(const FluidSystem &fluidSystem)
Construct a fluid state object.
Definition BlackOilFluidState.hpp:163
OPM_HOST_DEVICE const ValueType & pressure(unsigned phaseIdx) const
Return the pressure of a fluid phase [Pa].
Definition BlackOilFluidState.hpp:444
OPM_HOST_DEVICE ValueType solventInvB() const
Return the solvent inverse formation volume factor [-].
Definition BlackOilFluidState.hpp:597
OPM_HOST_DEVICE const FluidSystem & fluidSystem() const
Return the fluid system used by this fluid state.
Definition BlackOilFluidState.hpp:819
OPM_HOST_DEVICE const ValueType & invB(unsigned phaseIdx) const
Return the inverse formation volume factor of a fluid phase [-].
Definition BlackOilFluidState.hpp:479
OPM_HOST_DEVICE ValueType saltConcentration() const
Return the concentration of salt in water.
Definition BlackOilFluidState.hpp:549
OPM_HOST_DEVICE ValueType moleFraction(unsigned phaseIdx, unsigned compIdx) const
Return the mole fraction of a component in a fluid phase [-].
Definition BlackOilFluidState.hpp:728
OPM_HOST_DEVICE BlackOilFluidState()
Construct a fluid state object.
Definition BlackOilFluidState.hpp:195
OPM_HOST_DEVICE void setSaturation(unsigned phaseIdx, const ValueType &S)
Set the saturation of a fluid phase [-].
Definition BlackOilFluidState.hpp:324
OPM_HOST_DEVICE ValueType viscosity(unsigned phaseIdx) const
Return the dynamic viscosity of a fluid phase [Pa s].
Definition BlackOilFluidState.hpp:685
OPM_HOST_DEVICE ValueType Rv() const
Return the oil vaporization factor of gas [m^3/m^3].
Definition BlackOilFluidState.hpp:505
OPM_HOST_DEVICE void setSolventInvB(const ValueType &newSolventInvB)
Set the solvent inverse formation volume factor [-].
Definition BlackOilFluidState.hpp:432
OPM_HOST_DEVICE const ValueType & enthalpy(unsigned phaseIdx) const
Return the specific enthalpy [J/kg] of a given fluid phase.
Definition BlackOilFluidState.hpp:637
OPM_HOST_DEVICE ValueType averageMolarMass(unsigned phaseIdx) const
Return the partial molar density of a fluid phase [kg / mol].
Definition BlackOilFluidState.hpp:775
OPM_HOST_DEVICE void assign(const FluidState &fs)
Retrieve all parameters from an arbitrary fluid state.
Definition BlackOilFluidState.hpp:261
OPM_HOST_DEVICE const ValueType & saturation(unsigned phaseIdx) const
Return the saturation of a fluid phase [-].
Definition BlackOilFluidState.hpp:450
OPM_HOST_DEVICE void setDensity(unsigned phaseIdx, const ValueType &rho)
\ brief Set the density of a fluid phase
Definition BlackOilFluidState.hpp:370
OPM_HOST_DEVICE ValueType rsSolw() const
Return the solvent dissolution factor in water [m^3/m^3].
Definition BlackOilFluidState.hpp:609
OPM_HOST_DEVICE void setSaltSaturation(const ValueType &newSaltSaturation)
Set the solid salt saturation.
Definition BlackOilFluidState.hpp:414
OPM_HOST_DEVICE void setPressure(unsigned phaseIdx, const ValueType &p)
Set the pressure of a fluid phase [-].
Definition BlackOilFluidState.hpp:318
OPM_HOST_DEVICE ValueType massFraction(unsigned phaseIdx, unsigned compIdx) const
Return the mass fraction of a component in a fluid phase [-].
Definition BlackOilFluidState.hpp:691
OPM_HOST_DEVICE void setTotalSaturation(const ValueType &value)
Set the total saturation used for sequential methods.
Definition BlackOilFluidState.hpp:330
OPM_HOST_DEVICE ValueType density(unsigned phaseIdx) const
Return the density [kg/m^3] of a given fluid phase.
Definition BlackOilFluidState.hpp:628
OPM_HOST_DEVICE ValueType internalEnergy(unsigned phaseIdx) const
Return the specific internal energy [J/kg] of a given fluid phase.
Definition BlackOilFluidState.hpp:646
OPM_HOST_DEVICE ValueType solventSaturation() const
Return the solvent saturation [-].
Definition BlackOilFluidState.hpp:573
OPM_HOST_DEVICE void setRsSolw(const ValueType &newRsSolw)
Set the solvent dissolution factor in water [m^3/m^3].
Definition BlackOilFluidState.hpp:438
OPM_HOST_DEVICE unsigned short pvtRegionIndex() const
Return the PVT region where the current fluid state is assumed to be part of.
Definition BlackOilFluidState.hpp:622
OPM_HOST_DEVICE void setSolventSaturation(const ValueType &newSolventSaturation)
Set the solvent saturation.
Definition BlackOilFluidState.hpp:420
bool phaseIsActive(int phaseIdx) const
Return if a phase is active (via the FluidSystem).
Definition BlackOilFluidState.hpp:807
OPM_HOST_DEVICE ValueType saltSaturation() const
Return the saturation of solid salt.
Definition BlackOilFluidState.hpp:561
OPM_HOST_DEVICE ValueType fugacityCoefficient(unsigned phaseIdx, unsigned compIdx) const
Return the fugacity coefficient of a component in a fluid phase [-].
Definition BlackOilFluidState.hpp:786
OPM_HOST_DEVICE void setSolventDensity(const ValueType &newSolventDensity)
Set the solvent density [kg/m^3].
Definition BlackOilFluidState.hpp:426
OPM_HOST_DEVICE void setSaltConcentration(const ValueType &newSaltConcentration)
Set the salt concentration.
Definition BlackOilFluidState.hpp:408
OPM_HOST_DEVICE ValueType temperature(unsigned) const
Return the temperature [K].
Definition BlackOilFluidState.hpp:464
OPM_HOST_DEVICE ValueType Rvw() const
Return the water vaporization factor of gas [m^3/m^3].
Definition BlackOilFluidState.hpp:521
OPM_HOST_DEVICE void setInvB(unsigned phaseIdx, const ValueType &b)
\ brief Set the inverse formation volume factor of a fluid phase
Definition BlackOilFluidState.hpp:364
OPM_HOST_DEVICE ValueType molarity(unsigned phaseIdx, unsigned compIdx) const
Return the partial molar density of a component in a fluid phase [mol / m^3].
Definition BlackOilFluidState.hpp:769
OPM_HOST_DEVICE ValueType molarVolume(unsigned phaseIdx) const
Return the molar volume of a fluid phase [m^3/mol].
Definition BlackOilFluidState.hpp:679
void checkDefined() const
Make sure that all attributes are defined.
Definition BlackOilFluidState.hpp:208
OPM_HOST_DEVICE void setRs(const ValueType &newRs)
Set the gas dissolution factor [m^3/m^3] of the oil phase.
Definition BlackOilFluidState.hpp:378
OPM_HOST_DEVICE ValueType Rs() const
Return the gas dissolution factor of oil [m^3/m^3].
Definition BlackOilFluidState.hpp:489
OPM_HOST_DEVICE void setRvw(const ValueType &newRvw)
Set the water vaporization factor [m^3/m^3] of the gas phase.
Definition BlackOilFluidState.hpp:394
OPM_HOST_DEVICE ValueType Rsw() const
Return the gas dissolution factor of water [m^3/m^3].
Definition BlackOilFluidState.hpp:537
OPM_HOST_DEVICE void setTemperature(const ValueType &value)
Set the temperature [K].
Definition BlackOilFluidState.hpp:341
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30