include/meltpooldg/level_set/reinitialization_elliptic_operation.hpp Source File

Developer Documentation: include/meltpooldg/level_set/reinitialization_elliptic_operation.hpp Source File
Developer Documentation
reinitialization_elliptic_operation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/non_matching/mesh_classifier.h>
4
11
26{
33 template <int dim, typename number>
35 {
36 public:
37 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
39
53 const unsigned int reinit_dof_idx_in,
54 const unsigned int reinit_quad_idx_in,
55 const unsigned int ls_dof_idx_in);
56
60 void
61 solve() override;
62
66 void
68
75 void
76 reinit() override;
77
83 void
84 set_initial_condition(const VectorType &solution_level_set_in) override;
85
95 void
96 set_initial_condition(const dealii::Function<dim> &initial_field_function) override;
97
103 const VectorType &
104 get_level_set() const override;
105
111 VectorType &
112 get_level_set() override;
113
122 void
124 std::vector<dealii::LinearAlgebra::distributed::Vector<number> *> &vectors) override;
125
131 void
132 attach_output_vectors(GenericDataOut<dim, number> &data_out) const override;
133
139 number
141
142 private:
146 void
148
151
155 std::shared_ptr<dealii::NonMatching::MeshClassifier<dim>> mesh_classifier;
156
160 void
162
165
168
174 mutable unsigned int reinit_dof_idx;
175 const unsigned int reinit_quad_idx;
176 const unsigned int ls_dof_idx;
177
182 // level set field from the previous step: initial condition
184
186 std::unique_ptr<ReinitializationEllipticOperator<dim, number>> reinit_operator;
189
191 number relative_change_level_set = std::numeric_limits<number>::max();
192
195 };
196} // namespace MeltPoolDG::LevelSet
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Operation that performs the elliptic reinitialization process.
Definition reinitialization_elliptic_operation.hpp:35
VectorType level_set_old
Definition reinitialization_elliptic_operation.hpp:183
VectorType level_set_old_locally_owned
Locally relevant DoF vector. It is required by the mesh classifier.
Definition reinitialization_elliptic_operation.hpp:194
void reinit() override
Resizes the vectors to the right size of the underlying DoF handler and initializes further internal ...
Definition reinitialization_elliptic_operation.cpp:138
number relative_change_level_set
Relative change of the level L2 norm between the current and previous fix point iteration.
Definition reinitialization_elliptic_operation.hpp:191
const ScratchData< dim, dim, number > & scratch_data
Scratch data object.
Definition reinitialization_elliptic_operation.hpp:164
CutUtil::MappingInfoType< dim, number > MappingInfoType
Definition reinitialization_elliptic_operation.hpp:38
VectorType solution_level_set
This is the primary solution vector of this class.
Definition reinitialization_elliptic_operation.hpp:179
unsigned int reinit_dof_idx
Definition reinitialization_elliptic_operation.hpp:174
const unsigned int ls_dof_idx
Definition reinitialization_elliptic_operation.hpp:176
VectorType rhs
Vector for the right-hand side.
Definition reinitialization_elliptic_operation.hpp:181
const VectorType & get_level_set() const override
Access the level-set field (const version).
Definition reinitialization_elliptic_operation.cpp:218
void set_initial_condition(const VectorType &solution_level_set_in) override
Copies a solution field to solution_level_set.
Definition reinitialization_elliptic_operation.cpp:166
MappingInfoType mapping_info_surface
Mapping information for integration over immersed boundaries.
Definition reinitialization_elliptic_operation.hpp:150
std::shared_ptr< dealii::NonMatching::MeshClassifier< dim > > mesh_classifier
Definition reinitialization_elliptic_operation.hpp:155
void solve() override
Solve the elliptic reinitialization problem using fix point iteration.
Definition reinitialization_elliptic_operation.cpp:34
Preconditioner< dim, VectorType, number > preconditioner
Preconditioner for the linear solver.
Definition reinitialization_elliptic_operation.hpp:188
void compute_intersected_quadrature()
Compute the quadrature rules for the immersed phase boundaries.
Definition reinitialization_elliptic_operation.cpp:281
void create_operator()
Create the elliptic reinitialization operator.
Definition reinitialization_elliptic_operation.cpp:257
const unsigned int reinit_quad_idx
Definition reinitialization_elliptic_operation.hpp:175
void attach_vectors(std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override
Attach internal vectors to an external container.
Definition reinitialization_elliptic_operation.cpp:239
number get_relative_change_level_set() const
Get the relative change of the level set L2 norm between the current and previous fix point iteration...
Definition reinitialization_elliptic_operation.cpp:232
void solve_one_iter()
Solve one step of the fix point iteration for the elliptic reinitialization problem.
Definition reinitialization_elliptic_operation.cpp:61
std::unique_ptr< ReinitializationEllipticOperator< dim, number > > reinit_operator
Pointer to the elliptic reinitialization operator object.
Definition reinitialization_elliptic_operation.hpp:186
const ReinitializationData< number > reinit_data
Container for reinitialization-related data.
Definition reinitialization_elliptic_operation.hpp:167
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const override
Attach the level-set solution, and normal vector components for output.
Definition reinitialization_elliptic_operation.cpp:247
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition reinitialization_elliptic_operation.hpp:37
Definition reinitialization_operation_base.hpp:10
Definition preconditioner.hpp:42
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
dealii::NonMatching::MappingInfo< dim, dim, dealii::VectorizedArray< number > > MappingInfoType
Definition util.hpp:53
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