Opm::NewTranExtensiveQuantities< TypeTag > Class Template Reference

Provides the ECL flux module. More...

#include <NewTranFluxModule.hpp>

Public Member Functions

OPM_HOST_DEVICE const DimMatrix & intrinsicPermeability () const
 Return the intrinsic permeability tensor at a face [m^2]. More...
 
OPM_HOST_DEVICE const EvalDimVector & potentialGrad (unsigned) const
 Return the pressure potential gradient of a fluid phase at the face's integration point [Pa/m]. More...
 
OPM_HOST_DEVICE const Evaluation & pressureDifference (unsigned phaseIdx) const
 Return the gravity corrected pressure difference between the interior and the exterior of a face. More...
 
OPM_HOST_DEVICE const EvalDimVector & filterVelocity (unsigned) const
 Return the filter velocity of a fluid phase at the face's integration point [m/s]. More...
 
OPM_HOST_DEVICE 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]$. More...
 

Static Public Member Functions

static OPM_HOST_DEVICE void volumeAndPhasePressureDifferences (std::array< short, numPhases > &upIdx, std::array< short, numPhases > &dnIdx, Evaluation(&volumeFlux)[numPhases], Evaluation(&pressureDifferences)[numPhases], const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
template<class EvalType >
static OPM_HOST_DEVICE void calculatePhasePressureDiff_ (short &upIdx, short &dnIdx, EvalType &pressureDifference, const IntensiveQuantities &intQuantsIn, const IntensiveQuantities &intQuantsEx, const unsigned phaseIdx, const unsigned interiorDofIdx, const unsigned exteriorDofIdx, const Scalar Vin, const Scalar Vex, const unsigned globalIndexIn, const unsigned globalIndexEx, const Scalar distZg, const Scalar thpresInToEx, const Scalar thpresExToIn, const ModuleParams &moduleParams)
 
template<class Problem , class FluidState , class EvaluationContainer >
static OPM_HOST_DEVICE void calculateBoundaryGradients_ (const Problem &problem, const unsigned globalSpaceIdx, const IntensiveQuantities &intQuantsIn, const unsigned bfIdx, const double faceArea, const double zEx, const FluidState &exFluidState, std::array< short, numPhases > &upIdx, std::array< short, numPhases > &dnIdx, EvaluationContainer &volumeFlux, EvaluationContainer &pressureDifference)
 Update the required gradients for boundary faces. More...
 

Protected Member Functions

OPM_HOST_DEVICE unsigned upstreamIndex_ (unsigned phaseIdx) const
 Returns the local index of the degree of freedom in which is in upstream direction. More...
 
OPM_HOST_DEVICE unsigned downstreamIndex_ (unsigned phaseIdx) const
 Returns the local index of the degree of freedom in which is in downstream direction. More...
 
OPM_HOST_DEVICE void updateSolvent (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
OPM_HOST_DEVICE void updatePolymer (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
OPM_HOST_DEVICE void calculateGradients_ (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 Update the required gradients for interior faces. More...
 
template<class FluidState >
OPM_HOST_DEVICE void calculateBoundaryGradients_ (const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx, const FluidState &exFluidState)
 Update the required gradients for boundary faces. More...
 
OPM_HOST_DEVICE void calculateFluxes_ (const ElementContext &, unsigned, unsigned)
 Update the volumetric fluxes for all fluid phases on the interior faces of the context. More...
 
OPM_HOST_DEVICE void calculateBoundaryFluxes_ (const ElementContext &, unsigned, unsigned)
 

Detailed Description

template<class TypeTag>
class Opm::NewTranExtensiveQuantities< TypeTag >

Provides the ECL flux module.

Member Function Documentation

◆ calculateBoundaryFluxes_()

template<class TypeTag >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_ ( const ElementContext &  ,
unsigned  ,
unsigned   
)
inlineprotected

◆ calculateBoundaryGradients_() [1/2]

template<class TypeTag >
template<class FluidState >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculateBoundaryGradients_ ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx,
const FluidState &  exFluidState 
)
inlineprotected

◆ calculateBoundaryGradients_() [2/2]

template<class TypeTag >
template<class Problem , class FluidState , class EvaluationContainer >
static OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculateBoundaryGradients_ ( const Problem &  problem,
const unsigned  globalSpaceIdx,
const IntensiveQuantities &  intQuantsIn,
const unsigned  bfIdx,
const double  faceArea,
const double  zEx,
const FluidState &  exFluidState,
std::array< short, numPhases > &  upIdx,
std::array< short, numPhases > &  dnIdx,
EvaluationContainer &  volumeFlux,
EvaluationContainer &  pressureDifference 
)
inlinestatic

◆ calculateFluxes_()

template<class TypeTag >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculateFluxes_ ( const ElementContext &  ,
unsigned  ,
unsigned   
)
inlineprotected

Update the volumetric fluxes for all fluid phases on the interior faces of the context.

◆ calculateGradients_()

template<class TypeTag >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculateGradients_ ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineprotected

Update the required gradients for interior faces.

References Opm::NewTranExtensiveQuantities< TypeTag >::volumeAndPhasePressureDifferences().

◆ calculatePhasePressureDiff_()

template<class TypeTag >
template<class EvalType >
static OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::calculatePhasePressureDiff_ ( short &  upIdx,
short &  dnIdx,
EvalType &  pressureDifference,
const IntensiveQuantities &  intQuantsIn,
const IntensiveQuantities &  intQuantsEx,
const unsigned  phaseIdx,
const unsigned  interiorDofIdx,
const unsigned  exteriorDofIdx,
const Scalar  Vin,
const Scalar  Vex,
const unsigned  globalIndexIn,
const unsigned  globalIndexEx,
const Scalar  distZg,
const Scalar  thpresInToEx,
const Scalar  thpresExToIn,
const ModuleParams moduleParams 
)
inlinestatic

◆ downstreamIndex_()

template<class TypeTag >
OPM_HOST_DEVICE unsigned Opm::NewTranExtensiveQuantities< TypeTag >::downstreamIndex_ ( unsigned  phaseIdx) const
inlineprotected

Returns the local index of the degree of freedom in which is in downstream direction.

i.e., the DOF which exhibits a lower effective pressure for the given phase.

◆ filterVelocity()

template<class TypeTag >
OPM_HOST_DEVICE const EvalDimVector & Opm::NewTranExtensiveQuantities< TypeTag >::filterVelocity ( unsigned  ) 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

◆ intrinsicPermeability()

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

Return the intrinsic permeability tensor at a face [m^2].

◆ potentialGrad()

template<class TypeTag >
OPM_HOST_DEVICE const EvalDimVector & Opm::NewTranExtensiveQuantities< TypeTag >::potentialGrad ( unsigned  ) 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

◆ pressureDifference()

template<class TypeTag >
OPM_HOST_DEVICE const Evaluation & Opm::NewTranExtensiveQuantities< TypeTag >::pressureDifference ( unsigned  phaseIdx) const
inline

Return the gravity corrected pressure difference between the interior and the exterior of a face.

Parameters
phaseIdxThe index of the fluid phase

Referenced by Opm::NewTranExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), and Opm::NewTranExtensiveQuantities< TypeTag >::calculatePhasePressureDiff_().

◆ updatePolymer()

template<class TypeTag >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::updatePolymer ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineprotected

◆ updateSolvent()

template<class TypeTag >
OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::updateSolvent ( const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlineprotected

◆ upstreamIndex_()

template<class TypeTag >
OPM_HOST_DEVICE unsigned Opm::NewTranExtensiveQuantities< TypeTag >::upstreamIndex_ ( unsigned  phaseIdx) const
inlineprotected

Returns the local index of the degree of freedom in which is in upstream direction.

i.e., the DOF which exhibits a higher effective pressure for the given phase.

◆ volumeAndPhasePressureDifferences()

template<class TypeTag >
static OPM_HOST_DEVICE void Opm::NewTranExtensiveQuantities< TypeTag >::volumeAndPhasePressureDifferences ( std::array< short, numPhases > &  upIdx,
std::array< short, numPhases > &  dnIdx,
Evaluation(&)  volumeFlux[numPhases],
Evaluation(&)  pressureDifferences[numPhases],
const ElementContext &  elemCtx,
unsigned  scvfIdx,
unsigned  timeIdx 
)
inlinestatic

◆ volumeFlux()

template<class TypeTag >
OPM_HOST_DEVICE const Evaluation & Opm::NewTranExtensiveQuantities< 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

Referenced by Opm::NewTranExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), and Opm::NewTranExtensiveQuantities< TypeTag >::volumeAndPhasePressureDifferences().


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