mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
add missing wellGroupTargetsViolated in ++ operator
This commit is contained in:
@@ -86,7 +86,7 @@ namespace Opm
|
|||||||
: status_{AllGood}
|
: status_{AllGood}
|
||||||
, res_failures_{}
|
, res_failures_{}
|
||||||
, well_failures_{}
|
, well_failures_{}
|
||||||
, groupConverged_(true)
|
, wellGroupTargetsViolated_(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ namespace Opm
|
|||||||
status_ = AllGood;
|
status_ = AllGood;
|
||||||
res_failures_.clear();
|
res_failures_.clear();
|
||||||
well_failures_.clear();
|
well_failures_.clear();
|
||||||
groupConverged_ = true;
|
wellGroupTargetsViolated_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setReservoirFailed(const ReservoirFailure& rf)
|
void setReservoirFailed(const ReservoirFailure& rf)
|
||||||
@@ -110,9 +110,9 @@ namespace Opm
|
|||||||
well_failures_.push_back(wf);
|
well_failures_.push_back(wf);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setGroupConverged(const bool groupConverged)
|
void setWellGroupTargetsViolated(const bool wellGroupTargetsViolated)
|
||||||
{
|
{
|
||||||
groupConverged_ = groupConverged;
|
wellGroupTargetsViolated_ = wellGroupTargetsViolated;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvergenceReport& operator+=(const ConvergenceReport& other)
|
ConvergenceReport& operator+=(const ConvergenceReport& other)
|
||||||
@@ -122,6 +122,7 @@ namespace Opm
|
|||||||
well_failures_.insert(well_failures_.end(), other.well_failures_.begin(), other.well_failures_.end());
|
well_failures_.insert(well_failures_.end(), other.well_failures_.begin(), other.well_failures_.end());
|
||||||
assert(reservoirFailed() != res_failures_.empty());
|
assert(reservoirFailed() != res_failures_.empty());
|
||||||
assert(wellFailed() != well_failures_.empty());
|
assert(wellFailed() != well_failures_.empty());
|
||||||
|
wellGroupTargetsViolated_ = (wellGroupTargetsViolated_ || other.wellGroupTargetsViolated_);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,7 +130,7 @@ namespace Opm
|
|||||||
|
|
||||||
bool converged() const
|
bool converged() const
|
||||||
{
|
{
|
||||||
return status_ == AllGood && groupConverged_;
|
return (status_ == AllGood) && !wellGroupTargetsViolated_;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool reservoirFailed() const
|
bool reservoirFailed() const
|
||||||
@@ -174,7 +175,7 @@ namespace Opm
|
|||||||
Status status_;
|
Status status_;
|
||||||
std::vector<ReservoirFailure> res_failures_;
|
std::vector<ReservoirFailure> res_failures_;
|
||||||
std::vector<WellFailure> well_failures_;
|
std::vector<WellFailure> well_failures_;
|
||||||
bool groupConverged_;
|
bool wellGroupTargetsViolated_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Opm
|
} // namespace Opm
|
||||||
|
|||||||
@@ -1409,15 +1409,16 @@ namespace Opm {
|
|||||||
|
|
||||||
const Opm::Parallel::Communication comm = grid().comm();
|
const Opm::Parallel::Communication comm = grid().comm();
|
||||||
DeferredLogger global_deferredLogger = gatherDeferredLogger(local_deferredLogger, comm);
|
DeferredLogger global_deferredLogger = gatherDeferredLogger(local_deferredLogger, comm);
|
||||||
if (terminal_output_) {
|
|
||||||
global_deferredLogger.logMessages();
|
|
||||||
}
|
|
||||||
|
|
||||||
ConvergenceReport report = gatherConvergenceReport(local_report, comm);
|
ConvergenceReport report = gatherConvergenceReport(local_report, comm);
|
||||||
|
|
||||||
if (report.converged() && checkWellGroupControls) {
|
if (report.converged() && checkWellGroupControls) {
|
||||||
bool violated = updateWellControls(local_deferredLogger);
|
bool violated = updateWellControls(global_deferredLogger);
|
||||||
report.setGroupConverged(!violated);
|
report.setWellGroupTargetsViolated(violated);
|
||||||
|
}
|
||||||
|
if (terminal_output_) {
|
||||||
|
global_deferredLogger.logMessages();
|
||||||
}
|
}
|
||||||
// Log debug messages for NaN or too large residuals.
|
// Log debug messages for NaN or too large residuals.
|
||||||
if (terminal_output_) {
|
if (terminal_output_) {
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ namespace Opm
|
|||||||
const GroupState& group_state,
|
const GroupState& group_state,
|
||||||
DeferredLogger& deferred_logger) /* const */
|
DeferredLogger& deferred_logger) /* const */
|
||||||
{
|
{
|
||||||
if (!this->isOperableAndSolvable() || this->wellIsStopped()) {
|
if (this->wellIsStopped()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user