mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-24 16:30:02 -06:00
Adress PR review issues
This commit is contained in:
parent
5bb7bc1185
commit
197019d865
@ -538,8 +538,7 @@ namespace Opm
|
||||
/**
|
||||
* Retrieve pvtIdx of the region.
|
||||
*/
|
||||
const int
|
||||
pvtIdx() const { return this->pvtIdx_; }
|
||||
int pvtIdx() const { return this->pvtIdx_; }
|
||||
|
||||
|
||||
private:
|
||||
@ -566,27 +565,29 @@ namespace Opm
|
||||
cell_(cell),
|
||||
target_pc_(target_pc)
|
||||
{
|
||||
fluidState_.setSaturation(FluidSystem::waterPhaseIdx, 0.0);
|
||||
fluidState_.setSaturation(FluidSystem::oilPhaseIdx, 0.0);
|
||||
fluidState_.setSaturation(FluidSystem::gasPhaseIdx, 0.0);
|
||||
std::fill(pc_, pc_ + FluidSystem::numPhases, 0.0);
|
||||
|
||||
}
|
||||
double operator()(double s) const
|
||||
{
|
||||
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
||||
fluidState_.setSaturation(phase_, s);
|
||||
MaterialLaw::capillaryPressures(pc_, matParams, fluidState_);
|
||||
SatOnlyFluidState fluidState;
|
||||
fluidState.setSaturation(FluidSystem::waterPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(FluidSystem::oilPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(FluidSystem::gasPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(phase_, s);
|
||||
|
||||
double pc[FluidSystem::numPhases];
|
||||
std::fill(pc, pc + FluidSystem::numPhases, 0.0);
|
||||
MaterialLaw::capillaryPressures(pc, matParams, fluidState);
|
||||
double sign = (phase_ == FluidSystem::waterPhaseIdx)? -1.0 : 1.0;
|
||||
double pc = pc_[FluidSystem::oilPhaseIdx] + sign * pc_[phase_];
|
||||
return pc - target_pc_;
|
||||
double pcPhase = pc[FluidSystem::oilPhaseIdx] + sign * pc[phase_];
|
||||
return pcPhase - target_pc_;
|
||||
}
|
||||
private:
|
||||
const MaterialLawManager& materialLawManager_;
|
||||
const int phase_;
|
||||
const int cell_;
|
||||
const double target_pc_;
|
||||
mutable SatOnlyFluidState fluidState_;
|
||||
mutable double pc_[FluidSystem::numPhases];
|
||||
};
|
||||
|
||||
template <class FluidSystem, class MaterialLawManager>
|
||||
@ -694,22 +695,25 @@ namespace Opm
|
||||
cell_(cell),
|
||||
target_pc_(target_pc)
|
||||
{
|
||||
fluidState_.setSaturation(FluidSystem::waterPhaseIdx, 0.0);
|
||||
fluidState_.setSaturation(FluidSystem::oilPhaseIdx, 0.0);
|
||||
fluidState_.setSaturation(FluidSystem::gasPhaseIdx, 0.0);
|
||||
std::fill(pc_, pc_ + FluidSystem::numPhases, 0.0);
|
||||
}
|
||||
double operator()(double s) const
|
||||
{
|
||||
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
||||
fluidState_.setSaturation(phase1_, s);
|
||||
fluidState_.setSaturation(phase2_, 1.0 - s);
|
||||
SatOnlyFluidState fluidState;
|
||||
fluidState.setSaturation(FluidSystem::waterPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(FluidSystem::oilPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(FluidSystem::gasPhaseIdx, 0.0);
|
||||
fluidState.setSaturation(phase1_, s);
|
||||
fluidState.setSaturation(phase2_, 1.0 - s);
|
||||
|
||||
MaterialLaw::capillaryPressures(pc_, matParams, fluidState_);
|
||||
double pc[FluidSystem::numPhases];
|
||||
std::fill(pc, pc + FluidSystem::numPhases, 0.0);
|
||||
|
||||
MaterialLaw::capillaryPressures(pc, matParams, fluidState);
|
||||
double sign1 = (phase1_ == FluidSystem::waterPhaseIdx)? -1.0 : 1.0;
|
||||
double pc1 = pc_[FluidSystem::oilPhaseIdx] + sign1 * pc_[phase1_];
|
||||
double pc1 = pc[FluidSystem::oilPhaseIdx] + sign1 * pc[phase1_];
|
||||
double sign2 = (phase2_ == FluidSystem::waterPhaseIdx)? -1.0 : 1.0;
|
||||
double pc2 = pc_[FluidSystem::oilPhaseIdx] + sign2 * pc_[phase2_];
|
||||
double pc2 = pc[FluidSystem::oilPhaseIdx] + sign2 * pc[phase2_];
|
||||
return pc1 + pc2 - target_pc_;
|
||||
}
|
||||
private:
|
||||
@ -718,8 +722,6 @@ namespace Opm
|
||||
const int phase2_;
|
||||
const int cell_;
|
||||
const double target_pc_;
|
||||
mutable SatOnlyFluidState fluidState_;
|
||||
mutable double pc_[FluidSystem::numPhases];
|
||||
};
|
||||
|
||||
|
||||
|
@ -67,8 +67,9 @@ typedef Opm::EclMaterialLawManager<MaterialTraits> MaterialLawManager;
|
||||
BOOST_CHECK_CLOSE((value), (expected), (reltol)); \
|
||||
}
|
||||
|
||||
|
||||
void initDefaultFluidSystem() {
|
||||
namespace
|
||||
{
|
||||
static void initDefaultFluidSystem() {
|
||||
std::vector<std::pair<double, double> > Bo = {
|
||||
{ 101353, 1. },
|
||||
{ 6.21542e+07, 1 }
|
||||
@ -96,25 +97,25 @@ void initDefaultFluidSystem() {
|
||||
FluidSystem::setEnableVaporizedOil(false);
|
||||
FluidSystem::setReferenceDensities(rhoRefO, rhoRefW, rhoRefG, /*regionIdx=*/0);
|
||||
|
||||
Opm::GasPvtMultiplexer<double> *gasPvt = new Opm::GasPvtMultiplexer<double>;
|
||||
auto gasPvt = std::make_shared<Opm::GasPvtMultiplexer<double>>();
|
||||
gasPvt->setApproach(Opm::GasPvtMultiplexer<double>::DryGasPvt);
|
||||
auto& dryGasPvt = gasPvt->template getRealPvt<Opm::GasPvtMultiplexer<double>::DryGasPvt>();
|
||||
auto& dryGasPvt = gasPvt->getRealPvt<Opm::GasPvtMultiplexer<double>::DryGasPvt>();
|
||||
dryGasPvt.setNumRegions(/*numPvtRegion=*/1);
|
||||
dryGasPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||
dryGasPvt.setGasFormationVolumeFactor(/*regionIdx=*/0, Bg);
|
||||
dryGasPvt.setGasViscosity(/*regionIdx=*/0, mug);
|
||||
|
||||
Opm::OilPvtMultiplexer<double> *oilPvt = new Opm::OilPvtMultiplexer<double>;
|
||||
auto oilPvt = std::make_shared<Opm::OilPvtMultiplexer<double>>();
|
||||
oilPvt->setApproach(Opm::OilPvtMultiplexer<double>::DeadOilPvt);
|
||||
auto& deadOilPvt = oilPvt->template getRealPvt<Opm::OilPvtMultiplexer<double>::DeadOilPvt>();
|
||||
auto& deadOilPvt = oilPvt->getRealPvt<Opm::OilPvtMultiplexer<double>::DeadOilPvt>();
|
||||
deadOilPvt.setNumRegions(/*numPvtRegion=*/1);
|
||||
deadOilPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||
deadOilPvt.setInverseOilFormationVolumeFactor(/*regionIdx=*/0, Bo);
|
||||
deadOilPvt.setOilViscosity(/*regionIdx=*/0, muo);
|
||||
|
||||
Opm::WaterPvtMultiplexer<double> *waterPvt = new Opm::WaterPvtMultiplexer<double>;
|
||||
auto waterPvt = std::make_shared<Opm::WaterPvtMultiplexer<double>>();
|
||||
waterPvt->setApproach(Opm::WaterPvtMultiplexer<double>::ConstantCompressibilityWaterPvt);
|
||||
auto& ccWaterPvt = waterPvt->template getRealPvt<Opm::WaterPvtMultiplexer<double>::ConstantCompressibilityWaterPvt>();
|
||||
auto& ccWaterPvt = waterPvt->getRealPvt<Opm::WaterPvtMultiplexer<double>::ConstantCompressibilityWaterPvt>();
|
||||
ccWaterPvt.setNumRegions(/*numPvtRegions=*/1);
|
||||
ccWaterPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||
ccWaterPvt.setViscosity(/*regionIdx=*/0, 1);
|
||||
@ -136,6 +137,7 @@ void initDefaultFluidSystem() {
|
||||
FluidSystem::initEnd();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE ()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user