mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
incorporting polymer except the parts related to PLYSHLOG
This commit is contained in:
parent
b3428a8bf9
commit
5ed9f4d497
@ -153,6 +153,9 @@ namespace Opm
|
|||||||
const WellState& well_state,
|
const WellState& well_state,
|
||||||
std::vector<double>& well_potentials) const;
|
std::vector<double>& well_potentials) const;
|
||||||
|
|
||||||
|
using WellInterface<TypeTag>::has_solvent;
|
||||||
|
using WellInterface<TypeTag>::has_polymer;
|
||||||
|
|
||||||
using WellInterface<TypeTag>::phaseUsage;
|
using WellInterface<TypeTag>::phaseUsage;
|
||||||
using WellInterface<TypeTag>::active;
|
using WellInterface<TypeTag>::active;
|
||||||
using WellInterface<TypeTag>::numberOfPerforations;
|
using WellInterface<TypeTag>::numberOfPerforations;
|
||||||
@ -170,9 +173,9 @@ namespace Opm
|
|||||||
using WellInterface<TypeTag>::flowPhaseToEbosCompIdx;
|
using WellInterface<TypeTag>::flowPhaseToEbosCompIdx;
|
||||||
using WellInterface<TypeTag>::numComponents;
|
using WellInterface<TypeTag>::numComponents;
|
||||||
using WellInterface<TypeTag>::numPhases;
|
using WellInterface<TypeTag>::numPhases;
|
||||||
using WellInterface<TypeTag>::has_solvent;
|
|
||||||
using WellInterface<TypeTag>::wellIndex;
|
using WellInterface<TypeTag>::wellIndex;
|
||||||
using WellInterface<TypeTag>::wsolvent;
|
using WellInterface<TypeTag>::wsolvent;
|
||||||
|
using WellInterface<TypeTag>::wpolymer;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -670,12 +670,10 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: will incoporate the following related to polymer later
|
if (has_polymer) {
|
||||||
// which was introduced in PR 1220
|
|
||||||
/* if (has_polymer_) {
|
|
||||||
EvalWell cq_s_poly = cq_s[Water];
|
EvalWell cq_s_poly = cq_s[Water];
|
||||||
if (wellType() == INJECTOR) {
|
if (wellType() == INJECTOR) {
|
||||||
cq_s_poly *= wpolymer(w);
|
cq_s_poly *= wpolymer();
|
||||||
} else {
|
} else {
|
||||||
cq_s_poly *= extendEval(intQuants.polymerConcentration() * intQuants.polymerViscosityCorrection());
|
cq_s_poly *= extendEval(intQuants.polymerConcentration() * intQuants.polymerViscosityCorrection());
|
||||||
}
|
}
|
||||||
@ -685,7 +683,7 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
ebosResid[cell_idx][contiPolymerEqIdx] -= cq_s_poly.value();
|
ebosResid[cell_idx][contiPolymerEqIdx] -= cq_s_poly.value();
|
||||||
}
|
}
|
||||||
} */
|
}
|
||||||
|
|
||||||
// Store the perforation pressure for later usage.
|
// Store the perforation pressure for later usage.
|
||||||
well_state.perfPress()[first_perf_ + perf] = well_state.bhp()[indexOfWell()] + perfPressureDiffs()[perf];
|
well_state.perfPress()[first_perf_ + perf] = well_state.bhp()[indexOfWell()] + perfPressureDiffs()[perf];
|
||||||
@ -693,7 +691,6 @@ namespace Opm
|
|||||||
|
|
||||||
// add vol * dF/dt + Q to the well equations;
|
// add vol * dF/dt + Q to the well equations;
|
||||||
for (int componentIdx = 0; componentIdx < numComp; ++componentIdx) {
|
for (int componentIdx = 0; componentIdx < numComp; ++componentIdx) {
|
||||||
// TODO: the F0_ here is not initialized yet here, which should happen in the first iteration, so it should happen in the assemble function
|
|
||||||
EvalWell resWell_loc = (wellSurfaceVolumeFraction(componentIdx) - F0_[componentIdx]) * volume / dt;
|
EvalWell resWell_loc = (wellSurfaceVolumeFraction(componentIdx) - F0_[componentIdx]) * volume / dt;
|
||||||
resWell_loc += getQs(componentIdx);
|
resWell_loc += getQs(componentIdx);
|
||||||
for (int pvIdx = 0; pvIdx < numWellEq; ++pvIdx) {
|
for (int pvIdx = 0; pvIdx < numWellEq; ++pvIdx) {
|
||||||
@ -701,12 +698,10 @@ namespace Opm
|
|||||||
}
|
}
|
||||||
resWell_[0][componentIdx] += resWell_loc.value();
|
resWell_[0][componentIdx] += resWell_loc.value();
|
||||||
|
|
||||||
|
// add trivial equation for polymer
|
||||||
// TODO: to incoporate the following polymer related later, which was introduced in PR 1220
|
if (has_polymer) {
|
||||||
/* // add trivial equation for polymer
|
invDuneD_[0][0][contiPolymerEqIdx][polymerConcentrationIdx] = 1.0;
|
||||||
if (has_polymer_) {
|
}
|
||||||
invDuneD_[w][w][contiPolymerEqIdx][polymerConcentrationIdx] = 1.0; //
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// do the local inversion of D.
|
// do the local inversion of D.
|
||||||
@ -763,8 +758,6 @@ namespace Opm
|
|||||||
const int perf,
|
const int perf,
|
||||||
std::vector<EvalWell>& mob) const
|
std::vector<EvalWell>& mob) const
|
||||||
{
|
{
|
||||||
// TODO: not incoporating the PLYSHLOG related for now.
|
|
||||||
// which is incoporate from PR 1220 and should be included later.
|
|
||||||
const int np = numberOfPhases();
|
const int np = numberOfPhases();
|
||||||
const int cell_idx = wellCells()[perf];
|
const int cell_idx = wellCells()[perf];
|
||||||
assert (int(mob.size()) == numComponents());
|
assert (int(mob.size()) == numComponents());
|
||||||
|
Loading…
Reference in New Issue
Block a user