Store report of failed step before cutting from convergence monitoring

This commit is contained in:
jakobtorben 2024-09-10 15:50:09 +02:00
parent eef0ba50bf
commit 6d53daaa42
3 changed files with 6 additions and 2 deletions

View File

@ -369,6 +369,8 @@ namespace Opm {
OPM_THROW_PROBLEM(NumericalProblem, "NaN residual found!"); OPM_THROW_PROBLEM(NumericalProblem, "NaN residual found!");
} else if (severity == ConvergenceReport::Severity::TooLarge) { } else if (severity == ConvergenceReport::Severity::TooLarge) {
OPM_THROW_NOLOG(NumericalProblem, "Too large residual found!"); 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(); report.update_time += perfTimer.stop();
@ -1148,9 +1150,8 @@ namespace Opm {
if (total_penaltyCard_.total() > param_.convergence_monitoring_cutoff_) { if (total_penaltyCard_.total() > param_.convergence_monitoring_cutoff_) {
report.setReservoirFailed({ConvergenceReport::ReservoirFailure::Type::ConvergenceMonitorFailure, report.setReservoirFailed({ConvergenceReport::ReservoirFailure::Type::ConvergenceMonitorFailure,
ConvergenceReport::Severity::TooLarge, ConvergenceReport::Severity::ConvergenceMonitorFailure,
-1}); // -1 indicates it's not specific to any component -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.");
} }
} }

View File

@ -59,6 +59,8 @@ namespace Opm
return "TooLarge"; return "TooLarge";
case S::NotANumber: case S::NotANumber:
return "NotANumber"; return "NotANumber";
case S::ConvergenceMonitorFailure:
return "ConvergenceMonitorFailure";
} }
throw std::logic_error("Unknown ConvergenceReport::Severity"); throw std::logic_error("Unknown ConvergenceReport::Severity");
} }

View File

@ -51,6 +51,7 @@ namespace Opm
Normal = 1, Normal = 1,
TooLarge = 2, TooLarge = 2,
NotANumber = 3, NotANumber = 3,
ConvergenceMonitorFailure = 4,
}; };
struct PenaltyCard { struct PenaltyCard {