applications/mp-radiative-transport/cases/radiative_transport.hpp Source File

Developer Documentation: applications/mp-radiative-transport/cases/radiative_transport.hpp Source File
Developer Documentation
radiative_transport.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/mpi.h>
4#include <deal.II/base/parameter_handler.h>
5#include <deal.II/base/point.h>
6
9
10#include <memory>
11#include <string>
12#include <utility>
13#include <vector>
14
15#define MELTPOOLDG_REGISTER_MULTI_APP_CASE(CaseClass, ConcreteCaseClass, case_name, dim, number) \
16 static bool case_name_is_registered_##dim = \
17 SimulationCaseFactory<CaseClass<dim, number>>::register_simulation( \
18 case_name, [](const std::string parameter_file, const MPI_Comm mpi_communicator) { \
19 return std::make_unique<ConcreteCaseClass<dim, number, CaseClass<dim, number>>>( \
20 parameter_file, mpi_communicator); \
21 });
22
27{
28 BETTER_ENUM(InterfaceCase, char, straight, single_powder_particle)
29
30 using namespace MeltPoolDG::Simulation;
31
32 template <int dim, typename number, typename Problem>
33 class SimulationRadTrans : public Problem
34 {
35 public:
36 SimulationRadTrans(std::string parameter_file, const MPI_Comm mpi_communicator);
37
38 bool
39 add_case_specific_parameters(dealii::ParameterHandler &prm) override;
40
41 void
43
44 void
46
47 void
49
50 private:
51 number domain_x_min = -1.;
52 number domain_x_max = 1.;
53 number domain_y_min = -1.;
54 number domain_y_max = 1.;
55 std::vector<unsigned int> cell_repetitions;
56 std::pair<number, number> interface_case_info;
57 number power_in = 0.1;
58 dealii::Point<dim, number> center_in;
59 number radius_in = domain_x_max / 5.;
60
61 InterfaceCase interface_case = InterfaceCase::straight;
62
63 number speed = domain_x_max / 2;
64 number end_time = 10.0;
65
68 };
69} // namespace MeltPoolDG::Simulation::RadiativeTransport
InterfaceCase interface_case
Definition radiative_transport.hpp:61
number power_in
Definition radiative_transport.hpp:57
number speed
Definition radiative_transport.hpp:63
bool add_case_specific_parameters(dealii::ParameterHandler &prm) override
Definition radiative_transport.templates.hpp:104
std::pair< number, number > interface_case_info
Definition radiative_transport.hpp:56
dealii::Point< dim, number > center_in
Definition radiative_transport.hpp:58
number domain_y_max
Definition radiative_transport.hpp:54
number domain_x_max
Definition radiative_transport.hpp:52
void set_boundary_conditions() final
Definition radiative_transport.templates.hpp:200
void create_spatial_discretization() override
Definition radiative_transport.templates.hpp:147
number powder_particle_radius
Definition radiative_transport.hpp:67
std::vector< unsigned int > cell_repetitions
Definition radiative_transport.hpp:55
number end_time
Definition radiative_transport.hpp:64
number powder_particle_offset
Definition radiative_transport.hpp:66
number radius_in
Definition radiative_transport.hpp:59
void set_field_conditions() final
Definition radiative_transport.templates.hpp:224
number domain_y_min
Definition radiative_transport.hpp:53
number domain_x_min
Definition radiative_transport.hpp:51
Definition radiative_transport.cpp:7
Definition advection_diffusion.cpp:6
BETTER_ENUM(MaterialTemplate, char, none, stainless_steel, Ti64, Ti64Benchmark) BETTER_ENUM(SolidLiquidPropertiesTransitionType