My Project
Loading...
Searching...
No Matches
Opm::DarcyExtensiveQuantities< TypeTag > Class Template Reference

Provides the Darcy flux module. More...

#include <darcyfluxmodule.hh>

Inheritance diagram for Opm::DarcyExtensiveQuantities< TypeTag >:
Opm::BlackOilDarcyExtensiveQuantities< TypeTag > Opm::ForchheimerExtensiveQuantities< TypeTag >

Public Member Functions

const DimMatrix & intrinsicPermability () const
 Returns the intrinsic permeability tensor for a given sub-control volume face.
 
const EvalDimVector & potentialGrad (unsigned phaseIdx) const
 Return the pressure potential gradient of a fluid phase at the face's integration point [Pa/m].
 
const EvalDimVector & filterVelocity (unsigned phaseIdx) const
 Return the filter velocity of a fluid phase at the face's integration point [m/s].
 
const Evaluation & volumeFlux (unsigned phaseIdx) const
 Return the volume flux of a fluid phase at the face's integration point $[m^3/s / m^2]$.
 

Protected Member Functions

short upstreamIndex_ (unsigned phaseIdx) const
 
short downstreamIndex_ (unsigned phaseIdx) const
 
void calculateGradients_ (const ElementContext &elemCtx, unsigned faceIdx, unsigned timeIdx)
 Calculate the gradients which are required to determine the volumetric fluxes.
 
template<class FluidState >
void calculateBoundaryGradients_ (const ElementContext &elemCtx, unsigned boundaryFaceIdx, unsigned timeIdx, const FluidState &fluidState)
 Calculate the gradients at the grid boundary which are required to determine the volumetric fluxes.
 
void calculateFluxes_ (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Calculate the volumetric fluxes of all phases.
 
void calculateBoundaryFluxes_ (const ElementContext &elemCtx, unsigned boundaryFaceIdx, unsigned timeIdx)
 Calculate the volumetric fluxes at a boundary face of all fluid phases.
 
void calculateFilterVelocity_ (unsigned phaseIdx)
 

Protected Attributes

DimMatrix K_
 
Evaluation mobility_ [numPhases]
 
EvalDimVector filterVelocity_ [numPhases]
 
Evaluation volumeFlux_ [numPhases]
 
EvalDimVector potentialGrad_ [numPhases]
 
short upstreamDofIdx_ [numPhases]
 
short downstreamDofIdx_ [numPhases]
 
short interiorDofIdx_
 
short exteriorDofIdx_
 

Detailed Description

template<class TypeTag>
class Opm::DarcyExtensiveQuantities< TypeTag >

Provides the Darcy flux module.

The commonly used Darcy relation looses its validity for Reynolds numbers $ Re <
  1$. If one encounters flow velocities in porous media above this threshold, the Forchheimer approach can be used.

The Darcy equation is given by the following relation:

\[
 \vec{v}_\alpha =
 \left( \nabla p_\alpha - \rho_\alpha \vec{g}\right)
 \frac{\mu_\alpha}{k_{r,\alpha} K}
\]

Member Function Documentation

◆ calculateBoundaryFluxes_()

template<class TypeTag >
void Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_ ( const ElementContext & elemCtx,
unsigned boundaryFaceIdx,
unsigned timeIdx )
inlineprotected

Calculate the volumetric fluxes at a boundary face of all fluid phases.

The pressure potentials and upwind directions must already be determined before calling this method!

◆ calculateBoundaryGradients_()

template<class TypeTag >
template<class FluidState >
void Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_ ( const ElementContext & elemCtx,
unsigned boundaryFaceIdx,
unsigned timeIdx,
const FluidState & fluidState )
inlineprotected

Calculate the gradients at the grid boundary which are required to determine the volumetric fluxes.

The the upwind directions is also determined by method.

◆ calculateFluxes_()

template<class TypeTag >
void Opm::DarcyExtensiveQuantities< TypeTag >::calculateFluxes_ ( const ElementContext & elemCtx,
unsigned scvfIdx,
unsigned timeIdx )
inlineprotected

Calculate the volumetric fluxes of all phases.

The pressure potentials and upwind directions must already be determined before calling this method!

◆ calculateGradients_()

template<class TypeTag >
void Opm::DarcyExtensiveQuantities< TypeTag >::calculateGradients_ ( const ElementContext & elemCtx,
unsigned faceIdx,
unsigned timeIdx )
inlineprotected

Calculate the gradients which are required to determine the volumetric fluxes.

The the upwind directions is also determined by method.

◆ filterVelocity()

template<class TypeTag >
const EvalDimVector & Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity ( unsigned phaseIdx) const
inline

Return the filter velocity of a fluid phase at the face's integration point [m/s].

Parameters
phaseIdxThe index of the fluid phase

◆ potentialGrad()

template<class TypeTag >
const EvalDimVector & Opm::DarcyExtensiveQuantities< TypeTag >::potentialGrad ( unsigned phaseIdx) const
inline

Return the pressure potential gradient of a fluid phase at the face's integration point [Pa/m].

Parameters
phaseIdxThe index of the fluid phase

◆ volumeFlux()

template<class TypeTag >
const Evaluation & Opm::DarcyExtensiveQuantities< TypeTag >::volumeFlux ( unsigned phaseIdx) const
inline

Return the volume flux of a fluid phase at the face's integration point $[m^3/s / m^2]$.

This is the fluid volume of a phase per second and per square meter of face area.

Parameters
phaseIdxThe index of the fluid phase

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