include/meltpooldg/level_set/reinitialization_geometric_operation.hpp Source File

Developer Documentation: include/meltpooldg/level_set/reinitialization_geometric_operation.hpp Source File
Developer Documentation
reinitialization_geometric_operation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/function.h>
4
5#include <deal.II/lac/la_parallel_block_vector.h>
6#include <deal.II/lac/la_parallel_vector.h>
7
14
16{
17 using namespace dealii;
18
33 template <int dim, typename number>
35 {
36 public:
38 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
39
41 using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>;
42
55 const ReinitializationData<number> &reinit_data_in,
56 const unsigned int ls_dof_idx_in,
57 const unsigned int ls_quad_idx_in);
64 void
65 reinit() override;
66
73 void
74 solve() override;
75
81 void
82 set_initial_condition(const VectorType &solution_level_set_in) override;
83
91 void
92 set_initial_condition(const 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
115 void
116 attach_vectors([[maybe_unused]] std::vector<VectorType *> &vectors) override;
117
125 void
126 attach_output_vectors(GenericDataOut<dim, number> &data_out) const override;
127
128 private:
132 void
134
141 void
143
144 private:
146 std::unique_ptr<SignedDistanceSolver<dim, VectorType>> signed_distance_solver;
147
150
153
155 unsigned int ls_dof_idx;
156
158 unsigned int ls_quad_idx;
159
162 };
163
164} // namespace MeltPoolDG::LevelSet
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Geometric level-set reinitialization operation.
Definition reinitialization_geometric_operation.hpp:35
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Distributed vector type used for scalar fields.
Definition reinitialization_geometric_operation.hpp:38
const ReinitializationData< number > & reinit_data
Reinitialization configuration data.
Definition reinitialization_geometric_operation.hpp:152
void attach_vectors(std::vector< VectorType * > &vectors) override
Attach internal vectors to an external vector list.
Definition reinitialization_geometric_operation.cpp:203
const VectorType & get_level_set() const override
Get a constant reference to the level-set field.
Definition reinitialization_geometric_operation.cpp:183
void solve() override
Execute the geometric reinitialization procedure.
Definition reinitialization_geometric_operation.cpp:82
const ScratchData< dim, dim, number > & scratch_data
Shared scratch data and finite element infrastructure.
Definition reinitialization_geometric_operation.hpp:149
unsigned int ls_dof_idx
Degree-of-freedom index for the level-set field.
Definition reinitialization_geometric_operation.hpp:155
void transform_signed_distance_to_tanh_level_set()
Transform the signed-distance field into a tanh level-set field.
Definition reinitialization_geometric_operation.cpp:115
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const override
Attach output vectors for postprocessing and visualization.
Definition reinitialization_geometric_operation.cpp:210
void create_solver()
Create and configure the signed-distance solver.
Definition reinitialization_geometric_operation.cpp:31
void reinit() override
Initialize the reinitialization operation.
Definition reinitialization_geometric_operation.cpp:46
VectorType level_set
Reinitialized level-set field.
Definition reinitialization_geometric_operation.hpp:161
unsigned int ls_quad_idx
Quadrature index for the level-set field.
Definition reinitialization_geometric_operation.hpp:158
void set_initial_condition(const VectorType &solution_level_set_in) override
Set the initial level-set field from a vector.
Definition reinitialization_geometric_operation.cpp:57
dealii::LinearAlgebra::distributed::BlockVector< number > BlockVectorType
Distributed block vector type.
Definition reinitialization_geometric_operation.hpp:41
std::unique_ptr< SignedDistanceSolver< dim, VectorType > > signed_distance_solver
Geometric signed-distance solver.
Definition reinitialization_geometric_operation.hpp:146
Definition reinitialization_operation_base.hpp:10
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 dealii_tensor.hpp:10
Definition reinitialization_data.hpp:126