75 const SubControlVolume& scv,
76 const VolumeVariables& volVars)
const
80 for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
82 auto eqIdx = conti0EqIdx + phaseIdx;
83 storage[eqIdx] = volVars.porosity()
84 * volVars.density(phaseIdx)
85 * volVars.saturation(phaseIdx);
88 EnergyLocalResidual::fluidPhaseStorage(storage, scv, volVars, phaseIdx);
92 EnergyLocalResidual::solidPhaseStorage(storage, scv, volVars);
109 const Element& element,
110 const FVElementGeometry& fvGeometry,
111 const ElementVolumeVariables& elemVolVars,
112 const SubControlVolumeFace& scvf,
113 const ElementFluxVariablesCache& elemFluxVarsCache)
const
115 FluxVariables fluxVars;
116 fluxVars.init(problem, element, fvGeometry, elemVolVars, scvf, elemFluxVarsCache);
119 for (
int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx)
122 auto upwindTerm = [phaseIdx](
const auto& volVars)
123 {
return volVars.density(phaseIdx)*volVars.mobility(phaseIdx); };
125 auto eqIdx = conti0EqIdx + phaseIdx;
126 flux[eqIdx] = fluxVars.advectiveFlux(phaseIdx, upwindTerm);
129 EnergyLocalResidual::heatConvectionFlux(flux, fluxVars, phaseIdx);
133 EnergyLocalResidual::heatConductionFlux(flux, fluxVars);