mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
fix cmax issues.
This commit is contained in:
parent
953cddce98
commit
4d1f364a40
@ -202,9 +202,10 @@ namespace {
|
|||||||
WellStateFullyImplicitBlackoil& xw,
|
WellStateFullyImplicitBlackoil& xw,
|
||||||
const std::vector<double>& polymer_inflow)
|
const std::vector<double>& polymer_inflow)
|
||||||
{
|
{
|
||||||
|
// Initial max concentration of this time step from PolymerBlackoilState.
|
||||||
|
cmax_ = Eigen::Map<V>(&x.maxconcentration()[0], Opm::AutoDiffGrid::numCells(grid_));
|
||||||
|
|
||||||
const SolutionState state = constantState(x, xw);
|
const SolutionState state = constantState(x, xw);
|
||||||
computeCmax(x, state.concentration);
|
|
||||||
computeAccum(state, 0);
|
computeAccum(state, 0);
|
||||||
|
|
||||||
const double atol = 1.0e-12;
|
const double atol = 1.0e-12;
|
||||||
@ -241,6 +242,9 @@ namespace {
|
|||||||
std::cerr << "Failed to compute converged solution in " << it << " iterations. Ignoring!\n";
|
std::cerr << "Failed to compute converged solution in " << it << " iterations. Ignoring!\n";
|
||||||
// OPM_THROW(std::runtime_error, "Failed to compute converged solution in " << it << " iterations.");
|
// OPM_THROW(std::runtime_error, "Failed to compute converged solution in " << it << " iterations.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update max concentration.
|
||||||
|
computeCmax(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -483,15 +487,15 @@ namespace {
|
|||||||
|
|
||||||
void
|
void
|
||||||
FullyImplicitCompressiblePolymerSolver::
|
FullyImplicitCompressiblePolymerSolver::
|
||||||
computeCmax(PolymerBlackoilState& state,
|
computeCmax(PolymerBlackoilState& state)
|
||||||
const ADB& c)
|
|
||||||
{
|
{
|
||||||
const int nc = grid_.number_of_cells;
|
const int nc = grid_.number_of_cells;
|
||||||
for (int i = 0; i < nc; ++i) {
|
V tmp = V::Zero(nc);
|
||||||
cmax_(i) = std::max(cmax_(i), c.value()(i));
|
for (int i = 0; i < nc; ++i) {
|
||||||
|
tmp[i] = std::max(state.maxconcentration()[i], state.concentration()[i]);
|
||||||
}
|
}
|
||||||
std::copy(&cmax_[0], &cmax_[0] + nc, state.maxconcentration().begin());
|
|
||||||
|
|
||||||
|
std::copy(&tmp[0], &tmp[0] + nc, state.maxconcentration().begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,8 +196,7 @@ namespace Opm {
|
|||||||
const ADB& c) const;
|
const ADB& c) const;
|
||||||
|
|
||||||
void
|
void
|
||||||
computeCmax(PolymerBlackoilState& state,
|
computeCmax(PolymerBlackoilState& state);
|
||||||
const ADB& c);
|
|
||||||
|
|
||||||
ADB
|
ADB
|
||||||
computeMc(const SolutionState& state) const;
|
computeMc(const SolutionState& state) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user