mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Store report of failed step before cutting from convergence monitoring
This commit is contained in:
parent
eef0ba50bf
commit
6d53daaa42
@ -369,6 +369,8 @@ namespace Opm {
|
||||
OPM_THROW_PROBLEM(NumericalProblem, "NaN residual found!");
|
||||
} else if (severity == ConvergenceReport::Severity::TooLarge) {
|
||||
OPM_THROW_NOLOG(NumericalProblem, "Too large residual found!");
|
||||
} else if (severity == ConvergenceReport::Severity::ConvergenceMonitorFailure) {
|
||||
OPM_THROW_PROBLEM(ConvergenceMonitorFailure, "Total penalty count exceeded cut-off-limit of " + std::to_string(param_.convergence_monitoring_cutoff_));
|
||||
}
|
||||
}
|
||||
report.update_time += perfTimer.stop();
|
||||
@ -1148,9 +1150,8 @@ namespace Opm {
|
||||
|
||||
if (total_penaltyCard_.total() > param_.convergence_monitoring_cutoff_) {
|
||||
report.setReservoirFailed({ConvergenceReport::ReservoirFailure::Type::ConvergenceMonitorFailure,
|
||||
ConvergenceReport::Severity::TooLarge,
|
||||
ConvergenceReport::Severity::ConvergenceMonitorFailure,
|
||||
-1}); // -1 indicates it's not specific to any component
|
||||
throw ConvergenceMonitorFailure("Total penalty count exceeded cut-off-limit of " + std::to_string(param_.convergence_monitoring_cutoff_) + ". Cutting timestep.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,6 +59,8 @@ namespace Opm
|
||||
return "TooLarge";
|
||||
case S::NotANumber:
|
||||
return "NotANumber";
|
||||
case S::ConvergenceMonitorFailure:
|
||||
return "ConvergenceMonitorFailure";
|
||||
}
|
||||
throw std::logic_error("Unknown ConvergenceReport::Severity");
|
||||
}
|
||||
|
@ -51,6 +51,7 @@ namespace Opm
|
||||
Normal = 1,
|
||||
TooLarge = 2,
|
||||
NotANumber = 3,
|
||||
ConvergenceMonitorFailure = 4,
|
||||
};
|
||||
|
||||
struct PenaltyCard {
|
||||
|
Loading…
Reference in New Issue
Block a user