36class TimeIntAdamsBashforthMoulton
37 :
public TimeIntAdamsBashforthMoultonBase<Interface::SpatialOperator<Number>,
38 dealii::LinearAlgebra::distributed::BlockVector<Number>>
44 MPI_Comm
const & mpi_comm_in,
45 bool const is_test_in)
46 : TimeIntAdamsBashforthMoultonBase<Interface::SpatialOperator<Number>,
47 dealii::LinearAlgebra::distributed::BlockVector<Number>>(
51 param_in.max_number_of_time_steps,
52 param_in.order_time_integrator,
53 param_in.start_with_low_order,
54 param_in.adaptive_time_stepping,
55 param_in.restart_data,
59 postprocessor(postprocessor_in),
60 pcout(std::cout, dealii::Utilities::MPI::this_mpi_process(mpi_comm_in) == 0),
61 initial_time_step_size(std::numeric_limits<double>::max())
66 print_solver_info()
const final
68 return param.solver_info_data.write(this->global_timer.wall_time(),
69 this->time - this->start_time,
70 this->time_step_number);
75 calculate_time_step_size()
final
77 pcout << std::endl <<
"Calculation of time step size:" << std::endl << std::endl;
79 if(param.calculation_of_time_step_size == TimeStepCalculation::UserSpecified)
81 initial_time_step_size = calculate_const_time_step(param.time_step_size, param.n_refine_time);
83 print_parameter(pcout,
"time step size", initial_time_step_size);
85 else if(param.calculation_of_time_step_size == TimeStepCalculation::CFL)
87 double const cfl = param.cfl / std::pow(2.0, param.n_refine_time);
89 initial_time_step_size = cfl * this->get_underlying_operator().calculate_time_step_cfl();
91 this->pcout << std::endl
92 <<
"Calculation of time step size according to CFL condition:" << std::endl
94 print_parameter(this->pcout,
"CFL", cfl);
95 print_parameter(this->pcout,
"time step size", initial_time_step_size);
98 return initial_time_step_size;
102 recalculate_time_step_size()
const final
108 return initial_time_step_size;
112 postprocessing()
const final
117 postprocessor->do_postprocessing(this->get_solution(),
119 this->time_step_number);
121 this->timer_tree->insert({
"Timeloop",
"Postprocessing"}, timer.wall_time());
126 std::shared_ptr<PostProcessorInterface<Number>> postprocessor;
128 dealii::ConditionalOStream pcout;
133 double initial_time_step_size;
Definition postprocessor_interface.h:34