applications/mp-heat-transfer/cases/fixed_melt_pool_geometry/fixed_melt_pool.hpp Source File

Developer Documentation: applications/mp-heat-transfer/cases/fixed_melt_pool_geometry/fixed_melt_pool.hpp Source File
Developer Documentation
fixed_melt_pool.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/function.h>
4#include <deal.II/base/mpi.h>
5#include <deal.II/base/parameter_handler.h>
6#include <deal.II/base/point.h>
7
10
11#include <string>
12
13#include "../../heat_transfer_case.hpp"
14
24{
29 template <int dim, typename number>
30 class FixedMeltPoolGeometry : public dealii::Function<dim, number>
31 {
32 public:
38 FixedMeltPoolGeometry(const LevelSet::LevelSetType level_set_type, const number eps = 0.0);
39
43 number
44 value(const dealii::Point<dim> &p, const unsigned int /*component*/) const override;
45
46 private:
50 number
51 signed_distance_level(const dealii::Point<dim> &p) const;
52
56 number
57 signed_distance_pool(const dealii::Point<dim> &p) const;
58
62 number
63 signed_distance_beads(const dealii::Point<dim> &p) const;
64
65 bool
66 is_inside_melt_pool(const dealii::Point<dim> &p) const;
67
69 const number y_level = 10e-6;
70
71 const dealii::Point<dim> centre{0.0, 0.0};
72 const number centre_radius = 50e-6;
73 const number bead_radius = 10e-6;
74
77
78 const LevelSet::LevelSetType level_set_type;
79 const number eps;
80 };
81
86 template <int dim, typename number>
88 {
89 private:
91 const number a = 100e-6;
92
94 std::string grid_file;
95
97 const number T_hat = 500.0;
98
100
101 public:
102 SimulationFixedMeltPool(std::string parameter_file, const MPI_Comm mpi_communicator);
103
104 bool
105 add_case_specific_parameters(dealii::ParameterHandler &prm) override;
106
107 void
109
110 void
111 set_boundary_conditions() override;
112
113 void
114 set_field_conditions() override;
115 };
116
117} // namespace MeltPoolDG::Simulation::FixedMeltPool
Definition heat_transfer_case.hpp:101
const std::string parameter_file
Definition simulation_case_base.hpp:52
const MPI_Comm mpi_communicator
Definition simulation_case_base.hpp:56
number signed_distance_beads(const dealii::Point< dim > &p) const
Definition fixed_melt_pool.cpp:89
number signed_distance_level(const dealii::Point< dim > &p) const
Definition fixed_melt_pool.cpp:73
const LevelSet::LevelSetType level_set_type
Definition fixed_melt_pool.hpp:78
number value(const dealii::Point< dim > &p, const unsigned int) const override
Definition fixed_melt_pool.cpp:36
const number centre_radius
Definition fixed_melt_pool.hpp:72
const number eps
Definition fixed_melt_pool.hpp:79
number signed_distance_pool(const dealii::Point< dim > &p) const
Definition fixed_melt_pool.cpp:81
const number bead_center_x
Definition fixed_melt_pool.hpp:76
const number y_level
top level of interface
Definition fixed_melt_pool.hpp:69
bool is_inside_melt_pool(const dealii::Point< dim > &p) const
Definition fixed_melt_pool.cpp:100
const number melt_pool_radius
Definition fixed_melt_pool.hpp:75
const number bead_radius
Definition fixed_melt_pool.hpp:73
const dealii::Point< dim > centre
Definition fixed_melt_pool.hpp:71
void set_boundary_conditions() override
Pure virtual function to set the boundary conditions.
Definition fixed_melt_pool.cpp:150
void set_field_conditions() override
Pure virtual function to set the field conditions.
Definition fixed_melt_pool.cpp:162
bool add_case_specific_parameters(dealii::ParameterHandler &prm) override
Add simulation-specific parameters (can be overridden).
Definition fixed_melt_pool.cpp:113
void create_spatial_discretization() override
Pure virtual function to create the spatial discretization.
Definition fixed_melt_pool.cpp:125
number interface_thickness
Definition fixed_melt_pool.hpp:99
const number T_hat
initial and dirichlet boundary temperature
Definition fixed_melt_pool.hpp:97
const number a
length paramter
Definition fixed_melt_pool.hpp:91
std::string grid_file
optional starting grid file
Definition fixed_melt_pool.hpp:94
Definition fixed_melt_pool.cpp:22
constexpr double invalid_double
Definition numbers.hpp:11