13#ifndef DUMUX_TWOPVE_FINE_LEVEL_ELEMENTSTATE_HH
14#define DUMUX_TWOPVE_FINE_LEVEL_ELEMENTSTATE_HH
59template<
class Gr
idGeometry,
class Scalar,
class Flu
idSystem>
62 using GridView =
typename GridGeometry::GridView;
63 using Element =
typename GridView::template Codim<0>::Entity;
64 static constexpr int dim = GridView::dimension;
65 static constexpr int wettingPhaseIdx = FluidSystem::phase0Idx;
66 static constexpr int nonwettingPhaseIdx = FluidSystem::phase1Idx;
67 static constexpr int numPhases = FluidSystem::numPhases;
87 template<
typename SpatialParamsFine>
88 void update(
const Element& fineElement,
90 const SpatialParamsFine& fineSpatialParams,
91 const QuantityReconstructor& reconstructor,
92 const Scalar fineCellHeight)
95 const Scalar fineElementPosZ = fineElement.geometry().center()[dim-1];
96 const Scalar heightAboveBottom = fineElementPosZ - fineSpatialParams.gridGeometry().bBoxMin()[dim-1];
100 PhaseDensities{column.densityW, column.densityNw},
105 pressure_[wettingPhaseIdx] = pressures[wettingPhaseIdx];
106 pressure_[nonwettingPhaseIdx] = pressures[nonwettingPhaseIdx];
111 ResidualSaturations{column.
swr, column.
snr},
116 saturation_[wettingPhaseIdx] = saturationW;
117 saturation_[nonwettingPhaseIdx] = 1.0 - saturationW;
121 PhaseDensities{column.densityW, column.densityNw},
135 mobility_[wettingPhaseIdx] = mobilities[wettingPhaseIdx];
136 mobility_[nonwettingPhaseIdx] = mobilities[nonwettingPhaseIdx];
138 density_[wettingPhaseIdx] = column.
densityW;
139 density_[nonwettingPhaseIdx] = column.
densityNw;
141 viscosity_[wettingPhaseIdx] = column.
viscosityW;
142 viscosity_[nonwettingPhaseIdx] = column.
viscosityNw;
144 permeability_ = fineSpatialParams.permeabilityAtElement(fineElement);
145 porosity_ = fineSpatialParams.porosityAtElement(fineElement);
158 {
return pressure_[phaseIdx]; }
167 {
return saturation_[phaseIdx]; }
174 {
return capillaryPressure_; }
183 {
return mobility_[phaseIdx]; }
192 {
return density_[phaseIdx]; }
201 {
return viscosity_[phaseIdx]; }
207 {
return permeability_; }
213 {
return porosity_; }
224 {
return temperature_; }
230 {
return gasPlumeDistance_; }
233 std::array<Scalar, numPhases> pressure_{};
234 std::array<Scalar, numPhases> saturation_{};
235 Scalar capillaryPressure_{};
236 std::array<Scalar, numPhases> mobility_{};
237 std::array<Scalar, numPhases> density_{};
238 std::array<Scalar, numPhases> viscosity_{};
242 Scalar gasPlumeDistance_{};
The quantities of a fine-level element reconstructed from the state of its coarse-level column.
Definition elementstatefine.hh:61
Scalar gasPlumeDist() const
Returns the gas plume distance within a coarse-level element.
Definition elementstatefine.hh:229
Scalar density(int phaseIdx) const
Returns the mass density of a given phase within the control volume in .
Definition elementstatefine.hh:191
Scalar permeability() const
Returns the permeability within the control volume in .
Definition elementstatefine.hh:206
Scalar capillaryPressure() const
Definition elementstatefine.hh:173
void update(const Element &fineElement, const TwoPVEColumnState< Scalar > &column, const SpatialParamsFine &fineSpatialParams, const QuantityReconstructor &reconstructor, const Scalar fineCellHeight)
Updates the state of a fine element.
Definition elementstatefine.hh:88
Scalar pressure(int phaseIdx) const
Returns the effective pressure of a given phase within the control volume in .
Definition elementstatefine.hh:157
Scalar saturation(int phaseIdx) const
Returns the saturation of a given phase within the control volume in .
Definition elementstatefine.hh:166
Scalar porosity() const
Returns the average porosity within the control volume in .
Definition elementstatefine.hh:212
Scalar mobility(int phaseIdx) const
Returns the effective mobility of a given phase within the control volume in .
Definition elementstatefine.hh:182
Scalar temperature() const
Returns temperature inside the sub-control volume in .
Definition elementstatefine.hh:223
Scalar viscosity(int phaseIdx) const
Returns the dynamic viscosity of the fluid within the control volume in .
Definition elementstatefine.hh:200
Reconstructs the fine-level quantities of a column from its coarse-level quantities assuming vertical...
Definition quantityreconstruction.hh:100
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 ...
Definition quantityreconstruction.hh:246
Scalar reconstructCapillaryPressure(Scalar gasPlumeDist, const PhaseDensities &densities, Scalar gravityNorm, Scalar heightAboveBottom, Scalar entryPressureBC) const
Reconstructs the fine-level capillary pressure.
Definition quantityreconstruction.hh:317
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.
Definition quantityreconstruction.hh:212
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.
Definition quantityreconstruction.hh:343
typename ScalarType< X >::Type Scalar
Definition odesolver.hh:52
Reconstructs quantities from the coarse to the fine level of the VE scheme.
The parameters of the Brooks-Corey material law.
Definition quantityreconstruction.hh:79
The gas plume distance of a column and its minimum over all previous time steps.
Definition quantityreconstruction.hh:35
The densities of the wetting and the nonwetting phase.
Definition quantityreconstruction.hh:46
The viscosities of the wetting and the nonwetting phase.
Definition quantityreconstruction.hh:57
The residual saturations of the wetting and the nonwetting phase.
Definition quantityreconstruction.hh:68
The state of a coarse-level column from which the fine-level quantities are reconstructed.
Definition elementstatefine.hh:28
Scalar entryPressure
Definition elementstatefine.hh:39
Scalar minimumGasPlumeDistance
Definition elementstatefine.hh:48
Scalar domainHeight
Definition elementstatefine.hh:33
Scalar gasPlumeDistance
Definition elementstatefine.hh:47
Scalar snr
Definition elementstatefine.hh:36
Scalar swCoarse
Definition elementstatefine.hh:30
Scalar gravityNorm
Definition elementstatefine.hh:40
Scalar temperature
Definition elementstatefine.hh:31
Scalar viscosityNw
Definition elementstatefine.hh:45
Scalar brooksCoreyLambda
Definition elementstatefine.hh:38
Scalar densityW
Definition elementstatefine.hh:42
Scalar pwCoarse
Definition elementstatefine.hh:29
Scalar swr
Definition elementstatefine.hh:35
Scalar densityNw
Definition elementstatefine.hh:43
Scalar viscosityW
Definition elementstatefine.hh:44