include/meltpooldg/level_set/reinitialization_elliptic_operation_fixed_point.hpp Source File

Developer Documentation: include/meltpooldg/level_set/reinitialization_elliptic_operation_fixed_point.hpp Source File
Developer Documentation
reinitialization_elliptic_operation_fixed_point.hpp
Go to the documentation of this file.
1#pragma once
2
9
22{
29 template <int dim, typename number>
31 {
32 public:
33 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
35
49 const unsigned int reinit_dof_idx_in,
50 const unsigned int reinit_quad_idx_in,
51 const unsigned int ls_dof_idx_in);
52
56 void
57 solve() override;
58
62 void
64
71 void
72 reinit() override;
73
79 void
80 set_initial_condition(const VectorType &solution_level_set_in) override;
81
91 void
92 set_initial_condition(const dealii::Function<dim> &initial_field_function) override;
93
99 const VectorType &
100 get_level_set() const override;
101
107 VectorType &
108 get_level_set() override;
109
118 void
120 std::vector<dealii::LinearAlgebra::distributed::Vector<number> *> &vectors) override;
121
127 void
128 attach_output_vectors(GenericDataOut<dim, number> &data_out) const override;
129
135 number
137
138 private:
142 void
144
147
151 void
153
156
159
165 mutable unsigned int reinit_dof_idx;
166 const unsigned int reinit_quad_idx;
167 const unsigned int ls_dof_idx;
168
173 // level set field from the previous step: initial condition
175
177 std::unique_ptr<ReinitializationEllipticOperator<dim, number>> reinit_operator;
180
182 number relative_change_level_set = std::numeric_limits<number>::max();
183 };
184} // 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_fixed_point.hpp:31
VectorType level_set_old
Definition reinitialization_elliptic_operation_fixed_point.hpp:174
void reinit() override
Resizes the vectors to the right size of the underlying DoF handler and initializes further internal ...
Definition reinitialization_elliptic_operation_fixed_point.cpp:140
number relative_change_level_set
Relative change of the level L2 norm between the current and previous fix point iteration.
Definition reinitialization_elliptic_operation_fixed_point.hpp:182
const ScratchData< dim, dim, number > & scratch_data
Scratch data object.
Definition reinitialization_elliptic_operation_fixed_point.hpp:155
CutUtil::MappingInfoType< dim, number > MappingInfoType
Definition reinitialization_elliptic_operation_fixed_point.hpp:34
VectorType solution_level_set
This is the primary solution vector of this class.
Definition reinitialization_elliptic_operation_fixed_point.hpp:170
unsigned int reinit_dof_idx
Definition reinitialization_elliptic_operation_fixed_point.hpp:165
const unsigned int ls_dof_idx
Definition reinitialization_elliptic_operation_fixed_point.hpp:167
VectorType rhs
Vector for the right-hand side.
Definition reinitialization_elliptic_operation_fixed_point.hpp:172
const VectorType & get_level_set() const override
Access the level-set field (const version).
Definition reinitialization_elliptic_operation_fixed_point.cpp:199
void set_initial_condition(const VectorType &solution_level_set_in) override
Copies a solution field to solution_level_set.
Definition reinitialization_elliptic_operation_fixed_point.cpp:155
MappingInfoType mapping_info_surface
Mapping information for integration over immersed boundaries.
Definition reinitialization_elliptic_operation_fixed_point.hpp:146
void solve() override
Solve the elliptic reinitialization problem using fix point iteration.
Definition reinitialization_elliptic_operation_fixed_point.cpp:34
Preconditioner< dim, VectorType, number > preconditioner
Preconditioner for the linear solver.
Definition reinitialization_elliptic_operation_fixed_point.hpp:179
void compute_intersected_quadrature()
Compute the quadrature rules for the immersed phase boundaries.
Definition reinitialization_elliptic_operation_fixed_point.cpp:256
void create_operator()
Create the elliptic reinitialization operator.
Definition reinitialization_elliptic_operation_fixed_point.cpp:238
const unsigned int reinit_quad_idx
Definition reinitialization_elliptic_operation_fixed_point.hpp:166
void attach_vectors(std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors) override
Attach internal vectors to an external container.
Definition reinitialization_elliptic_operation_fixed_point.cpp:220
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_fixed_point.cpp:213
void solve_one_iter()
Solve one step of the fix point iteration for the elliptic reinitialization problem.
Definition reinitialization_elliptic_operation_fixed_point.cpp:65
std::unique_ptr< ReinitializationEllipticOperator< dim, number > > reinit_operator
Pointer to the elliptic reinitialization operator object.
Definition reinitialization_elliptic_operation_fixed_point.hpp:177
const ReinitializationData< number > reinit_data
Container for reinitialization-related data.
Definition reinitialization_elliptic_operation_fixed_point.hpp:158
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_fixed_point.cpp:228
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition reinitialization_elliptic_operation_fixed_point.hpp:33
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-FEM-based discrete level-set field by sol...
Definition advection_DG_operation.hpp:20
Definition reinitialization_data.hpp:133