mirror of
https://github.com/OPM/opm-simulators.git
synced 2024-12-25 16:51:00 -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.
|
* Retrieve pvtIdx of the region.
|
||||||
*/
|
*/
|
||||||
const int
|
int pvtIdx() const { return this->pvtIdx_; }
|
||||||
pvtIdx() const { return this->pvtIdx_; }
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -566,27 +565,29 @@ namespace Opm
|
|||||||
cell_(cell),
|
cell_(cell),
|
||||||
target_pc_(target_pc)
|
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
|
double operator()(double s) const
|
||||||
{
|
{
|
||||||
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
||||||
fluidState_.setSaturation(phase_, s);
|
SatOnlyFluidState fluidState;
|
||||||
MaterialLaw::capillaryPressures(pc_, matParams, 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 sign = (phase_ == FluidSystem::waterPhaseIdx)? -1.0 : 1.0;
|
||||||
double pc = pc_[FluidSystem::oilPhaseIdx] + sign * pc_[phase_];
|
double pcPhase = pc[FluidSystem::oilPhaseIdx] + sign * pc[phase_];
|
||||||
return pc - target_pc_;
|
return pcPhase - target_pc_;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
const MaterialLawManager& materialLawManager_;
|
const MaterialLawManager& materialLawManager_;
|
||||||
const int phase_;
|
const int phase_;
|
||||||
const int cell_;
|
const int cell_;
|
||||||
const double target_pc_;
|
const double target_pc_;
|
||||||
mutable SatOnlyFluidState fluidState_;
|
|
||||||
mutable double pc_[FluidSystem::numPhases];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class FluidSystem, class MaterialLawManager>
|
template <class FluidSystem, class MaterialLawManager>
|
||||||
@ -694,22 +695,25 @@ namespace Opm
|
|||||||
cell_(cell),
|
cell_(cell),
|
||||||
target_pc_(target_pc)
|
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
|
double operator()(double s) const
|
||||||
{
|
{
|
||||||
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
const auto& matParams = materialLawManager_.materialLawParams(cell_);
|
||||||
fluidState_.setSaturation(phase1_, s);
|
SatOnlyFluidState fluidState;
|
||||||
fluidState_.setSaturation(phase2_, 1.0 - s);
|
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 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 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_;
|
return pc1 + pc2 - target_pc_;
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
@ -718,8 +722,6 @@ namespace Opm
|
|||||||
const int phase2_;
|
const int phase2_;
|
||||||
const int cell_;
|
const int cell_;
|
||||||
const double target_pc_;
|
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)); \
|
BOOST_CHECK_CLOSE((value), (expected), (reltol)); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
void initDefaultFluidSystem() {
|
{
|
||||||
|
static void initDefaultFluidSystem() {
|
||||||
std::vector<std::pair<double, double> > Bo = {
|
std::vector<std::pair<double, double> > Bo = {
|
||||||
{ 101353, 1. },
|
{ 101353, 1. },
|
||||||
{ 6.21542e+07, 1 }
|
{ 6.21542e+07, 1 }
|
||||||
@ -96,25 +97,25 @@ void initDefaultFluidSystem() {
|
|||||||
FluidSystem::setEnableVaporizedOil(false);
|
FluidSystem::setEnableVaporizedOil(false);
|
||||||
FluidSystem::setReferenceDensities(rhoRefO, rhoRefW, rhoRefG, /*regionIdx=*/0);
|
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);
|
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.setNumRegions(/*numPvtRegion=*/1);
|
||||||
dryGasPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
dryGasPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||||
dryGasPvt.setGasFormationVolumeFactor(/*regionIdx=*/0, Bg);
|
dryGasPvt.setGasFormationVolumeFactor(/*regionIdx=*/0, Bg);
|
||||||
dryGasPvt.setGasViscosity(/*regionIdx=*/0, mug);
|
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);
|
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.setNumRegions(/*numPvtRegion=*/1);
|
||||||
deadOilPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
deadOilPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||||
deadOilPvt.setInverseOilFormationVolumeFactor(/*regionIdx=*/0, Bo);
|
deadOilPvt.setInverseOilFormationVolumeFactor(/*regionIdx=*/0, Bo);
|
||||||
deadOilPvt.setOilViscosity(/*regionIdx=*/0, muo);
|
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);
|
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.setNumRegions(/*numPvtRegions=*/1);
|
||||||
ccWaterPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
ccWaterPvt.setReferenceDensities(/*regionIdx=*/0, rhoRefO, rhoRefG, rhoRefW);
|
||||||
ccWaterPvt.setViscosity(/*regionIdx=*/0, 1);
|
ccWaterPvt.setViscosity(/*regionIdx=*/0, 1);
|
||||||
@ -136,6 +137,7 @@ void initDefaultFluidSystem() {
|
|||||||
FluidSystem::initEnd();
|
FluidSystem::initEnd();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE ()
|
BOOST_AUTO_TEST_SUITE ()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user