applications/mp-heat-transfer/heat_transfer_case.hpp Source File

Developer Documentation: applications/mp-heat-transfer/heat_transfer_case.hpp Source File
Developer Documentation
heat_transfer_case.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/parameter_handler.h>
4
18
19#include <string>
20
21
22namespace MeltPoolDG::Heat
23{
24 BETTER_ENUM(AMRStrategy, char, KellyErrorEstimator, generic)
25
26 template <typename number>
28 {
29 protected:
30 void
31 add_parameters(dealii::ParameterHandler &prm) final
32 {
34 time_stepping.add_parameters(prm);
35 amr.add_parameters(prm);
37 material.add_parameters(prm);
39 rad_trans.add_parameters(prm);
40 evapor.add_parameters(prm);
41 output.add_parameters(prm);
42 profiling.add_parameters(prm);
43
44 prm.enter_subsection("application specific");
45 {
46 prm.add_parameter(
47 "do solidification",
48 application_specific_parameters.do_solidification,
49 "Set this parameter to true if you want to consider melting/solidification effects.");
50 prm.add_parameter("amr strategy",
52 "Select the AMR strategy.");
53 }
54 prm.leave_subsection();
55 }
56
57 void
58 post(const std::string &parameter_filename) final
59 {
60 amr.post(base.global_refinements, false /*restart not supported*/);
65 heat.operator_type == TwoPhaseOperatorType::cut);
67 evapor.post(material,
69 output.post(time_stepping.time_step_size, parameter_filename);
70
74 rad_trans.check_input_parameters(base.fe);
75 evapor.check_input_parameters(material);
76 profiling.check_input_parameters(time_stepping.time_step_size);
77 }
78
79 public:
87 Evaporation::EvaporationData<number> evapor;
90
91 struct
92 {
93 bool do_solidification = false;
94 AMRStrategy amr_strategy = AMRStrategy::KellyErrorEstimator;
96 };
97
98
99 template <int dim, typename number>
100 class HeatTransferCase : public SimulationCaseBase<dim, number>
101 {
102 public:
104
105 HeatTransferCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
106 : SimulationCaseBase<dim, number>(parameter_file_in, mpi_communicator_in)
107 {
108 dealii::ParameterHandler prm;
109 parameters.process_parameters_file(prm, parameter_file_in);
110 }
111 };
112} // namespace MeltPoolDG::Heat
Definition heat_transfer_case.hpp:101
HeatTransferCaseParameters< number > parameters
Definition heat_transfer_case.hpp:103
HeatTransferCase(const std::string &parameter_file_in, MPI_Comm mpi_communicator_in)
Definition heat_transfer_case.hpp:105
Base class for managing a simulation case in a parallel computing environment.
Definition simulation_case_base.hpp:44
Definition apparent_capacity.hpp:9
BETTER_ENUM(LaserModelType, char, not_initialized, analytical_temperature, volumetric, interface_projection_regularized, interface_projection_sharp, interface_projection_sharp_conforming, RTE) BETTER_ENUM(LaserIntensityProfileType
Definition amr_data.hpp:9
Definition base_data.hpp:11
void check_input_parameters() const
Definition base_data.cpp:46
unsigned int dimension
Definition base_data.hpp:13
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
bool use_volume_specific_thermal_capacity_for_phase_interpolation
Definition heat_data.hpp:25
Definition heat_data.hpp:18
TwoPhaseOperatorType operator_type
Definition heat_data.hpp:21
void post(const FiniteElementData &base_fe_data, const unsigned int base_verbosity_level)
Definition heat_data.cpp:89
struct MeltPoolDG::Heat::HeatData::Diffuse diffuse
void add_parameters(dealii::ParameterHandler &prm)
Definition heat_data.cpp:18
void check_input_parameters(const FiniteElementData &base_fe_data) const
Definition heat_data.cpp:113
Definition heat_transfer_case.hpp:28
LaserData< number > laser
Definition heat_transfer_case.hpp:85
TimeIntegration::TimeSteppingData< number > time_stepping
Definition heat_transfer_case.hpp:81
HeatData< number > heat
Definition heat_transfer_case.hpp:83
void post(const std::string &parameter_filename) final
Post-processing after reading the parameter file.
Definition heat_transfer_case.hpp:58
BaseData base
Definition heat_transfer_case.hpp:80
AdaptiveMeshingData< number > amr
Definition heat_transfer_case.hpp:82
MaterialData< number > material
Definition heat_transfer_case.hpp:84
OutputData< number > output
Definition heat_transfer_case.hpp:88
bool do_solidification
Definition heat_transfer_case.hpp:93
RadiativeTransport::RadiativeTransportData< number > rad_trans
Definition heat_transfer_case.hpp:86
void add_parameters(dealii::ParameterHandler &prm) final
Add parameters to the ParameterHandler.
Definition heat_transfer_case.hpp:31
AMRStrategy amr_strategy
Definition heat_transfer_case.hpp:94
Profiling::ProfilingData< number > profiling
Definition heat_transfer_case.hpp:89
Evaporation::EvaporationData< number > evapor
Definition heat_transfer_case.hpp:87
struct MeltPoolDG::Heat::HeatTransferCaseParameters::@10 application_specific_parameters
Definition laser_data.hpp:49
void check_input_parameters() const
Definition laser_data.cpp:233
void add_parameters(dealii::ParameterHandler &prm)
Definition laser_data.cpp:19
void post(const unsigned int dim)
Definition laser_data.cpp:115
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 radiative_transport_data.hpp:32
Definition time_stepping_data.hpp:11