39struct DeserializationParameters
41 DeserializationParameters()
42 : degree(dealii::numbers::invalid_unsigned_int),
43 degree_u(dealii::numbers::invalid_unsigned_int),
44 degree_p(dealii::numbers::invalid_unsigned_int),
45 mapping_degree(dealii::numbers::invalid_unsigned_int),
46 consider_mapping_write(
false),
47 triangulation_type(TriangulationType::Serial),
48 spatial_discretization(IncNS::SpatialDiscretization::L2)
53 print(dealii::ConditionalOStream
const & pcout)
const
55 pcout <<
" Deserialization parameters:" << std::endl;
56 print_parameter(pcout,
"Polynomial degree `degree`", degree);
57 print_parameter(pcout,
"Polynomial degree `degree_u`", degree_u);
58 print_parameter(pcout,
"Polynomial degree `degree_p`", degree_p);
59 print_parameter(pcout,
"Mapping degree", mapping_degree);
60 print_parameter(pcout,
"Consider mapping", consider_mapping_write);
61 print_parameter(pcout,
"Triangulation type", triangulation_type);
62 print_parameter(pcout,
"Spatial discretization", spatial_discretization);
67 unsigned int degree_u;
68 unsigned int degree_p;
71 unsigned int mapping_degree;
74 bool consider_mapping_write;
77 TriangulationType triangulation_type;
80 IncNS::SpatialDiscretization spatial_discretization;
86 : write_restart(
false),
88 interval_time(std::numeric_limits<double>::max()),
89 interval_time_start(std::numeric_limits<double>::lowest()),
90 interval_time_end(std::numeric_limits<double>::max()),
91 interval_wall_time(std::numeric_limits<double>::max()),
92 interval_time_steps(std::numeric_limits<unsigned int>::max()),
93 directory_coarse_triangulation(
"./output/"),
94 directory(
"./output/"),
97 discretization_identical(
false),
98 consider_mapping_write(
false),
100 consider_restart_time_in_mesh_movement_function(
true),
102 rpe_tolerance_unit_cell(1e-12),
103 rpe_enforce_unique_mapping(
false)
108 print(dealii::ConditionalOStream
const & pcout)
const
110 pcout <<
" Restart:" << std::endl;
111 print_parameter(pcout,
"Write restart", write_restart);
113 if(write_restart ==
true)
115 print_parameter(pcout,
"Interval physical time", interval_time);
116 print_parameter(pcout,
"Interval physical time window start", interval_time_start);
117 print_parameter(pcout,
"Interval physical time window end", interval_time_end);
118 print_parameter(pcout,
"Interval wall time", interval_wall_time);
119 print_parameter(pcout,
"Interval time steps", interval_time_steps);
120 print_parameter(pcout,
"Directory coarse triangulation", directory_coarse_triangulation);
121 print_parameter(pcout,
"Directory", directory);
122 print_parameter(pcout,
"Filename", filename);
127 do_restart(
double const wall_time,
129 types::time_step
const time_step_number,
130 bool const reset_counter)
const
137 counter += int((time + 1.e-10) / interval_time);
139 bool const trigger_restart_base = wall_time > interval_wall_time * counter or
140 time > interval_time * counter or
141 time_step_number > interval_time_steps * counter;
144 bool const trigger_restart =
145 trigger_restart_base and time >= interval_time_start and time <= interval_time_end;
150 return trigger_restart;
156 unsigned int n_snapshots_keep;
159 double interval_time;
162 double interval_time_start;
163 double interval_time_end;
166 double interval_wall_time;
169 unsigned int interval_time_steps;
172 std::string directory_coarse_triangulation;
173 std::string directory;
176 std::string filename;
179 mutable unsigned int counter;
186 bool discretization_identical;
189 bool consider_mapping_write;
204 bool consider_restart_time_in_mesh_movement_function;
208 unsigned int rpe_rtree_level;
209 double rpe_tolerance_unit_cell;
210 bool rpe_enforce_unique_mapping;