93 const FluidState& fluidState)
95 ExtensiveQuantities extQuants;
96 extQuants.updateBoundary(context, bfIdx, timeIdx, fluidState);
97 const auto& insideIntQuants = context.intensiveQuantities(bfIdx, timeIdx);
98 const unsigned focusDofIdx = context.focusDofIndex();
99 const unsigned interiorDofIdx = context.interiorScvIndex(bfIdx, timeIdx);
104 (*this) = Evaluation(0.0);
105 for (
unsigned phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) {
107 if (fluidState.pressure(phaseIdx) > insideIntQuants.fluidState().pressure(phaseIdx)) {
108 if (focusDofIdx == interiorDofIdx) {
109 density = fluidState.density(phaseIdx);
112 density = getValue(fluidState.density(phaseIdx));
115 else if (focusDofIdx == interiorDofIdx) {
116 density = insideIntQuants.fluidState().density(phaseIdx);
119 density = getValue(insideIntQuants.fluidState().density(phaseIdx));
122 for (
unsigned compIdx = 0; compIdx < numComponents; ++compIdx) {
124 if (fluidState.pressure(phaseIdx) > insideIntQuants.fluidState().pressure(phaseIdx)) {
125 if (focusDofIdx == interiorDofIdx) {
126 molarity = fluidState.molarity(phaseIdx, compIdx);
129 molarity = getValue(fluidState.molarity(phaseIdx, compIdx));
132 else if (focusDofIdx == interiorDofIdx) {
133 molarity = insideIntQuants.fluidState().molarity(phaseIdx, compIdx);
136 molarity = getValue(insideIntQuants.fluidState().molarity(phaseIdx, compIdx));
141 (*this)[conti0EqIdx + compIdx] += extQuants.volumeFlux(phaseIdx) * molarity;
145 Evaluation specificEnthalpy;
146 if (fluidState.pressure(phaseIdx) > insideIntQuants.fluidState().pressure(phaseIdx)) {
147 if (focusDofIdx == interiorDofIdx) {
148 specificEnthalpy = fluidState.enthalpy(phaseIdx);
151 specificEnthalpy = getValue(fluidState.enthalpy(phaseIdx));
154 else if (focusDofIdx == interiorDofIdx) {
155 specificEnthalpy = insideIntQuants.fluidState().enthalpy(phaseIdx);
158 specificEnthalpy = getValue(insideIntQuants.fluidState().enthalpy(phaseIdx));
161 const Evaluation enthalpyRate = density * extQuants.volumeFlux(phaseIdx) * specificEnthalpy;
162 EnergyModule::addToEnthalpyRate(*
this, enthalpyRate);
167 EnergyModule::addToEnthalpyRate(*
this, EnergyModule::thermalConductionRate(extQuants));
170 for (
unsigned i = 0; i < numEq; ++i) {
171 Valgrind::CheckDefined((*
this)[i]);