version 3.11-dev
Loading...
Searching...
No Matches
Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem > Class Template Reference

Reconstructs the fine-level quantities of a column from its coarse-level quantities assuming vertical equilibrium. More...

#include <dumux/porousmediumflow/2pve/quantityreconstruction.hh>

Description

template<class Scalar, class FluidSystem>
class Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >

The reconstruction uses the Brooks-Corey material law [21]. Below the gas plume distance, the pore space is water-saturated apart from residually trapped gas. Above the gas plume distance, the saturation follows from the capillary pressure in hydrostatic equilibrium. The averages of the saturation and the relative permeabilities over fine-level cells are evaluated in closed form.

Template Parameters
Scalarthe scalar type
FluidSystemthe immiscible two-phase fluid system

Public Member Functions

Scalar computeGasPlumeDist (const PhaseDensities &densities, const ResidualSaturations &residualSaturations, Scalar gravityNorm, Scalar domainHeight, Scalar saturationWCoarse, Scalar minGasPlumeDist, const BrooksCoreyParameters &brooksCoreyParameters) const
 Computes the gas plume distance for a coarse column, which is the height of the lower boundary of the mobile gas relative to the bottom of the domain.
Scalar computeCapillaryPressureCoarse (Scalar gasPlumeDist, const PhaseDensities &densities, Scalar gravityNorm, Scalar entryPressureBC) const
 Computes the capillary pressure on the coarse level.
std::array< Scalar, numPhases > reconstructPressure (Scalar gasPlumeDist, const PhaseDensities &densities, Scalar gravityNorm, Scalar heightAboveBottom, Scalar pressureWCoarse, Scalar entryPressureBC) const
 Reconstructs the fine-level wetting-phase and nonwetting-phase pressures.
Scalar reconstructSaturation (const GasPlumeDistances &gasPlumeDistances, const PhaseDensities &densities, const ResidualSaturations &residualSaturations, Scalar gravityNorm, Scalar heightAboveBottom, Scalar deltaZ, const BrooksCoreyParameters &brooksCoreyParameters) const
 Reconstructs the fine-level wetting-phase saturation as a mean integral of the saturation across the cell height.
Scalar reconstructCapillaryPressure (Scalar gasPlumeDist, const PhaseDensities &densities, Scalar gravityNorm, Scalar heightAboveBottom, Scalar entryPressureBC) const
 Reconstructs the fine-level capillary pressure.
std::array< Scalar, numPhases > reconstructMobilitiesFine (const GasPlumeDistances &gasPlumeDistances, const PhaseDensities &densities, const PhaseViscosities &viscosities, Scalar gravityNorm, Scalar heightAboveBottom, Scalar deltaZ, const BrooksCoreyParameters &brooksCoreyParameters) const
 Reconstructs the fine-level wetting-phase and nonwetting-phase mobilities.

Member Function Documentation

◆ computeCapillaryPressureCoarse()

template<class Scalar, class FluidSystem>
Scalar Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::computeCapillaryPressureCoarse ( Scalar gasPlumeDist,
const PhaseDensities & densities,
Scalar gravityNorm,
Scalar entryPressureBC ) const
inline
Parameters
gasPlumeDistvalue of the gas plume distance
densitiescontains the phase densities (here: 2 phases)
gravityNormnorm of the gravity
entryPressureBCentry pressure of the Brooks-Corey model

◆ computeGasPlumeDist()

template<class Scalar, class FluidSystem>
Scalar Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::computeGasPlumeDist ( const PhaseDensities & densities,
const ResidualSaturations & residualSaturations,
Scalar gravityNorm,
Scalar domainHeight,
Scalar saturationWCoarse,
Scalar minGasPlumeDist,
const BrooksCoreyParameters & brooksCoreyParameters ) const
inline

The gas plume distance is the root of the column water balance. The water content of the column accounts for the trapped-gas region between the minimum gas plume distance and the gas plume distance, such that the column integral of the reconstructed saturation equals the coarse-level saturation. If the coarse-level saturation exceeds the water content of a column without mobile gas, the gas plume distance is the domain height. If the mobile gas fills the column down to its bottom, the capillary fringe extends below the column and the gas plume distance is negative.

Parameters
densitiescontains the phase densities (here: 2 phases)
residualSaturationscontains the phase residual saturation (here: 2 phases)
gravityNormnorm of the gravity
domainHeightheight of the whole domain
saturationWCoarsewetting-phase saturation (on the coarse level)
minGasPlumeDistminimum gas plume distance of the previous time steps, at most domainHeight
brooksCoreyParameterscontains the two Brooks-Corey parameters (lambda and entry pressure)
Exceptions
NumericalProblemif the coarse-level saturation does not exceed the residual saturation

◆ reconstructCapillaryPressure()

template<class Scalar, class FluidSystem>
Scalar Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::reconstructCapillaryPressure ( Scalar gasPlumeDist,
const PhaseDensities & densities,
Scalar gravityNorm,
Scalar heightAboveBottom,
Scalar entryPressureBC ) const
inline
Parameters
gasPlumeDistvalue of the gas plume distance
densitiescontains the phase densities (here: 2 phases)
gravityNormnorm of the gravity
heightAboveBottomheight (relative to the bottom of the domain) at which the capillary pressure should be reconstructed
entryPressureBCentry pressure of the Brooks-Corey model

◆ reconstructMobilitiesFine()

template<class Scalar, class FluidSystem>
std::array< Scalar, numPhases > Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::reconstructMobilitiesFine ( const GasPlumeDistances & gasPlumeDistances,
const PhaseDensities & densities,
const PhaseViscosities & viscosities,
Scalar gravityNorm,
Scalar heightAboveBottom,
Scalar deltaZ,
const BrooksCoreyParameters & brooksCoreyParameters ) const
inline
Parameters
gasPlumeDistancescontains the gas plume distance and the minimum gas plume distance
densitiescontains the phase densities (here: 2 phases)
viscositiescontains the phase viscosities (here: 2 phases)
gravityNormnorm of the gravity
heightAboveBottomheight (relative to the bottom of the domain) at which the mobilities should be reconstructed
deltaZdiscretization width of the fine-level grid in vertical direction
brooksCoreyParameterscontains the two Brooks-Corey parameters (lambda and entry pressure)

◆ reconstructPressure()

template<class Scalar, class FluidSystem>
std::array< Scalar, numPhases > Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::reconstructPressure ( Scalar gasPlumeDist,
const PhaseDensities & densities,
Scalar gravityNorm,
Scalar heightAboveBottom,
Scalar pressureWCoarse,
Scalar entryPressureBC ) const
inline
Parameters
gasPlumeDistvalue of the gas plume distance
densitiescontains the phase densities (here: 2 phases)
gravityNormnorm of the gravity
heightAboveBottomheight (relative to the bottom of the domain) at which the pressures should be reconstructed
pressureWCoarsewetting-phase pressure on the coarse level
entryPressureBCentry pressure of the Brooks-Corey model

◆ reconstructSaturation()

template<class Scalar, class FluidSystem>
Scalar Dumux::TwoPVEQuantityReconstruction< Scalar, FluidSystem >::reconstructSaturation ( const GasPlumeDistances & gasPlumeDistances,
const PhaseDensities & densities,
const ResidualSaturations & residualSaturations,
Scalar gravityNorm,
Scalar heightAboveBottom,
Scalar deltaZ,
const BrooksCoreyParameters & brooksCoreyParameters ) const
inline

Compute the saturation as the mean of the reconstructed saturation over the height of a fine-level cell.

Parameters
gasPlumeDistancescontains the gas plume distance and the minimum gas plume distance
densitiescontains the phase densities (here: 2 phases)
residualSaturationscontains the phase residual saturation (here: 2 phases)
gravityNormnorm of the gravity
heightAboveBottomheight (relative to the bottom of the domain) at which the saturation should be reconstructed
deltaZdiscretization width of the fine-level grid in vertical direction
brooksCoreyParameterscontains the two Brooks-Corey parameters (lambda and entry pressure)

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