include/meltpooldg/time_integration/time_integrator_data.hpp Source File

Developer Documentation: include/meltpooldg/time_integration/time_integrator_data.hpp Source File
Developer Documentation
time_integrator_data.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/parameter_handler.h>
4
7#include <meltpooldg/utilities/better_enum.hpp>
9
10#include <string>
11
13{
14 BETTER_ENUM(TimeIntegratorSchemes,
15 int,
16 not_initialized,
17 LSRK_stage_1_order_1,
18 LSRK_stage_3_order_3, /* Kennedy, Carpenter, Lewis, 2000 */
19 LSRK_stage_5_order_4, /* Kennedy, Carpenter, Lewis, 2000 */
20 LSRK_stage_7_order_4, /* Tselios, Simos, 2007 */
21 LSRK_stage_9_order_5, /* Kennedy, Carpenter, Lewis, 2000 */
22 implicit_euler,
23 explicit_euler,
24 crank_nicolson,
25 bdf_1,
26 bdf_2,
27 bdf_3,
28 bdf_4,
29 bdf_5,
30 bdf_6,
31 imex /* first order */)
32
33
36 template <typename number = double>
37 struct TimeIntegratorData
38 {
42 TimeIntegratorData() = default;
43
50 explicit TimeIntegratorData(const TimeIntegratorSchemes scheme)
51 : integrator_type(scheme)
52 {}
53
54
55 TimeIntegratorSchemes integrator_type = TimeIntegratorSchemes::not_initialized;
56
60 unsigned int preconditioner_update_frequency = 100;
61 NonlinearSolverData<number> nlsolver_data;
62 LinearSolverData<number> linear_solver_data;
63
64 void
65 add_parameters(dealii::ParameterHandler &prm)
66 {
67 prm.enter_subsection("time integration");
68 {
69 prm.add_parameter("type", integrator_type, "Name of the time integration scheme.");
70 prm.add_parameter("preconditioner update frequency",
71 preconditioner_update_frequency,
72 "Frequency at which the preconditioner gets updated.");
73 nlsolver_data.add_parameters(prm);
74 linear_solver_data.add_parameters(prm);
75 }
76 prm.leave_subsection();
77 }
78 };
79
80} // namespace MeltPoolDG::TimeIntegration
Class providing different low storage explicit Runge-Kutta schemes. The schemes implemented in this c...
Definition bdf_time_integration.hpp:18
BETTER_ENUM(TimeIntegratorSchemes, int, not_initialized, LSRK_stage_1_order_1, LSRK_stage_3_order_3, LSRK_stage_5_order_4, LSRK_stage_7_order_4, LSRK_stage_9_order_5, implicit_euler, explicit_euler, crank_nicolson, bdf_1, bdf_2, bdf_3, bdf_4, bdf_5, bdf_6, imex) template< typename number
Definition nonlinear_solver_data.hpp:12
void add_parameters(dealii::ParameterHandler &prm)
Definition nonlinear_solver_data.cpp:8