Merge pull request #1090 from atgeirr/convergence-failure-problem-not-error
Convergence failure is "problem" not "error"
This commit is contained in:
commit
cc72693348
@ -42,7 +42,8 @@ namespace Opm
|
||||
}
|
||||
|
||||
RockCompressibility::RockCompressibility(const Opm::Deck& deck,
|
||||
const Opm::EclipseState& eclipseState)
|
||||
const Opm::EclipseState& eclipseState,
|
||||
const bool is_io_rank)
|
||||
: pref_(0.0),
|
||||
rock_comp_(0.0)
|
||||
{
|
||||
@ -63,14 +64,14 @@ namespace Opm
|
||||
} else if (deck.hasKeyword("ROCK")) {
|
||||
const auto& rockKeyword = deck.getKeyword("ROCK");
|
||||
if (rockKeyword.size() != 1) {
|
||||
// here it would be better not to use std::cout directly but to add the
|
||||
// warning to some "warning list"...
|
||||
OpmLog::warning("Can only handle a single region in ROCK ("
|
||||
+ std::to_string(rockKeyword.size())
|
||||
+ " regions specified)."
|
||||
+ " Ignoring all except for the first.\n"
|
||||
+ "In file " + rockKeyword.getFileName()
|
||||
+ ", line " + std::to_string(rockKeyword.getLineNumber()) + "\n");
|
||||
if (is_io_rank) {
|
||||
OpmLog::warning("Can only handle a single region in ROCK ("
|
||||
+ std::to_string(rockKeyword.size())
|
||||
+ " regions specified)."
|
||||
+ " Ignoring all except for the first.\n"
|
||||
+ "In file " + rockKeyword.getFileName()
|
||||
+ ", line " + std::to_string(rockKeyword.getLineNumber()) + "\n");
|
||||
}
|
||||
}
|
||||
|
||||
pref_ = rockKeyword.getRecord(0).getItem("PREF").getSIDouble(0);
|
||||
|
@ -36,7 +36,8 @@ namespace Opm
|
||||
/// Construct from input deck.
|
||||
/// Looks for the keywords ROCK and ROCKTAB.
|
||||
RockCompressibility(const Opm::Deck& deck,
|
||||
const Opm::EclipseState& eclipseState);
|
||||
const Opm::EclipseState& eclipseState,
|
||||
const bool is_io_rank = true);
|
||||
|
||||
/// Construct from parameters.
|
||||
/// Accepts the following parameters (with defaults).
|
||||
|
@ -291,7 +291,12 @@ namespace Opm {
|
||||
{
|
||||
// increase restart counter
|
||||
if( restarts >= solver_restart_max_ ) {
|
||||
OPM_THROW(Opm::NumericalProblem,"Solver failed to converge after " << restarts << " restarts.");
|
||||
const auto msg = std::string("Solver failed to converge after ")
|
||||
+ std::to_string(restarts) + " restarts.";
|
||||
if (solver_verbose_) {
|
||||
OpmLog::error(msg);
|
||||
}
|
||||
OPM_THROW_NOLOG(Opm::NumericalProblem, msg);
|
||||
}
|
||||
|
||||
const double newTimeStep = restart_factor_ * dt;
|
||||
@ -301,7 +306,7 @@ namespace Opm {
|
||||
std::string msg;
|
||||
msg = "Solver convergence failed, restarting solver with new time step ("
|
||||
+ std::to_string(unit::convert::to( newTimeStep, unit::day )) + " days).\n";
|
||||
OpmLog::error(msg);
|
||||
OpmLog::problem(msg);
|
||||
}
|
||||
// reset states
|
||||
state = last_state;
|
||||
|
Loading…
Reference in New Issue
Block a user