24class ConvergenceCriterion;
25class StaggeredCoupling;
31class ChemicalSolverInterface;
42 TimeLoop(std::vector<Output>&& outputs,
43 std::vector<std::unique_ptr<ProcessData>>&& per_process_data,
44 std::unique_ptr<NumLib::StaggeredCoupling>&& staggered_coupling,
69 std::size_t
const timesteps);
83 const NumLib::Time& t,
const double dt,
const std::size_t timestep_id);
96 const NumLib::Time& t,
const double dt,
const std::size_t timestep_id);
116 const double prev_dt,
NumLib::Time& t, std::size_t& accepted_steps,
117 std::size_t& rejected_steps,
118 std::vector<TimeStepConstraintCallback>
const& time_step_constraints);
120 template <
typename OutputClassMember>
123 OutputClassMember output_class_member)
const;
127 std::vector<double>&& fixed_times)
const;
129 const double dt)
const;
Time loop capable of time-integrating several processes at once.
NumLib::NonlinearSolverStatus solveUncoupledEquationSystems(const NumLib::Time &t, const double dt, const std::size_t timestep_id)
Member to solver non coupled systems of equations, which can be a single system of equations,...
NumLib::Time currentTime() const
void outputLastTimeStep() const
void preOutputInitialConditions(NumLib::Time const &t, const double dt) const
NumLib::TimeIncrement _dt
NumLib::Time _current_time
std::function< double(NumLib::Time const &, double)> TimeStepConstraintCallback
std::pair< NumLib::TimeIncrement, bool > computeTimeStepping(const double prev_dt, NumLib::Time &t, std::size_t &accepted_steps, std::size_t &rejected_steps, std::vector< TimeStepConstraintCallback > const &time_step_constraints)
TimeLoop(std::vector< Output > &&outputs, std::vector< std::unique_ptr< ProcessData > > &&per_process_data, std::unique_ptr< NumLib::StaggeredCoupling > &&staggered_coupling, const NumLib::Time &start_time, const NumLib::Time &end_time)
std::vector< std::unique_ptr< ProcessData > > _per_process_data
void outputSolutions(unsigned timestep, const double t, OutputClassMember output_class_member) const
std::vector< Output > _outputs
std::size_t _accepted_steps
bool successful_time_step
std::vector< GlobalVector * > _process_solutions
std::unique_ptr< NumLib::StaggeredCoupling > _staggered_coupling
void initialize()
initialize output, convergence criterion, etc.
int _repeating_times_of_rejected_step
std::size_t _rejected_steps
bool calculateNextTimeStep()
const NumLib::Time _end_time
bool preTsNonlinearSolvePostTs(NumLib::Time const &t, double const dt, std::size_t const timesteps)
NumLib::Time endTime() const
NumLib::NonlinearSolverStatus solveCoupledEquationSystemsByStaggeredScheme(const NumLib::Time &t, const double dt, const std::size_t timestep_id)
Member to solver coupled systems of equations by the staggered scheme.
std::vector< TimeStepConstraintCallback > generateOutputTimeStepConstraints(std::vector< double > &&fixed_times) const
const NumLib::Time _start_time
std::vector< GlobalVector * > _process_solutions_prev
Status of the non-linear solver.