Ewoms::DarcyExtensiveQuantities< TypeTag > Class Template Reference

Provides the Darcy flux module. More...

#include <darcyfluxmodule.hh>

Inheritance diagram for Ewoms::DarcyExtensiveQuantities< TypeTag >:
Inheritance graph

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

Detailed Description

template<class TypeTag>
class Ewoms::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 Darcy relation can be used. Like the Darcy relation, it relates the gradient in potential to velocity. However, this relation is not linear (as in the Darcy case) any more.

Therefore, the Newton scheme is used to solve the non-linear relation. This velocity is then used like the Darcy velocity e.g. by the local residual.

For Reynolds numbers above $\approx 500$ the standard Darcy relation also looses it's validity.

The Darcy equation is given by the following relation:

\[ \nabla p_\alpha - \rho_\alpha \vec{g} = - \frac{\mu_\alpha}{k_{r,\alpha} K}\vec{v}_\alpha - \frac{\rho_\alpha C_E}{\eta_{r,\alpha} \sqrt{K}} \left| \vec{v}_\alpha \right| \vec{v}_\alpha \]

Where $C_E$ is the modified Ergun parameter and $\eta_{r,\alpha}$ is the passability which is given by a closure relation.

Member Function Documentation

template<class TypeTag >
void Ewoms::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_ ( const ElementContext &  elemCtx,
int  boundaryFaceIdx,
int  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!

References Ewoms::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, and Ewoms::DarcyExtensiveQuantities< TypeTag >::volumeFlux_.

template<class TypeTag >
template<class FluidState >
void Ewoms::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_ ( const ElementContext &  elemCtx,
int  boundaryFaceIdx,
int  timeIdx,
const FluidState &  fluidState,
const typename FluidSystem::ParameterCache &  paramCache 
)
inlineprotected
template<class TypeTag >
void Ewoms::DarcyExtensiveQuantities< TypeTag >::calculateFluxes_ ( const ElementContext &  elemCtx,
int  scvfIdx,
int  timeIdx 
)
inlineprotected

Calculate the volumetric fluxes of all phases.

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

References Ewoms::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, and Ewoms::DarcyExtensiveQuantities< TypeTag >::volumeFlux_.

template<class TypeTag >
short Ewoms::DarcyExtensiveQuantities< TypeTag >::downstreamIndex_ ( int  phaseIdx) const
inlineprotected
template<class TypeTag >
const EvalDimVector& Ewoms::DarcyExtensiveQuantities< TypeTag >::filterVelocity ( int  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

References Ewoms::DarcyExtensiveQuantities< TypeTag >::filterVelocity_.

template<class TypeTag >
const DimMatrix& Ewoms::DarcyExtensiveQuantities< TypeTag >::intrinsicPermability ( ) const
inline

Returns the intrinsic permeability tensor for a given sub-control volume face.

References Ewoms::DarcyExtensiveQuantities< TypeTag >::K_.

template<class TypeTag >
const EvalDimVector& Ewoms::DarcyExtensiveQuantities< TypeTag >::potentialGrad ( int  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

References Ewoms::DarcyExtensiveQuantities< TypeTag >::potentialGrad_.

template<class TypeTag >
short Ewoms::DarcyExtensiveQuantities< TypeTag >::upstreamIndex_ ( int  phaseIdx) const
inlineprotected
template<class TypeTag >
const Evaluation& Ewoms::DarcyExtensiveQuantities< TypeTag >::volumeFlux ( int  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

References Ewoms::DarcyExtensiveQuantities< TypeTag >::volumeFlux_.

Member Data Documentation


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