38class TimeIntAdamsBashforthMoulton
39 :
public TimeIntAdamsBashforthMoultonBase<Interface::SpatialOperator<Number>,
40 dealii::LinearAlgebra::distributed::BlockVector<Number>>
46 MPI_Comm
const & mpi_comm_in,
47 bool const is_test_in)
48 : TimeIntAdamsBashforthMoultonBase<Interface::SpatialOperator<Number>,
49 dealii::LinearAlgebra::distributed::BlockVector<Number>>(
53 param_in.max_number_of_time_steps,
54 param_in.order_time_integrator,
55 param_in.start_with_low_order,
56 param_in.adaptive_time_stepping,
57 param_in.restart_data,
61 postprocessor(postprocessor_in),
62 pcout(std::cout, dealii::Utilities::MPI::this_mpi_process(mpi_comm_in) == 0),
63 initial_time_step_size(std::numeric_limits<double>::max())
68 print_solver_info()
const final
70 return param.solver_info_data.write(this->global_timer.wall_time(),
71 this->time - this->start_time,
72 this->time_step_number);
77 calculate_time_step_size()
final
79 pcout << std::endl <<
"Calculation of time step size:" << std::endl << std::endl;
81 if(param.calculation_of_time_step_size == TimeStepCalculation::UserSpecified)
83 initial_time_step_size = calculate_const_time_step(param.time_step_size, param.n_refine_time);
85 print_parameter(pcout,
"time step size", initial_time_step_size);
87 else if(param.calculation_of_time_step_size == TimeStepCalculation::CFL)
89 double const cfl = param.cfl / std::pow(2.0, param.n_refine_time);
91 initial_time_step_size = cfl * this->get_underlying_operator().calculate_time_step_cfl();
93 this->pcout << std::endl
94 <<
"Calculation of time step size according to CFL condition:" << std::endl
96 print_parameter(this->pcout,
"CFL", cfl);
97 print_parameter(this->pcout,
"time step size", initial_time_step_size);
100 return initial_time_step_size;
104 recalculate_time_step_size()
const final
110 return initial_time_step_size;
114 postprocessing()
const final
119 postprocessor->do_postprocessing(this->get_solution(),
121 this->time_step_number);
123 this->timer_tree->insert({
"Timeloop",
"Postprocessing"}, timer.wall_time());
128 std::shared_ptr<PostProcessorInterface<Number>> postprocessor;
130 dealii::ConditionalOStream pcout;
135 double initial_time_step_size;
Definition postprocessor_interface.h:34