include/meltpooldg/level_set/reinitialization_DG_diffusion_operator.hpp Source File

Developer Documentation: include/meltpooldg/level_set/reinitialization_DG_diffusion_operator.hpp Source File
Developer Documentation
reinitialization_DG_diffusion_operator.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/matrix_free/operators.h>
4
5#include <deal.II/numerics/vector_tools.h>
6
10
15{
16 template <int dim, typename number>
18 {
19 public:
20 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
21 using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>;
22
25 const ReinitializationData<number> &reinit_data_in,
26 const unsigned int reinit_dof_idx_in,
27 const unsigned int reinit_quad_idx_in,
28 const VectorType &curvature_in,
29 const BlockVectorType &normal_vector_in,
30 const VectorType &smooth_signum_in);
31
35 void
37
41 void
43
50 void
51 set_field_functions([[maybe_unused]] const number time) const {};
52
60 void
61 apply_operator([[maybe_unused]] const number time,
62 VectorType &dst,
63 const VectorType &src,
64 const std::function<void(unsigned int, unsigned int)> &func = {}) const;
65
72 void
73 apply_dirichlet_boundary_operator([[maybe_unused]] const number time,
74 [[maybe_unused]] VectorType &dst,
75 [[maybe_unused]] const VectorType &src) const {};
76
77 number
79
84
85 private:
88
89 const unsigned int reinit_dof_idx;
90 const unsigned int reinit_quad_idx;
91
93 mutable dealii::AlignedVector<dealii::VectorizedArray<number>> array_penalty_parameter;
94
98
106 void
107 local_apply_domain(const dealii::MatrixFree<dim, number> &data,
108 VectorType &dst,
109 const VectorType &src,
110 const std::pair<unsigned int, unsigned int> &cell_range) const;
111
119 void
120 local_apply_inner_face(const dealii::MatrixFree<dim, number> &data,
121 VectorType &dst,
122 const VectorType &src,
123 const std::pair<unsigned int, unsigned int> &cell_range) const;
124
132 void
133 local_apply_boundary_face(const dealii::MatrixFree<dim, number> &data,
134 VectorType &dst,
135 const VectorType &src,
136 const std::pair<unsigned int, unsigned int> &cell_range) const;
137 };
138} // namespace MeltPoolDG::LevelSet
Definition reinitialization_DG_diffusion_operator.hpp:18
const unsigned int reinit_quad_idx
Definition reinitialization_DG_diffusion_operator.hpp:90
void local_apply_inner_face(const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
Definition reinitialization_DG_diffusion_operator.cpp:174
void apply_operator(const number time, VectorType &dst, const VectorType &src, const std::function< void(unsigned int, unsigned int)> &func={}) const
Definition reinitialization_DG_diffusion_operator.cpp:291
const unsigned int reinit_dof_idx
Definition reinitialization_DG_diffusion_operator.hpp:89
number get_max_diffusitivity() const
Definition reinitialization_DG_diffusion_operator.cpp:284
bool update_field_functions
Definition reinitialization_DG_diffusion_operator.hpp:83
void local_apply_boundary_face(const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
Definition reinitialization_DG_diffusion_operator.cpp:236
const ReinitializationData< number > & reinit_data
Definition reinitialization_DG_diffusion_operator.hpp:87
void compute_diffusitivity_value()
Definition reinitialization_DG_diffusion_operator.cpp:31
void set_field_functions(const number time) const
Definition reinitialization_DG_diffusion_operator.hpp:51
const MeltPoolDG::ScratchData< dim, dim, number > & scratch_data
Definition reinitialization_DG_diffusion_operator.hpp:86
dealii::LinearAlgebra::distributed::BlockVector< number > BlockVectorType
Definition reinitialization_DG_diffusion_operator.hpp:21
void local_apply_domain(const dealii::MatrixFree< dim, number > &data, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
Definition reinitialization_DG_diffusion_operator.cpp:110
void compute_penalty_parameter()
Definition reinitialization_DG_diffusion_operator.cpp:86
const VectorType & smooth_signum
Definition reinitialization_DG_diffusion_operator.hpp:97
VectorType diffusitivity
Definition reinitialization_DG_diffusion_operator.hpp:92
const VectorType & curvature
Definition reinitialization_DG_diffusion_operator.hpp:95
const BlockVectorType & normal_vector
Definition reinitialization_DG_diffusion_operator.hpp:96
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition reinitialization_DG_diffusion_operator.hpp:20
void apply_dirichlet_boundary_operator(const number time, VectorType &dst, const VectorType &src) const
Definition reinitialization_DG_diffusion_operator.hpp:73
dealii::AlignedVector< dealii::VectorizedArray< number > > array_penalty_parameter
Definition reinitialization_DG_diffusion_operator.hpp:93
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
This operation solves the reinitialization problem for a CG- or DG-FEM-based discrete level-set field...
Definition advection_DG_operation.hpp:20
Definition reinitialization_data.hpp:126