include/meltpooldg/phase_change/evaporation_source_terms_sharp.hpp Source File

Developer Documentation: include/meltpooldg/phase_change/evaporation_source_terms_sharp.hpp Source File
Developer Documentation
evaporation_source_terms_sharp.hpp
Go to the documentation of this file.
1#pragma once
2#include <deal.II/lac/la_parallel_vector.h>
3
7
9{
13 template <int dim, typename number>
15 {
16 private:
17 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
18 using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>;
20 const EvaporationData<number> &evapor_data;
30 const unsigned int ls_hanging_nodes_dof_idx;
31 const unsigned int ls_quad_idx;
32 const unsigned int normal_dof_idx;
33 const unsigned int evapor_vel_dof_idx;
34 const unsigned int evapor_vel_quad_idx;
35 const unsigned int evapor_mass_flux_dof_idx;
37 const number density_vapor;
38 const number density_liquid;
39
40 const std::vector<
41 std::tuple<const typename dealii::Triangulation<dim, dim>::cell_iterator /*cell*/,
42 std::vector<dealii::Point<dim>> /*quad_points*/,
43 std::vector<number> /*weights*/
44 >> *surface_mesh_info = nullptr;
45
46 public:
48 const EvaporationData<number> &evapor_data,
52 const unsigned int ls_hanging_nodes_dof_idx,
53 const unsigned int ls_quad_idx,
54 const unsigned int normal_dof_idx,
55 const unsigned int evapor_vel_dof_idx,
56 const unsigned int evapor_vel_quad_idx,
57 const unsigned int evapor_mass_flux_dof_idx,
58 const number tolerance_normal_vector,
59 const number density_vapor,
60 const number density_liquid);
61
62 void
63 compute_evaporation_velocity(VectorType &evaporation_velocity) final;
64
65 void
66 compute_level_set_source_term(VectorType &level_set_source_term,
67 const unsigned int ls_dof_idx,
68 const VectorType &level_set,
69 const unsigned int pressure_dof_idx) final;
70
71 void
72 compute_mass_balance_source_term(VectorType &mass_balance_source_term,
73 const unsigned int pressure_dof_idx,
74 const unsigned int pressure_quad_idx,
75 bool zero_out) final;
76
77 void
78 compute_heat_source_term(VectorType &heat_source_term) final;
79
80 void
82 const std::vector<
83 std::tuple<const typename dealii::Triangulation<dim, dim>::cell_iterator /*cell*/,
84 std::vector<dealii::Point<dim>> /*quad_points*/,
85 std::vector<number> /*weights*/
87 };
88} // namespace MeltPoolDG::Evaporation
Definition evaporation_source_terms_base.hpp:14
Definition evaporation_source_terms_sharp.hpp:15
const number density_liquid
Definition evaporation_source_terms_sharp.hpp:38
const BlockVectorType & normal_vector
Definition evaporation_source_terms_sharp.hpp:25
const unsigned int ls_quad_idx
Definition evaporation_source_terms_sharp.hpp:31
const unsigned int evapor_vel_dof_idx
Definition evaporation_source_terms_sharp.hpp:33
void register_surface_mesh(const std::vector< std::tuple< const typename dealii::Triangulation< dim, dim >::cell_iterator, std::vector< dealii::Point< dim > >, std::vector< number > > > &surface_mesh_info)
Definition evaporation_source_terms_sharp.cpp:49
const VectorType & level_set_as_heaviside
Definition evaporation_source_terms_sharp.hpp:24
const ScratchData< dim, dim, number > & scratch_data
Definition evaporation_source_terms_sharp.hpp:19
const unsigned int normal_dof_idx
Definition evaporation_source_terms_sharp.hpp:32
const unsigned int evapor_mass_flux_dof_idx
Definition evaporation_source_terms_sharp.hpp:35
const number tolerance_normal_vector
Definition evaporation_source_terms_sharp.hpp:36
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition evaporation_source_terms_sharp.hpp:17
void compute_heat_source_term(VectorType &heat_source_term) final
Definition evaporation_source_terms_sharp.cpp:276
const std::vector< std::tuple< const typename dealii::Triangulation< dim, dim >::cell_iterator, std::vector< dealii::Point< dim > >, std::vector< number > > > * surface_mesh_info
Definition evaporation_source_terms_sharp.hpp:44
void compute_level_set_source_term(VectorType &level_set_source_term, const unsigned int ls_dof_idx, const VectorType &level_set, const unsigned int pressure_dof_idx) final
Definition evaporation_source_terms_sharp.cpp:61
dealii::LinearAlgebra::distributed::BlockVector< number > BlockVectorType
Definition evaporation_source_terms_sharp.hpp:18
const EvaporationData< number > & evapor_data
Definition evaporation_source_terms_sharp.hpp:20
const number density_vapor
Definition evaporation_source_terms_sharp.hpp:37
const unsigned int evapor_vel_quad_idx
Definition evaporation_source_terms_sharp.hpp:34
void compute_evaporation_velocity(VectorType &evaporation_velocity) final
Definition evaporation_source_terms_sharp.cpp:71
void compute_mass_balance_source_term(VectorType &mass_balance_source_term, const unsigned int pressure_dof_idx, const unsigned int pressure_quad_idx, bool zero_out) final
Definition evaporation_source_terms_sharp.cpp:182
const unsigned int ls_hanging_nodes_dof_idx
Definition evaporation_source_terms_sharp.hpp:30
const VectorType & evaporative_mass_flux
Definition evaporation_source_terms_sharp.hpp:26
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Definition evaporation_data.hpp:15