Opm::BlackOilExtensiveQuantities< TypeTag > Class Template Reference

This template class contains the data which is required to calculate the fluxes of the fluid phases over a face of a finite volume for the black-oil model. More...

#include <blackoilextensivequantities.hh>

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

Public Member Functions

void update (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Update the extensive quantities for a given sub-control-volume-face. More...
 
template<class Context , class FluidState >
void updateBoundary (const Context &ctx, unsigned bfIdx, unsigned timeIdx, const FluidState &fluidState)
 
short upstreamIndex (unsigned phaseIdx) const
 Return the local index of the upstream control volume for a given phase as a function of the normal flux. More...
 
short downstreamIndex (unsigned phaseIdx) const
 Return the local index of the downstream control volume for a given phase as a function of the normal flux. More...
 
Scalar upstreamWeight (unsigned) const
 Return the weight of the upstream control volume for a given phase as a function of the normal flux. More...
 
Scalar downstreamWeight (unsigned phaseIdx) const
 Return the weight of the downstream control volume for a given phase as a function of the normal flux. More...
 
template<class Dummy = bool>
void updateVolumeFluxPerm (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Method which calculates the volume flux of the polymer "phase" using the pressure potential gradient of the gas phase and the intrinsic permeability. More...
 
template<class Dummy = bool>
void updateVolumeFluxTrans (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Method which calculates the volume flux of the polymer "phase" using the gas pressure potential difference between cells and transmissibilities. More...
 
unsigned solventUpstreamIndex () const
 
unsigned solventDownstreamIndex () const
 
const Evaluation & solventVolumeFlux () const
 
void setSolventVolumeFlux (const Evaluation &solventVolumeFlux)
 
template<class Dummy = bool>
void updateShearMultipliersPerm (const ElementContext &, unsigned, unsigned)
 Method which calculates the shear factor based on flow velocity. More...
 
template<class Dummy = bool>
void updateShearMultipliers (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Method which calculates the shear factor based on flow velocity. More...
 
const Evaluation & polymerShearFactor () const
 
const Evaluation & waterShearFactor () const
 
void updateEnergy (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
template<class Context , class BoundaryFluidState >
void updateEnergyBoundary (const Context &ctx, unsigned scvfIdx, unsigned timeIdx, const BoundaryFluidState &boundaryFs)
 
const Evaluation & energyFlux () const
 

Static Public Member Functions

static void registerParameters ()
 Register all run-time parameters for the extensive quantities. More...
 
template<class FluidState >
static void updateEnergy (Evaluation &energyFlux, const unsigned &focusDofIndex, const unsigned &inIdx, const unsigned &exIdx, const IntensiveQuantities &inIq, const IntensiveQuantities &exIq, const FluidState &inFs, const FluidState &exFs, const Scalar &inAlpha, const Scalar &outAlpha, const Scalar &faceArea)
 
template<class BoundaryFluidState >
static void updateEnergyBoundary (Evaluation &energyFlux, const IntensiveQuantities &inIq, unsigned focusDofIndex, unsigned inIdx, Scalar alpha, const BoundaryFluidState &boundaryFs)
 

Protected Member Functions

Implementation & asImp_ ()
 
const Implementation & asImp_ () const
 

Detailed Description

template<class TypeTag>
class Opm::BlackOilExtensiveQuantities< TypeTag >

This template class contains the data which is required to calculate the fluxes of the fluid phases over a face of a finite volume for the black-oil model.

This means pressure and concentration gradients, phase densities at the intergration point, etc.

Member Function Documentation

◆ asImp_() [1/2]

template<class TypeTag >
Implementation & Opm::BlackOilExtensiveQuantities< TypeTag >::asImp_ ( )
inlineprotected

◆ asImp_() [2/2]

template<class TypeTag >
const Implementation & Opm::BlackOilExtensiveQuantities< TypeTag >::asImp_ ( ) const
inlineprotected

◆ downstreamIndex()

template<class TypeTag >
short Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::downstreamIndex ( unsigned  phaseIdx) const
inlineinherited

Return the local index of the downstream control volume for a given phase as a function of the normal flux.

Parameters
phaseIdxThe index of the fluid phase for which the downstream direction is requested.

◆ downstreamWeight()

template<class TypeTag >
Scalar Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::downstreamWeight ( unsigned  phaseIdx) const
inlineinherited

Return the weight of the downstream control volume for a given phase as a function of the normal flux.

Parameters
phaseIdxThe index of the fluid phase

References Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::upstreamWeight().

◆ energyFlux()

template<class TypeTag , bool enableEnergyV = getPropValue<TypeTag, Properties::EnableEnergy>()>
const Evaluation & Opm::BlackOilEnergyExtensiveQuantities< TypeTag, enableEnergyV >::energyFlux ( ) const
inlineinherited

◆ polymerShearFactor()

template<class TypeTag , bool enablePolymerV = getPropValue<TypeTag, Properties::EnablePolymer>()>
const Evaluation & Opm::BlackOilPolymerExtensiveQuantities< TypeTag, enablePolymerV >::polymerShearFactor ( ) const
inlineinherited

◆ registerParameters()

template<class TypeTag >
static void Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::registerParameters ( )
inlinestaticinherited

Register all run-time parameters for the extensive quantities.

Referenced by Opm::ImmiscibleExtensiveQuantities< TypeTag >::registerParameters().

◆ setSolventVolumeFlux()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
void Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::setSolventVolumeFlux ( const Evaluation &  solventVolumeFlux)
inlineinherited

◆ solventDownstreamIndex()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
unsigned Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::solventDownstreamIndex ( ) const
inlineinherited

◆ solventUpstreamIndex()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
unsigned Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::solventUpstreamIndex ( ) const
inlineinherited

◆ solventVolumeFlux()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
const Evaluation & Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::solventVolumeFlux ( ) const
inlineinherited

◆ update()

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

Update the extensive quantities for a given sub-control-volume-face.

Parameters
elemCtxReference to the current element context.
scvfIdxThe local index of the sub-control-volume face for which the extensive quantities should be calculated.
timeIdxThe index used by the time discretization.

References Opm::BlackOilExtensiveQuantities< TypeTag >::asImp_(), and Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::update().

◆ updateBoundary()

template<class TypeTag >
template<class Context , class FluidState >
void Opm::BlackOilExtensiveQuantities< TypeTag >::updateBoundary ( const Context &  ctx,
unsigned  bfIdx,
unsigned  timeIdx,
const FluidState &  fluidState 
)
inline

◆ updateEnergy() [1/2]

template<class TypeTag , bool enableEnergyV = getPropValue<TypeTag, Properties::EnableEnergy>()>
void Opm::BlackOilEnergyExtensiveQuantities< TypeTag, enableEnergyV >::updateEnergy ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineinherited

◆ updateEnergy() [2/2]

template<class TypeTag , bool enableEnergyV = getPropValue<TypeTag, Properties::EnableEnergy>()>
template<class FluidState >
static void Opm::BlackOilEnergyExtensiveQuantities< TypeTag, enableEnergyV >::updateEnergy ( Evaluation &  energyFlux,
const unsigned &  focusDofIndex,
const unsigned &  inIdx,
const unsigned &  exIdx,
const IntensiveQuantities &  inIq,
const IntensiveQuantities &  exIq,
const FluidState &  inFs,
const FluidState &  exFs,
const Scalar &  inAlpha,
const Scalar &  outAlpha,
const Scalar &  faceArea 
)
inlinestaticinherited

◆ updateEnergyBoundary() [1/2]

template<class TypeTag , bool enableEnergyV = getPropValue<TypeTag, Properties::EnableEnergy>()>
template<class Context , class BoundaryFluidState >
void Opm::BlackOilEnergyExtensiveQuantities< TypeTag, enableEnergyV >::updateEnergyBoundary ( const Context &  ctx,
unsigned  scvfIdx,
unsigned  timeIdx,
const BoundaryFluidState &  boundaryFs 
)
inlineinherited

◆ updateEnergyBoundary() [2/2]

template<class TypeTag , bool enableEnergyV = getPropValue<TypeTag, Properties::EnableEnergy>()>
template<class BoundaryFluidState >
static void Opm::BlackOilEnergyExtensiveQuantities< TypeTag, enableEnergyV >::updateEnergyBoundary ( Evaluation &  energyFlux,
const IntensiveQuantities &  inIq,
unsigned  focusDofIndex,
unsigned  inIdx,
Scalar  alpha,
const BoundaryFluidState &  boundaryFs 
)
inlinestaticinherited

◆ updateShearMultipliers()

template<class TypeTag , bool enablePolymerV = getPropValue<TypeTag, Properties::EnablePolymer>()>
template<class Dummy = bool>
void Opm::BlackOilPolymerExtensiveQuantities< TypeTag, enablePolymerV >::updateShearMultipliers ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineinherited

Method which calculates the shear factor based on flow velocity.

This is the variant of the method which assumes that the problem is specified using transmissibilities, i.e., not via permeabilities.

References Opm::BlackOilPolymerModule< TypeTag, enablePolymerV >::computeShearFactor(), Opm::BlackOilPolymerModule< TypeTag, enablePolymerV >::hasPlyshlog(), Opm::BlackOilPolymerModule< TypeTag, enablePolymerV >::hasShrate(), and Opm::BlackOilPolymerModule< TypeTag, enablePolymerV >::shrate().

◆ updateShearMultipliersPerm()

template<class TypeTag , bool enablePolymerV = getPropValue<TypeTag, Properties::EnablePolymer>()>
template<class Dummy = bool>
void Opm::BlackOilPolymerExtensiveQuantities< TypeTag, enablePolymerV >::updateShearMultipliersPerm ( const ElementContext &  ,
unsigned  ,
unsigned   
)
inlineinherited

Method which calculates the shear factor based on flow velocity.

This is the variant of the method which assumes that the problem is specified using permeabilities, i.e., not via transmissibilities.

◆ updateVolumeFluxPerm()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
template<class Dummy = bool>
void Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::updateVolumeFluxPerm ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineinherited

Method which calculates the volume flux of the polymer "phase" using the pressure potential gradient of the gas phase and the intrinsic permeability.

References Opm::PressureCallback< TypeTag >::setPhaseIndex().

◆ updateVolumeFluxTrans()

template<class TypeTag , bool enableSolventV = getPropValue<TypeTag, Properties::EnableSolvent>()>
template<class Dummy = bool>
void Opm::BlackOilSolventExtensiveQuantities< TypeTag, enableSolventV >::updateVolumeFluxTrans ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineinherited

Method which calculates the volume flux of the polymer "phase" using the gas pressure potential difference between cells and transmissibilities.

◆ upstreamIndex()

template<class TypeTag >
short Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::upstreamIndex ( unsigned  phaseIdx) const
inlineinherited

Return the local index of the upstream control volume for a given phase as a function of the normal flux.

Parameters
phaseIdxThe index of the fluid phase for which the upstream direction is requested.

◆ upstreamWeight()

template<class TypeTag >
Scalar Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::upstreamWeight ( unsigned  ) const
inlineinherited

Return the weight of the upstream control volume for a given phase as a function of the normal flux.

Parameters
phaseIdxThe index of the fluid phase

Referenced by Opm::MultiPhaseBaseExtensiveQuantities< TypeTag >::downstreamWeight().

◆ waterShearFactor()

template<class TypeTag , bool enablePolymerV = getPropValue<TypeTag, Properties::EnablePolymer>()>
const Evaluation & Opm::BlackOilPolymerExtensiveQuantities< TypeTag, enablePolymerV >::waterShearFactor ( ) const
inlineinherited

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