applications/mp-melt-pool/cases/single_track_melt/single_track_melt.hpp Source File

Developer Documentation: applications/mp-melt-pool/cases/single_track_melt/single_track_melt.hpp Source File
Developer Documentation
single_track_melt.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/function.h>
4#include <deal.II/base/parameter_handler.h>
5#include <deal.II/base/point.h>
6
7#include <deal.II/distributed/tria.h>
8
9#include <deal.II/grid/grid_in.h>
10
11#include <memory>
12#include <string>
13
14#include "../../../mp-heat-transfer/heat_transfer_case.hpp"
15#include "../../melt_pool_case.hpp"
16
18{
19 using namespace dealii;
20
30 template <int dim>
31 class GasInletVelocity : public Function<dim>
32 {
33 public:
37 GasInletVelocity(const double inlet_velocity);
38
46 double
47 value(const Point<dim> &p, const unsigned int component = 0) const override;
48
52 const double inlet_velocity;
53 };
54
65 template <int dim>
66 class InitialSignedDistance : public Function<dim>
67 {
68 public:
75
83 double
84 value(const Point<dim> &p, const unsigned int component = 0) const override;
85
86 private:
90 const double y_interface;
91 };
92
115 template <int dim, typename Number, typename CaseClass>
116 class SimulationSingleTrackMelt : public CaseClass
117 {
118 public:
125 SimulationSingleTrackMelt(std::string parameter_file, const MPI_Comm mpi_communicator);
126
133 bool
134 add_case_specific_parameters(ParameterHandler &prm) override;
135
142 void
144
148 void
149 set_boundary_conditions() override;
150
154 void
155 set_field_conditions() override;
156
157 private:
159 std::string mesh_file_name = "single-track-melt.msh";
160
162 double T_initial = 298.15;
163
165 double inlet_temperature = 298.15;
166
168 double inlet_velocity = 100.0;
169
171 double outlet_pressure = 0.0;
172
174 double y_interface = 0.0;
175
177 mutable unsigned int n_time_step = 0;
178
181
184
187
190
193
196 };
197} // namespace MeltPoolDG::Simulation::SingleTrackMelt
Prescribed gas inlet velocity field for the single-track melt case.
Definition single_track_melt.hpp:32
const double inlet_velocity
Definition single_track_melt.hpp:52
double value(const Point< dim > &p, const unsigned int component=0) const override
Return the velocity value at a point for a selected component.
Definition single_track_melt.templates.hpp:31
Initial signed-distance function for a flat interface.
Definition single_track_melt.hpp:67
double value(const Point< dim > &p, const unsigned int component=0) const override
Evaluate the initial signed-distance value.
Definition single_track_melt.templates.hpp:50
const double y_interface
Initial y-position of the interface.
Definition single_track_melt.hpp:90
Simulation case for a single-track melt problem.
Definition single_track_melt.hpp:117
unsigned int n_time_step
Mutable time-step counter for case-specific operations.
Definition single_track_melt.hpp:177
double y_interface
Initial y-position of the gas/material interface.
Definition single_track_melt.hpp:174
bool add_case_specific_parameters(ParameterHandler &prm) override
Declare case-specific parameters.
Definition single_track_melt.templates.hpp:68
double outlet_pressure
Outlet pressure.
Definition single_track_melt.hpp:171
double inlet_temperature
Gas inlet temperature.
Definition single_track_melt.hpp:165
dealii::Point< dim > local_refinement_1_top_right
Top-right point of the first local refinement region.
Definition single_track_melt.hpp:183
void create_spatial_discretization() override
Create or import the spatial discretization.
Definition single_track_melt.templates.hpp:122
double T_initial
Initial temperature.
Definition single_track_melt.hpp:162
std::string mesh_file_name
Name of the gmsh mesh file to import.
Definition single_track_melt.hpp:159
dealii::Point< dim > local_refinement_2_bottom_left
Bottom-left point of the second local refinement region.
Definition single_track_melt.hpp:186
void set_boundary_conditions() override
Attach boundary conditions and apply global/local mesh refinement.
Definition single_track_melt.templates.hpp:170
unsigned int n_additional_refinement_1
Number of additional refinement cycles in the first refinement region.
Definition single_track_melt.hpp:192
double inlet_velocity
Gas inlet velocity in z-direction.
Definition single_track_melt.hpp:168
dealii::Point< dim > local_refinement_2_top_right
Top-right point of the second local refinement region.
Definition single_track_melt.hpp:189
dealii::Point< dim > local_refinement_1_bottom_left
Bottom-left point of the first local refinement region.
Definition single_track_melt.hpp:180
void set_field_conditions() override
Attach initial conditions for velocity, signed distance, and temperature.
Definition single_track_melt.templates.hpp:262
unsigned int n_additional_refinement_2
Number of additional refinement cycles in the second refinement region.
Definition single_track_melt.hpp:195
Definition single_track_melt.cpp:9
Definition dealii_tensor.hpp:10