Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV > Class Template Reference

Contains the high level supplements required to extend the black oil model by bioeffects. More...

#include <blackoilbioeffectsmodules.hh>

Static Public Member Functions

static void setParams (BlackOilBioeffectsParams< Scalar > &&params)
 Set parameters. More...
 
static void registerParameters ()
 Register all run-time parameters for the black-oil bioeffects module. More...
 
static void registerOutputModules (Model &model, Simulator &simulator)
 Register all bioeffects specific VTK and ECL output modules. More...
 
static bool eqApplies (unsigned eqIdx)
 
static Scalar eqWeight (unsigned eqIdx)
 
template<class LhsEval >
static void addStorage (Dune::FieldVector< LhsEval, numEq > &storage, const IntensiveQuantities &intQuants)
 
template<class UpEval >
static void addBioeffectsFluxes_ (RateVector &flux, unsigned phaseIdx, const Evaluation &volumeFlux, const IntensiveQuantities &upFs)
 
static void applyScaling (RateVector &flux)
 
static void computeFlux (RateVector &flux, const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
template<class UpstreamEval >
static void addBioeffectsFluxes_ (RateVector &flux, const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
static void addSource (RateVector &source, const Problem &problem, const IntensiveQuantities &intQuants, unsigned globalSpaceIdex)
 
static void addSource (RateVector &source, const ElementContext &elemCtx, unsigned dofIdx, unsigned timeIdx)
 
static const Scalar densityBiofilm (unsigned satnumRegionIdx)
 
static const Scalar densityCalcite (unsigned satnumRegionIdx)
 
static const Scalar detachmentRate (unsigned satnumRegionIdx)
 
static const Scalar detachmentExponent (unsigned satnumRegionIdx)
 
static const Scalar halfVelocityGrowth (unsigned satnumRegionIdx)
 
static const Scalar halfVelocityUrea (unsigned satnumRegionIdx)
 
static const Scalar maximumGrowthRate (unsigned satnumRegionIdx)
 
static const Scalar maximumUreaUtilization (unsigned satnumRegionIdx)
 
static const Scalar microbialAttachmentRate (unsigned satnumRegionIdx)
 
static const Scalar microbialDeathRate (unsigned satnumRegionIdx)
 
static const Scalar oxygenConsumptionFactor (unsigned satnumRegionIdx)
 
static const Scalar yieldGrowthCoefficient (unsigned satnumRegionIdx)
 
static const Scalar yieldUreaToCalciteCoefficient (unsigned satnumRegionIdx)
 
static const Scalar bioDiffCoefficient (unsigned pvtRegionIdx, unsigned compIdx)
 
static const TabulatedFunction & permfactTable (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const TabulatedFunction & permfactTable (unsigned satnumRegionIdx)
 
static const TabulatedFunction & pcfactTable (unsigned satnumRegionIdx)
 
static bool hasPcfactTables ()
 

Detailed Description

template<class TypeTag, bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
class Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >

Contains the high level supplements required to extend the black oil model by bioeffects.

The two implemented model extensions are MICP and biofilm effects in underground storage. For details on the mathematical models, refer to the OPM Flow manual.

I) MICP (Microbially Induced Calcite Precipitation) MICP is a novel and sustainable technology that leverages biochemical processes to form barriers through calcium carbonate cementation. This approach shows promise for sealing leakage zones in geological formations.

The conceptual model includes the following key mechanisms:

  • Suspended microbes attach to pore walls, forming biofilm.
  • A growth solution is introduced to stimulate biofilm development.
  • The biofilm utilizes a cementation solution to produce calcite.
  • Calcite precipitates reduce pore space, thereby decreasing rock permeability.

This implementation considers a single-phase (water) system with the following primary variables:

  • Pressure of the water phase
  • Concentration of suspended microbes
  • Concentration of oxygen
  • Concentration of urea
  • Volume fraction of biofilm
  • Volume fraction of calcite

II) Biofilm effects in underground applications (e.g., hydrogen storage)

Biofilm-related effects in subsurface applications such as hydrogen storage include reduced injectivity and hydrogen loss. The conceptual model includes the following mechanisms:

  • Biofilm is present in the storage site prior to injection.
  • The biofilm consumes injected hydrogen/CO2, leading to clogging effects.

This implementation considers a two-phase (gas + water) system with the following primary variables:

  • Pressure of the gas phase
  • Water saturation / dissolved gas in water
  • Concentration of suspended microbes
  • Volume fraction of biofilm

Member Function Documentation

◆ addBioeffectsFluxes_() [1/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
template<class UpstreamEval >
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::addBioeffectsFluxes_ ( RateVector &  flux,
const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlinestatic

◆ addBioeffectsFluxes_() [2/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
template<class UpEval >
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::addBioeffectsFluxes_ ( RateVector &  flux,
unsigned  phaseIdx,
const Evaluation &  volumeFlux,
const IntensiveQuantities &  upFs 
)
inlinestatic

◆ addSource() [1/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::addSource ( RateVector &  source,
const ElementContext &  elemCtx,
unsigned  dofIdx,
unsigned  timeIdx 
)
inlinestatic

◆ addSource() [2/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::addSource ( RateVector &  source,
const Problem &  problem,
const IntensiveQuantities &  intQuants,
unsigned  globalSpaceIdex 
)
inlinestatic

◆ addStorage()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
template<class LhsEval >
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::addStorage ( Dune::FieldVector< LhsEval, numEq > &  storage,
const IntensiveQuantities &  intQuants 
)
inlinestatic

◆ applyScaling()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::applyScaling ( RateVector &  flux)
inlinestatic

◆ bioDiffCoefficient()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::bioDiffCoefficient ( unsigned  pvtRegionIdx,
unsigned  compIdx 
)
inlinestatic

◆ computeFlux()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::computeFlux ( RateVector &  flux,
const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlinestatic

◆ densityBiofilm()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::densityBiofilm ( unsigned  satnumRegionIdx)
inlinestatic

◆ densityCalcite()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::densityCalcite ( unsigned  satnumRegionIdx)
inlinestatic

◆ detachmentExponent()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::detachmentExponent ( unsigned  satnumRegionIdx)
inlinestatic

◆ detachmentRate()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::detachmentRate ( unsigned  satnumRegionIdx)
inlinestatic

◆ eqApplies()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static bool Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::eqApplies ( unsigned  eqIdx)
inlinestatic

◆ eqWeight()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::eqWeight ( unsigned  eqIdx)
inlinestatic

◆ halfVelocityGrowth()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::halfVelocityGrowth ( unsigned  satnumRegionIdx)
inlinestatic

◆ halfVelocityUrea()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::halfVelocityUrea ( unsigned  satnumRegionIdx)
inlinestatic

◆ hasPcfactTables()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static bool Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::hasPcfactTables ( )
inlinestatic

◆ maximumGrowthRate()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::maximumGrowthRate ( unsigned  satnumRegionIdx)
inlinestatic

◆ maximumUreaUtilization()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::maximumUreaUtilization ( unsigned  satnumRegionIdx)
inlinestatic

◆ microbialAttachmentRate()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::microbialAttachmentRate ( unsigned  satnumRegionIdx)
inlinestatic

◆ microbialDeathRate()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::microbialDeathRate ( unsigned  satnumRegionIdx)
inlinestatic

◆ oxygenConsumptionFactor()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::oxygenConsumptionFactor ( unsigned  satnumRegionIdx)
inlinestatic

◆ pcfactTable()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const TabulatedFunction & Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::pcfactTable ( unsigned  satnumRegionIdx)
inlinestatic

◆ permfactTable() [1/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const TabulatedFunction & Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::permfactTable ( const ElementContext &  elemCtx,
unsigned  scvIdx,
unsigned  timeIdx 
)
inlinestatic

◆ permfactTable() [2/2]

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const TabulatedFunction & Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::permfactTable ( unsigned  satnumRegionIdx)
inlinestatic

◆ registerOutputModules()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::registerOutputModules ( Model &  model,
Simulator &  simulator 
)
inlinestatic

Register all bioeffects specific VTK and ECL output modules.

Referenced by Opm::BlackOilModel< TypeTag >::registerOutputModules_().

◆ registerParameters()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::registerParameters ( )
inlinestatic

Register all run-time parameters for the black-oil bioeffects module.

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

◆ setParams()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static void Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::setParams ( BlackOilBioeffectsParams< Scalar > &&  params)
inlinestatic

◆ yieldGrowthCoefficient()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::yieldGrowthCoefficient ( unsigned  satnumRegionIdx)
inlinestatic

◆ yieldUreaToCalciteCoefficient()

template<class TypeTag , bool enableBioeffectsV = getPropValue<TypeTag, Properties::EnableBioeffects>()>
static const Scalar Opm::BlackOilBioeffectsModule< TypeTag, enableBioeffectsV >::yieldUreaToCalciteCoefficient ( unsigned  satnumRegionIdx)
inlinestatic

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