80 const EqVector& update,
88 if (this->numIterations_ > 4)
91 const auto& problem = this->simulator_.problem();
95 problem.materialLawParams(globalDofIdx, 0);
100 Scalar T = problem.temperature(globalDofIdx, 0);
101 fs.setTemperature(T);
109 fs.setSaturation(liquidPhaseIdx, 1.0);
110 fs.setSaturation(gasPhaseIdx, 0.0);
112 MaterialLaw::capillaryPressures(
pC,
matParams, fs);
119 std::max(problem.referencePressure(globalDofIdx, 0),
120 pWOld + (
pC[gasPhaseIdx] -
pC[liquidPhaseIdx]));
125 fs.setPressure(liquidPhaseIdx,
pWOld);
126 fs.setPressure(gasPhaseIdx,
pNOld);
130 satOld[liquidPhaseIdx] = std::max<Scalar>(0.0,
satOld[liquidPhaseIdx]);
137 fs.setSaturation(liquidPhaseIdx,
satOld[liquidPhaseIdx] - 0.2);
138 fs.setSaturation(gasPhaseIdx, 1.0 - (
satOld[liquidPhaseIdx] - 0.2));
139 MaterialLaw::capillaryPressures(
pC,
matParams, fs);
142 fs.setSaturation(liquidPhaseIdx,
satOld[liquidPhaseIdx] + 0.2);
143 fs.setSaturation(gasPhaseIdx, 1.0 - (
satOld[liquidPhaseIdx] + 0.2));
144 MaterialLaw::capillaryPressures(
pC,
matParams, fs);