Opm::FlashIntensiveQuantities< TypeTag > Class Template Reference

Contains the intensive quantities of the flash-based compositional multi-phase model. More...

#include <flashintensivequantities.hh>

Inheritance diagram for Opm::FlashIntensiveQuantities< TypeTag >:
Inheritance graph

Public Types

using FluidState = CompositionalFluidState< Evaluation, FluidSystem, enableEnergy >
 The type of the object returned by the fluidState() method. More...
 
using FluidState = CompositionalFluidState< Evaluation, FluidSystem, enableEnergy >
 The type of the object returned by the fluidState() method. More...
 

Public Member Functions

 FlashIntensiveQuantities ()=default
 
 FlashIntensiveQuantities (const FlashIntensiveQuantities &other)=default
 
FlashIntensiveQuantities & operator= (const FlashIntensiveQuantities &other)=default
 
void update (const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx)
 
const FluidState & fluidState () const
 Returns the phase state for the control-volume. More...
 
const DimMatrix & intrinsicPermeability () const
 Returns the intrinsic permeability tensor a degree of freedom. More...
 
const Evaluation & relativePermeability (unsigned phaseIdx) const
 Returns the relative permeability of a given phase within the control volume. More...
 
const Evaluation & mobility (unsigned phaseIdx) const
 Returns the effective mobility of a given phase within the control volume. More...
 
const Evaluation & porosity () const
 Returns the average porosity within the control volume. More...
 
 FlashIntensiveQuantities ()=default
 
 FlashIntensiveQuantities (const FlashIntensiveQuantities &other)=default
 
FlashIntensiveQuantities & operator= (const FlashIntensiveQuantities &other)=default
 
void update (const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx)
 
const FluidState & fluidState () const
 Returns the phase state for the control-volume. More...
 
bool hasHydrocarbon () const
 
Scalar saturationForOutput (unsigned phaseIdx) const
 
bool phaseIsPresent (unsigned phaseIdx) const
 Presence for reporting, independent of the numerical hydrocarbon floor. More...
 
const DimMatrix & intrinsicPermeability () const
 Returns the intrinsic permeability tensor a degree of freedom. More...
 
const Evaluation & relativePermeability (unsigned phaseIdx) const
 Returns the relative permeability of a given phase within the control volume. More...
 
const Evaluation & mobility (unsigned phaseIdx) const
 Returns the effective mobility of a given phase within the control volume. More...
 
const Evaluation & mobility (unsigned phaseIdx, FaceDir::DirEnum) const
 Mobility across a face. Directional relative permeabilities are not supported, so the face direction is not used. More...
 
Scalar rockCompTransMultiplier () const
 Transmissibility multiplier from rock compaction. Compositional runs reject ROCKCOMP, so it is one. More...
 
const Evaluation & porosity () const
 Returns the average porosity within the control volume. More...
 

Static Public Attributes

static constexpr Scalar compositionFloor = 1.0e-8
 
static constexpr Scalar hydrocarbonFloor = compositionFloor
 

Detailed Description

template<class TypeTag>
class Opm::FlashIntensiveQuantities< TypeTag >

Contains the intensive quantities of the flash-based compositional multi-phase model.

Contains the intensive quantities of the ptflash-based compositional multi-phase model.

Member Typedef Documentation

◆ FluidState [1/2]

template<class TypeTag >
using Opm::FlashIntensiveQuantities< TypeTag >::FluidState = CompositionalFluidState<Evaluation, FluidSystem, enableEnergy>

The type of the object returned by the fluidState() method.

◆ FluidState [2/2]

template<class TypeTag >
using Opm::FlashIntensiveQuantities< TypeTag >::FluidState = CompositionalFluidState<Evaluation, FluidSystem, enableEnergy>

The type of the object returned by the fluidState() method.

Constructor & Destructor Documentation

◆ FlashIntensiveQuantities() [1/4]

template<class TypeTag >
Opm::FlashIntensiveQuantities< TypeTag >::FlashIntensiveQuantities ( )
default

◆ FlashIntensiveQuantities() [2/4]

template<class TypeTag >
Opm::FlashIntensiveQuantities< TypeTag >::FlashIntensiveQuantities ( const FlashIntensiveQuantities< TypeTag > &  other)
default

◆ FlashIntensiveQuantities() [3/4]

template<class TypeTag >
Opm::FlashIntensiveQuantities< TypeTag >::FlashIntensiveQuantities ( )
default

◆ FlashIntensiveQuantities() [4/4]

template<class TypeTag >
Opm::FlashIntensiveQuantities< TypeTag >::FlashIntensiveQuantities ( const FlashIntensiveQuantities< TypeTag > &  other)
default

Member Function Documentation

◆ fluidState() [1/2]

template<class TypeTag >
const FluidState & Opm::FlashIntensiveQuantities< TypeTag >::fluidState ( ) const
inline

Returns the phase state for the control-volume.

◆ fluidState() [2/2]

template<class TypeTag >
const FluidState & Opm::FlashIntensiveQuantities< TypeTag >::fluidState ( ) const
inline

Returns the phase state for the control-volume.

◆ hasHydrocarbon()

template<class TypeTag >
bool Opm::FlashIntensiveQuantities< TypeTag >::hasHydrocarbon ( ) const
inline

Whether the primary variables leave any pore space for hydrocarbons, before the numerical floor is applied. Recomputed on every update.

◆ intrinsicPermeability() [1/2]

template<class TypeTag >
const DimMatrix & Opm::FlashIntensiveQuantities< TypeTag >::intrinsicPermeability ( ) const
inline

Returns the intrinsic permeability tensor a degree of freedom.

◆ intrinsicPermeability() [2/2]

template<class TypeTag >
const DimMatrix & Opm::FlashIntensiveQuantities< TypeTag >::intrinsicPermeability ( ) const
inline

Returns the intrinsic permeability tensor a degree of freedom.

◆ mobility() [1/3]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::mobility ( unsigned  phaseIdx) const
inline

Returns the effective mobility of a given phase within the control volume.

◆ mobility() [2/3]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::mobility ( unsigned  phaseIdx) const
inline

Returns the effective mobility of a given phase within the control volume.

◆ mobility() [3/3]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::mobility ( unsigned  phaseIdx,
FaceDir::DirEnum   
) const
inline

Mobility across a face. Directional relative permeabilities are not supported, so the face direction is not used.

◆ operator=() [1/2]

template<class TypeTag >
FlashIntensiveQuantities & Opm::FlashIntensiveQuantities< TypeTag >::operator= ( const FlashIntensiveQuantities< TypeTag > &  other)
default

◆ operator=() [2/2]

template<class TypeTag >
FlashIntensiveQuantities & Opm::FlashIntensiveQuantities< TypeTag >::operator= ( const FlashIntensiveQuantities< TypeTag > &  other)
default

◆ phaseIsPresent()

template<class TypeTag >
bool Opm::FlashIntensiveQuantities< TypeTag >::phaseIsPresent ( unsigned  phaseIdx) const
inline

Presence for reporting, independent of the numerical hydrocarbon floor.

References Opm::FlashIntensiveQuantities< TypeTag >::saturationForOutput().

◆ porosity() [1/2]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::porosity ( ) const
inline

Returns the average porosity within the control volume.

◆ porosity() [2/2]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::porosity ( ) const
inline

Returns the average porosity within the control volume.

◆ relativePermeability() [1/2]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::relativePermeability ( unsigned  phaseIdx) const
inline

Returns the relative permeability of a given phase within the control volume.

◆ relativePermeability() [2/2]

template<class TypeTag >
const Evaluation & Opm::FlashIntensiveQuantities< TypeTag >::relativePermeability ( unsigned  phaseIdx) const
inline

Returns the relative permeability of a given phase within the control volume.

◆ rockCompTransMultiplier()

template<class TypeTag >
Scalar Opm::FlashIntensiveQuantities< TypeTag >::rockCompTransMultiplier ( ) const
inline

Transmissibility multiplier from rock compaction. Compositional runs reject ROCKCOMP, so it is one.

◆ saturationForOutput()

template<class TypeTag >
Scalar Opm::FlashIntensiveQuantities< TypeTag >::saturationForOutput ( unsigned  phaseIdx) const
inline

Saturation for reporting. The solver keeps the regularized saturations in fluidState(); a cell with no hydrocarbon reports water alone.

Referenced by Opm::FlashIntensiveQuantities< TypeTag >::phaseIsPresent().

◆ update() [1/2]

template<class TypeTag >
void Opm::FlashIntensiveQuantities< TypeTag >::update ( const ElementContext &  elemCtx,
unsigned  dofIdx,
unsigned  timeIdx 
)
inline

◆ update() [2/2]

template<class TypeTag >
void Opm::FlashIntensiveQuantities< TypeTag >::update ( const ElementContext &  elemCtx,
unsigned  dofIdx,
unsigned  timeIdx 
)
inline

Member Data Documentation

◆ compositionFloor

template<class TypeTag >
constexpr Scalar Opm::FlashIntensiveQuantities< TypeTag >::compositionFloor = 1.0e-8
staticconstexpr

Minimum overall mole fraction of a component; the flash needs every component present.

Referenced by Opm::FlashIntensiveQuantities< TypeTag >::update().

◆ hydrocarbonFloor

template<class TypeTag >
constexpr Scalar Opm::FlashIntensiveQuantities< TypeTag >::hydrocarbonFloor = compositionFloor
staticconstexpr

Minimum hydrocarbon share of the pore space, including cells that would otherwise hold water alone. Component-storage derivatives scale with this share, so it cannot vanish. The value matches the composition floor.

Referenced by Opm::FlashIntensiveQuantities< TypeTag >::update().


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