include/meltpooldg/phase_change/evaporation_source_terms_continuous.hpp Source File

Developer Documentation: include/meltpooldg/phase_change/evaporation_source_terms_continuous.hpp Source File
Developer Documentation
evaporation_source_terms_continuous.hpp
Go to the documentation of this file.
1#pragma once
2#include <deal.II/lac/la_parallel_vector.h>
3
8
10{
14 template <int dim, typename number>
16 {
17 private:
18 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
19 using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>;
21 const EvaporationData<number> &evapor_data;
31 const unsigned int ls_hanging_nodes_dof_idx;
32 const unsigned int ls_quad_idx;
33 const unsigned int normal_dof_idx;
34 const unsigned int evapor_vel_dof_idx;
35 const unsigned int evapor_vel_quad_idx;
36 const unsigned int evapor_mass_flux_dof_idx;
38 const number density_vapor;
39 const number density_liquid;
40 const TwoPhaseFluidPropertiesTransitionType two_phase_properties_transition_type;
41
42 // interpolation matrix to interpolate the level set gradient to pressure space
43 dealii::FullMatrix<number> ls_to_pressure_grad_interpolation_matrix;
47 dealii::AlignedVector<dealii::Tensor<1, dim, dealii::VectorizedArray<number>>>
49
50 inline dealii::Tensor<1, dim, dealii::VectorizedArray<number>> *
51 begin_evaporation_velocity(const unsigned int macro_cell);
52
53 inline const dealii::Tensor<1, dim, dealii::VectorizedArray<number>> &
54 begin_evaporation_velocity(const unsigned int macro_cell) const;
55
56 public:
59 const EvaporationData<number> &evapor_data,
63 const unsigned int ls_hanging_nodes_dof_idx,
64 const unsigned int ls_quad_idx,
65 const unsigned int normal_dof_idx,
66 const unsigned int evapor_vel_dof_idx,
67 const unsigned int evapor_vel_quad_idx,
68 const unsigned int evapor_mass_flux_dof_idx,
69 const number tolerance_normal_vector,
70 const number density_vapor,
71 const number density_liquid,
72 const TwoPhaseFluidPropertiesTransitionType &two_phase_properties_transition_type);
73
74 void
75 compute_evaporation_velocity(VectorType &evaporation_velocity) final;
76
77 void
78 compute_level_set_source_term(VectorType &level_set_source_term,
79 const unsigned int ls_dof_idx,
80 const VectorType &level_set,
81 const unsigned int pressure_dof_idx) final;
82
83 void
84 compute_mass_balance_source_term(VectorType &mass_balance_source_term,
85 const unsigned int pressure_dof_idx,
86 const unsigned int pressure_quad_idx,
87 bool zero_out) final;
88
89 void
90 compute_heat_source_term(VectorType &heat_source_term) final;
91 };
92} // namespace MeltPoolDG::Evaporation
Definition evaporation_source_terms_base.hpp:14
Definition evaporation_source_terms_continuous.hpp:16
const unsigned int ls_hanging_nodes_dof_idx
Definition evaporation_source_terms_continuous.hpp:31
const number density_vapor
Definition evaporation_source_terms_continuous.hpp:38
const unsigned int evapor_mass_flux_dof_idx
Definition evaporation_source_terms_continuous.hpp:36
const number tolerance_normal_vector
Definition evaporation_source_terms_continuous.hpp:37
void compute_heat_source_term(VectorType &heat_source_term) final
Definition evaporation_source_terms_continuous.cpp:367
dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > * begin_evaporation_velocity(const unsigned int macro_cell)
Definition evaporation_source_terms_continuous.cpp:375
void compute_evaporation_velocity(VectorType &evaporation_velocity) final
Definition evaporation_source_terms_continuous.cpp:144
const BlockVectorType & normal_vector
Definition evaporation_source_terms_continuous.hpp:26
const unsigned int ls_quad_idx
Definition evaporation_source_terms_continuous.hpp:32
dealii::FullMatrix< number > ls_to_pressure_grad_interpolation_matrix
Definition evaporation_source_terms_continuous.hpp:43
dealii::AlignedVector< dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > evaporation_velocities
Definition evaporation_source_terms_continuous.hpp:48
const VectorType & evaporative_mass_flux
Definition evaporation_source_terms_continuous.hpp:27
const unsigned int evapor_vel_dof_idx
Definition evaporation_source_terms_continuous.hpp:34
const unsigned int normal_dof_idx
Definition evaporation_source_terms_continuous.hpp:33
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_continuous.cpp:258
const number density_liquid
Definition evaporation_source_terms_continuous.hpp:39
const VectorType & level_set_as_heaviside
Definition evaporation_source_terms_continuous.hpp:25
const TwoPhaseFluidPropertiesTransitionType two_phase_properties_transition_type
Definition evaporation_source_terms_continuous.hpp:40
dealii::LinearAlgebra::distributed::BlockVector< number > BlockVectorType
Definition evaporation_source_terms_continuous.hpp:19
const EvaporationData< number > & evapor_data
Definition evaporation_source_terms_continuous.hpp:21
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition evaporation_source_terms_continuous.hpp:18
const unsigned int evapor_vel_quad_idx
Definition evaporation_source_terms_continuous.hpp:35
const ScratchData< dim, dim, number > & scratch_data
Definition evaporation_source_terms_continuous.hpp:20
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_continuous.cpp:53
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Definition evaporation_data.hpp:15