|
opm-simulators
|
Provides the auxiliary methods required for consideration of the dispersion equation. More...
#include <blackoildispersionmodule.hh>
Public Types | |
| using | ExtensiveQuantities = BlackOilDispersionExtensiveQuantities< TypeTag, true > |
Static Public Member Functions | |
| 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... | |
Provides the auxiliary methods required for consideration of the dispersion equation.
|
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
.