include/meltpooldg/level_set/reinitialization_operation_base.hpp Source File

Developer Documentation: include/meltpooldg/level_set/reinitialization_operation_base.hpp Source File
Developer Documentation
reinitialization_operation_base.hpp
Go to the documentation of this file.
1#pragma once
2#include <deal.II/dofs/dof_handler.h>
3
5
7{
8 template <int dim, typename number>
10 {
11 public:
12 virtual ~ReinitializationOperationBase() = default;
13
14 virtual void
15 solve() = 0;
16
17 virtual void
18 reinit() = 0;
19
20 virtual void
22 const dealii::LinearAlgebra::distributed::Vector<number> &solution_level_set_in) = 0;
23
24 virtual void
25 set_initial_condition(const dealii::Function<dim> & /*initial_field_function*/) = 0;
26
37 virtual void
39 std::vector<dealii::types::boundary_id> && /*wetting_bc_ids*/)
40 {
41 AssertThrow(false, dealii::ExcNotImplemented());
42 }
43
44 virtual const dealii::LinearAlgebra::distributed::Vector<number> &
45 get_level_set() const = 0;
46
47 virtual dealii::LinearAlgebra::distributed::Vector<number> &
49
50 virtual void
51 attach_vectors(std::vector<dealii::LinearAlgebra::distributed::Vector<number> *> &vectors) = 0;
52
53 virtual void
55
56 virtual number
58 {
59 AssertThrow(false,
60 dealii::ExcMessage(
61 "CFL based time stepping is not implemented for continous elements!"));
62 };
63
64 virtual void
71
72 virtual dealii::LinearAlgebra::distributed::Vector<number> *
74 {
78 return nullptr;
79 }
80 };
81
82 template <int dim, typename number>
84 {
85 public:
87
88 virtual number
90 };
91
92} // namespace MeltPoolDG::LevelSet
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition reinitialization_operation_base.hpp:84
Definition reinitialization_operation_base.hpp:10
virtual void set_artificial_diffusitivity()
Definition reinitialization_operation_base.hpp:65
virtual number compute_CFL_based_timestep() const
Definition reinitialization_operation_base.hpp:57
virtual void set_initial_condition(const dealii::LinearAlgebra::distributed::Vector< number > &solution_level_set_in)=0
virtual dealii::LinearAlgebra::distributed::Vector< number > * get_sign_indicator_function()
Definition reinitialization_operation_base.hpp:73
virtual void set_initial_condition(const dealii::Function< dim > &)=0
virtual dealii::LinearAlgebra::distributed::Vector< number > & get_level_set()=0
virtual void attach_output_vectors(GenericDataOut< dim, number > &data_out) const =0
virtual void attach_vectors(std::vector< dealii::LinearAlgebra::distributed::Vector< number > * > &vectors)=0
virtual void set_wetting_boundary_condition_ids(std::vector< dealii::types::boundary_id > &&)
Sets the boundary IDs where wetting boundary conditions should be applied.
Definition reinitialization_operation_base.hpp:38
virtual const dealii::LinearAlgebra::distributed::Vector< number > & get_level_set() const =0
This operation solves the reinitialization problem for a CG- or DG-FEM-based discrete level-set field...
Definition advection_DG_operation.hpp:20