108 void update(
const ElementContext& elemCtx,
unsigned dofIdx,
unsigned timeIdx)
110 ParentType::update(elemCtx, dofIdx,
timeIdx);
111 EnergyIntensiveQuantities::updateTemperatures_(fluidState_, elemCtx, dofIdx,
timeIdx);
113 const auto& priVars = elemCtx.primaryVars(dofIdx,
timeIdx);
114 const auto& problem = elemCtx.problem();
122 Opm::Valgrind::CheckDefined(fluidState_.saturation(
phaseIdx));
125 Opm::Valgrind::CheckDefined(priVars.implicitSaturationIdx());
126 Opm::Valgrind::CheckDefined(
sumSat);
127 fluidState_.setSaturation(priVars.implicitSaturationIdx(), 1.0 -
sumSat);
135 problem.materialLawParams(elemCtx, dofIdx,
timeIdx);
140 const Evaluation&
p0 = priVars.makeEvaluation(pressure0Idx,
timeIdx);
149 unsigned lowestPresentPhaseIdx = priVars.lowestPresentPhaseIdx();
152 if (!priVars.phaseIsPresent(
phaseIdx))
160 Evaluation
sumx = 0.0;
162 const Evaluation& x = priVars.makeEvaluation(switch0Idx +
compIdx - 1,
timeIdx);
163 fluidState_.setMoleFraction(lowestPresentPhaseIdx,
compIdx, x);
168 fluidState_.setMoleFraction(lowestPresentPhaseIdx, 0, 1 -
sumx);
173 ComputeFromReferencePhase::solve(fluidState_,
paramCache,
174 lowestPresentPhaseIdx,
207 MiscibleMultiPhaseComposition::solve(fluidState_,
paramCache,
208 priVars.phasePresence(),
218 Scalar
myNan = std::numeric_limits<Scalar>::quiet_NaN();
229 MaterialLaw::relativePermeabilities(relativePermeability_,
231 Opm::Valgrind::CheckDefined(relativePermeability_);
239 porosity_ = problem.porosity(elemCtx, dofIdx,
timeIdx);
240 Opm::Valgrind::CheckDefined(porosity_);
243 intrinsicPerm_ = problem.intrinsicPermeability(elemCtx, dofIdx,
timeIdx);
246 FluxIntensiveQuantities::update_(elemCtx, dofIdx,
timeIdx);
249 EnergyIntensiveQuantities::update_(fluidState_,
paramCache, elemCtx, dofIdx,
timeIdx);
252 DiffusionIntensiveQuantities::update_(fluidState_,
paramCache, elemCtx, dofIdx,
timeIdx);
254 fluidState_.checkDefined();