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!");
|
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.");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ namespace Opm
|
|||||||
Normal = 1,
|
Normal = 1,
|
||||||
TooLarge = 2,
|
TooLarge = 2,
|
||||||
NotANumber = 3,
|
NotANumber = 3,
|
||||||
|
ConvergenceMonitorFailure = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct PenaltyCard {
|
struct PenaltyCard {
|
||||||
|
Loading…
Reference in New Issue
Block a user