30class TimeIntMultistepBase :
public TimeIntBase
33 using BoostInputArchiveType = TimeIntBase::BoostInputArchiveType;
34 using BoostOutputArchiveType = TimeIntBase::BoostOutputArchiveType;
39 TimeIntMultistepBase(
double const start_time_,
40 double const end_time_,
41 unsigned int const max_number_of_time_steps_,
42 unsigned const order_,
43 bool const start_with_low_order_,
44 bool const adaptive_time_stepping_,
46 MPI_Comm
const & mpi_comm_,
52 virtual ~TimeIntMultistepBase()
61 setup(
bool const do_restart)
final;
67 timeloop_steady_problem();
73 get_time_step_size()
const final;
76 get_time_step_size(
int const index)
const;
85 set_current_time_step_size(
double const & time_step_size)
final;
91 get_previous_time(
int const i )
const;
98 get_current_order()
const;
105 do_timestep_pre_solve(
bool const print_header)
final;
108 do_timestep_post_solve()
final;
114 update_time_integrator_constants() = 0;
120 get_time_step_vector()
const;
126 push_back_time_step_sizes();
132 calculate_time_step_size() = 0;
138 print_solver_info()
const = 0;
143 unsigned int const order;
148 bool const start_with_low_order;
153 bool const adaptive_time_stepping;
158 std::vector<double> time_steps;
165 allocate_vectors() = 0;
172 initialize_solution_and_time_step_size(
bool do_restart);
178 initialize_current_solution() = 0;
185 initialize_former_multistep_dof_vectors() = 0;
198 prepare_vectors_for_next_timestep() = 0;
204 solve_steady_problem();
210 postprocessing_steady_problem()
const;
216 do_read_restart(std::ifstream & in)
final;
219 read_restart_preamble(BoostInputArchiveType & ia);
222 read_restart_vectors(BoostInputArchiveType & ia) = 0;
229 do_write_restart(std::string
const & filename)
const final;
232 write_restart_preamble(BoostOutputArchiveType & oa)
const;
235 write_restart_vectors(BoostOutputArchiveType & oa)
const = 0;
241 recalculate_time_step_size()
const = 0;