applications/mp-level-set/level_set_case.hpp Source File

Developer Documentation: applications/mp-level-set/level_set_case.hpp Source File
Developer Documentation
level_set_case.hpp
Go to the documentation of this file.
1#pragma once
2#include <deal.II/base/parameter_handler.h>
3
14
16{
17 template <typename number>
19 {
20 protected:
21 void
22 add_parameters(dealii::ParameterHandler &prm) final
23 {
25 time_stepping.add_parameters(prm);
26 amr.add_parameters(prm);
27 ls.add_parameters(prm);
28 output.add_parameters(prm);
29 profiling.add_parameters(prm);
30 evapor.add_parameters(prm);
31 material.add_parameters(prm);
32 prm.enter_subsection("amr");
33 {
34 prm.add_parameter("strategy",
36 "Select the AMR strategy.",
37 dealii::Patterns::Selection("generic|refine_all_interface_cells"));
38 }
39 prm.leave_subsection();
40 }
41
42 void
43 post(const std::string &parameter_filename) final
44 {
45 amr.post(base.global_refinements, false /*restart not supported*/);
46 evapor.post(material, false /*does not matter*/);
48 output.post(time_stepping.time_step_size, parameter_filename);
49
50 // check input parameters for validity
51 ls.check_input_parameters(base.fe);
52 profiling.check_input_parameters(time_stepping.time_step_size);
53 evapor.check_input_parameters(material);
54
55 AssertThrow(evapor.evaporative_mass_flux_model ==
56 Evaporation::EvaporationModelType::analytical,
57 dealii::ExcMessage(
58 "For the level set case we only support to provide an analytical "
59 "function for the evaporation rate."));
60 }
61
62 public:
69 std::string amr_strategy = "generic";
70 Evaporation::EvaporationData<number> evapor;
72 };
73
74 template <int dim, typename number>
75 class LevelSetCase : public SimulationCaseBase<dim, number>
76 {
77 public:
79
80 LevelSetCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
81 : SimulationCaseBase<dim, number>(parameter_file_in, mpi_communicator_in)
82 {
83 dealii::ParameterHandler prm;
84 parameters.process_parameters_file(prm, parameter_file_in);
85 }
86 };
87} // namespace MeltPoolDG::LevelSet
Definition level_set_case.hpp:76
LevelSetCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
Definition level_set_case.hpp:80
LevelSetCaseParameters< number > parameters
Definition level_set_case.hpp:78
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 level_set_case.hpp:19
Evaporation::EvaporationData< number > evapor
Definition level_set_case.hpp:70
void post(const std::string &parameter_filename) final
Post-processing after reading the parameter file.
Definition level_set_case.hpp:43
OutputData< number > output
Definition level_set_case.hpp:67
MaterialData< number > material
Definition level_set_case.hpp:71
TimeIntegration::TimeSteppingData< number > time_stepping
Definition level_set_case.hpp:64
BaseData base
Definition level_set_case.hpp:63
LevelSetData< number > ls
Definition level_set_case.hpp:66
Profiling::ProfilingData< number > profiling
Definition level_set_case.hpp:68
std::string amr_strategy
Definition level_set_case.hpp:69
void add_parameters(dealii::ParameterHandler &prm) final
Add parameters to the ParameterHandler.
Definition level_set_case.hpp:22
AdaptiveMeshingData< number > amr
Definition level_set_case.hpp:65
Definition level_set_data.hpp:16
Definition material_data.hpp:84
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