Skip to content
Snippets Groups Projects
Commit 01e8fc4c authored by Tom Fischer's avatar Tom Fischer Committed by Dmitri Naumov
Browse files

[PL/TimeLoop|A/AppLib/Simulation] Use bool successful_time_step.

parent c33b1b48
No related branches found
No related tags found
No related merge requests found
......@@ -138,7 +138,7 @@ bool Simulation::executeSimulation()
}
}
return time_loop.getNonlinearSolverStatus().error_norms_met;
return time_loop.successful_time_step;
}
std::optional<ApplicationsLib::TestDefinition> Simulation::getTestDefinition()
......
......@@ -541,8 +541,7 @@ bool TimeLoop::executeTimeStep()
updateDeactivatedSubdomains(_per_process_data, _current_time);
_nonlinear_solver_status =
doNonlinearIteration(_current_time, _dt, timesteps);
successful_time_step = doNonlinearIteration(_current_time, _dt, timesteps);
INFO("[time] Time step #{:d} took {:g} s.", timesteps,
time_timestep.elapsed());
......@@ -595,11 +594,11 @@ bool TimeLoop::loop()
}
}
return _nonlinear_solver_status.error_norms_met;
return successful_time_step;
}
NumLib::NonlinearSolverStatus TimeLoop::doNonlinearIteration(
double const t, double const dt, std::size_t const timesteps)
bool TimeLoop::doNonlinearIteration(double const t, double const dt,
std::size_t const timesteps)
{
preTimestepForAllProcesses(t, dt, _per_process_data, _process_solutions);
......@@ -628,7 +627,7 @@ NumLib::NonlinearSolverStatus TimeLoop::doNonlinearIteration(
_process_solutions, _process_solutions_prev,
_xdot_vector_ids);
}
return nonlinear_solver_status;
return nonlinear_solver_status.error_norms_met;
}
static NumLib::NonlinearSolverStatus solveMonolithicProcess(
......@@ -899,7 +898,7 @@ TimeLoop::~TimeLoop()
_accepted_steps + _rejected_steps, _accepted_steps, _rejected_steps);
// output last time step
if (_nonlinear_solver_status.error_norms_met)
if (successful_time_step)
{
const bool output_initial_condition = false;
outputSolutions(output_initial_condition,
......
......@@ -49,16 +49,13 @@ public:
~TimeLoop();
bool executeTimeStep();
NumLib::NonlinearSolverStatus const& getNonlinearSolverStatus() const
{
return _nonlinear_solver_status;
}
double endTime() const { return _end_time; }
double currentTime() const { return _current_time; }
bool successful_time_step = false;
private:
NumLib::NonlinearSolverStatus doNonlinearIteration(
double const t, double const dt, std::size_t const timesteps);
bool doNonlinearIteration(double const t, double const dt,
std::size_t const timesteps);
/**
* This function fills the vector of solutions of coupled processes of
* processes, _solutions_of_coupled_processes, and initializes the vector
......@@ -122,8 +119,6 @@ private:
std::unique_ptr<Output> _output;
std::vector<std::unique_ptr<ProcessData>> _per_process_data;
NumLib::NonlinearSolverStatus _nonlinear_solver_status;
const double _start_time;
const double _end_time;
double _current_time = _start_time;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment