Opm::BlackOilDispersionModule< TypeTag, true > Class Template Reference

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

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. More...
 
template<class FluidState , class Scalar >
static void addDispersiveFlux (RateVector &flux, const FluidState &fluidStateI, const FluidState &fluidStateJ, const Evaluation &dispersivity, const Scalar &normVelocityAvg)
 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 $\kappa$ in phase $\alpha$ is given by: $-b_\alpha E||\mathrm{v}_\alpha||\mathbf{grad}X_\alpha^\kappa$, where $b_\alpha$ is the shrinkage/expansion factor [-], E is the isotropic dispersivity coefficient [L], $\mathrm{v}_\alpha$ is the filter velocity [L/T], and $X_\alpha^\kappa$ the component mass fraction [-]. Each component mass fraction can be computed using $R_s,\;R_v,\;R_{sw},\;R_{vw}$. For example, $X_w^G=\frac{R_{sw}}{R_{sw}+\rho_w/\rho_g}$, where $\rho_w$ and $\rho_g$ 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 $-b_{w,ij}v_{w,ij}(\frac{1}{R_{sw,ij}+\rho_w/\rho_g})D_{ij}(R_{sw,i}-R_{sw,j})$ where $b_{w,ij}$, $v_{w,ij}$, and $R_{sw,ij}$ are computed using the arithmetic mean, and the ratio $\frac{1}{R_{sw,ij}+\rho_w/\rho_g}$ is denoted as conversion factor. The dispersivity $D_{ij}$ is computed in ecltransmissibility_impl.hh, using the dispersion coefficients $E_i$ and $E_j$. More...
 

Detailed Description

template<class TypeTag>
class Opm::BlackOilDispersionModule< TypeTag, true >

Provides the auxiliary methods required for consideration of the dispersion equation.

Member Typedef Documentation

◆ ExtensiveQuantities

template<class TypeTag >
using Opm::BlackOilDispersionModule< TypeTag, true >::ExtensiveQuantities = BlackOilDispersionExtensiveQuantities<TypeTag,true>

Member Function Documentation

◆ addDispersiveFlux() [1/2]

template<class TypeTag >
template<class Context >
static void Opm::BlackOilDispersionModule< TypeTag, true >::addDispersiveFlux ( RateVector &  flux,
const Context &  context,
unsigned  spaceIdx,
unsigned  timeIdx 
)
inlinestatic

Adds the mass flux due to dispersion to the flux vector over the flux integration point.

◆ addDispersiveFlux() [2/2]

template<class TypeTag >
template<class FluidState , class Scalar >
static void Opm::BlackOilDispersionModule< TypeTag, true >::addDispersiveFlux ( RateVector &  flux,
const FluidState &  fluidStateI,
const FluidState &  fluidStateJ,
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 $\kappa$ in phase $\alpha$ is given by: $-b_\alpha E||\mathrm{v}_\alpha||\mathbf{grad}X_\alpha^\kappa$, where $b_\alpha$ is the shrinkage/expansion factor [-], E is the isotropic dispersivity coefficient [L], $\mathrm{v}_\alpha$ is the filter velocity [L/T], and $X_\alpha^\kappa$ the component mass fraction [-]. Each component mass fraction can be computed using $R_s,\;R_v,\;R_{sw},\;R_{vw}$. For example, $X_w^G=\frac{R_{sw}}{R_{sw}+\rho_w/\rho_g}$, where $\rho_w$ and $\rho_g$ 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 $-b_{w,ij}v_{w,ij}(\frac{1}{R_{sw,ij}+\rho_w/\rho_g})D_{ij}(R_{sw,i}-R_{sw,j})$ where $b_{w,ij}$, $v_{w,ij}$, and $R_{sw,ij}$ are computed using the arithmetic mean, and the ratio $\frac{1}{R_{sw,ij}+\rho_w/\rho_g}$ is denoted as conversion factor. The dispersivity $D_{ij}$ is computed in ecltransmissibility_impl.hh, using the dispersion coefficients $E_i$ and $E_j$.


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