|
|
static void | initFromState (const EclipseState &eclState) |
| |
|
template<class Context > |
| static void | addDispersiveFlux (RateVector &flux, const Context &context, unsigned spaceIdx, unsigned timeIdx) |
| | Adds the mass flux due to dispersion to the flux vector over the flux integration point.
|
| |
| template<class IntensiveQuantities , class Scalar > |
| static void | addDispersiveFlux (RateVector &flux, const IntensiveQuantities &inIq, const IntensiveQuantities &exIq, const Evaluation &dispersivity, const Scalar &normVelocityAvg) |
| | Adds the mass flux due to dispersion to the flux vector over the integration point. More...
|
| |
◆ addDispersiveFlux()
template<class TypeTag >
template<class IntensiveQuantities , class Scalar >
| static void Opm::BlackOilDispersionModule< TypeTag, true >::addDispersiveFlux |
( |
RateVector & |
flux, |
|
|
const IntensiveQuantities & |
inIq, |
|
|
const IntensiveQuantities & |
exIq, |
|
|
const Evaluation & |
dispersivity, |
|
|
const Scalar & |
normVelocityAvg |
|
) |
| |
|
inlinestatic |
Adds the mass flux due to dispersion to the flux vector over the integration point.
Following the notation in blackoilmodel.hh, the dispersive flux for component
in phase
is given by:
, where
is the shrinkage/expansion factor [-], E is the isotropic dispersivity coefficient [L],
is the filter velocity [L/T], and
the component mass fraction [-]. Each component mass fraction can be computed using
. For example,
, where
and
are the reference densities. Following the implementation of the diffusive flux (blackoildiffusionmodule.hh) and considering the case for the water phase and gas component as an example, for cells i and j, the discrete version of the dispersive flux at the face's integration point is given by
where
,
, and
are computed using the arithmetic mean, and the ratio
is denoted as conversion factor. The dispersivity
is computed in ecltransmissibility_impl.hh, using the dispersion coefficients
and
.
The documentation for this class was generated from the following file: