applications/mp-reinit/reinitialization_case.hpp Source File

Developer Documentation: applications/mp-reinit/reinitialization_case.hpp Source File
Developer Documentation
reinitialization_case.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/parameter_handler.h>
4
15
16
18{
19 template <typename number>
21 {
22 protected:
23 void
24 add_parameters(dealii::ParameterHandler &prm) final
25 {
27 time_stepping.add_parameters(prm);
28 amr.add_parameters(prm);
29 reinit.add_parameters(prm);
30 normal_vec.add_parameters(prm);
31 curv.add_parameters(prm);
32 output.add_parameters(prm);
33 profiling.add_parameters(prm);
34
35 prm.enter_subsection("application specific parameters");
36 {
37 prm.add_parameter(
38 "do update normal vector",
39 application_specific_parameters.do_update_normal_vector,
40 "Set this parameter to true to update the normal vector each pseudo-time step.");
41 }
42 prm.leave_subsection();
43 }
44
45 void
46 post(const std::string &parameter_filename) final
47 {
48 amr.post(base.global_refinements, false /*restart not supported*/);
49 reinit.post(base.fe);
52 output.post(time_stepping.time_step_size, parameter_filename);
53
54 // check input parameters for validity
55 reinit.check_input_parameters(normal_vec.linear_solver.do_matrix_free);
56 normal_vec.check_input_parameters(reinit.interface_thickness_parameter.type);
57 curv.check_input_parameters(reinit.interface_thickness_parameter.type);
58 profiling.check_input_parameters(time_stepping.time_step_size);
59 }
60
61 public:
70
71 struct
72 {
75 };
76
77 template <int dim, typename number>
78 class ReinitializationCase : public SimulationCaseBase<dim, number>
79 {
80 public:
82
83 ReinitializationCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
84 : SimulationCaseBase<dim, number>(parameter_file_in, mpi_communicator_in)
85 {
86 dealii::ParameterHandler prm;
87 parameters.process_parameters_file(prm, parameter_file_in);
88 }
89 };
90} // namespace MeltPoolDG::LevelSet
Definition reinitialization_case.hpp:79
ReinitializationCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
Definition reinitialization_case.hpp:83
ReinitializationCaseParameters< number > parameters
Definition reinitialization_case.hpp:81
Base class for managing a simulation case in a parallel computing environment.
Definition simulation_case_base.hpp:44
This operation solves the reinitialization problem for a CG- or DG-FEM-based discrete level-set field...
Definition advection_DG_operation.hpp:20
Definition amr_data.hpp:9
Definition base_data.hpp:11
unsigned int global_refinements
Definition base_data.hpp:15
void add_parameters(dealii::ParameterHandler &prm)
Definition base_data.cpp:12
FiniteElementData fe
Definition base_data.hpp:18
unsigned int verbosity_level
Definition base_data.hpp:17
Definition curvature_data.hpp:15
Definition normal_vector_data.hpp:15
Definition reinitialization_case.hpp:21
struct MeltPoolDG::LevelSet::ReinitializationCaseParameters::@16 application_specific_parameters
ReinitializationData< number > reinit
Definition reinitialization_case.hpp:65
void post(const std::string &parameter_filename) final
Post-processing after reading the parameter file.
Definition reinitialization_case.hpp:46
CurvatureData< number > curv
Definition reinitialization_case.hpp:67
Profiling::ProfilingData< number > profiling
Definition reinitialization_case.hpp:69
TimeIntegration::TimeSteppingData< number > time_stepping
Definition reinitialization_case.hpp:63
bool do_update_normal_vector
Definition reinitialization_case.hpp:73
void add_parameters(dealii::ParameterHandler &prm) final
Add parameters to the ParameterHandler.
Definition reinitialization_case.hpp:24
OutputData< number > output
Definition reinitialization_case.hpp:68
NormalVectorData< number > normal_vec
Definition reinitialization_case.hpp:66
BaseData base
Definition reinitialization_case.hpp:62
AdaptiveMeshingData< number > amr
Definition reinitialization_case.hpp:64
Definition reinitialization_data.hpp:126
Definition output_data.hpp:41
Abstract base class for managing parameter files.
Definition parameters_base.hpp:40
Definition profiling_data.hpp:13
Definition time_stepping_data.hpp:11