include/meltpooldg/phase_change/melt_front_propagation.hpp Source File

Developer Documentation: include/meltpooldg/phase_change/melt_front_propagation.hpp Source File
Developer Documentation
melt_front_propagation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/vectorization.h>
4
5#include <deal.II/dofs/dof_handler.h>
6
7#include <deal.II/lac/affine_constraints.h>
8#include <deal.II/lac/la_parallel_vector.h>
9
14
15#include <vector>
16
17namespace MeltPoolDG
18{
19 template <int dim, typename number>
21 {
22 private:
23 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
24
26
28
29 // melting/solidification
31
32 /*
33 * Based on the following indices the correct DoFHandler or quadrature rule from
34 * ScratchData object is selected. This is important when
35 * ScratchData holds multiple DoFHandlers, quadrature rules, etc.
36 */
37 const unsigned int phase_fraction_dof_idx;
38 const unsigned int ls_dof_idx;
39 const unsigned int reinit_dof_idx;
40 const unsigned int reinit_no_solid_dof_idx;
41 const unsigned int flow_vel_dof_idx;
42 const unsigned int flow_vel_no_solid_dof_idx;
43 const unsigned int heat_hanging_nodes_dof_idx;
45
46 /*
47 * DoF vectors
48 */
51
52 public:
55 const MaterialData<number> &material_data,
56 const unsigned int phase_fraction_dof_idx_in,
57 const unsigned int ls_dof_idx_in,
58 const VectorType &temperature_in,
59 const unsigned int reinit_dof_idx_in,
60 const unsigned int reinit_no_solid_dof_idx_in,
61 const unsigned int flow_vel_dof_idx_in,
62 const unsigned int flow_vel_no_solid_dof_idx_in,
63 const unsigned int heat_hanging_nodes_dof_idx_in);
64
65 void
66 set_initial_condition(const VectorType &level_set_as_heaviside, VectorType &level_set);
67
68 void
69 compute_melt_front_propagation(const VectorType &level_set_as_heaviside);
70
71 void
72 reinit();
73
74 /*
75 * attach functions
76 */
77 void
78 attach_vectors(std::vector<VectorType *> &vectors);
79
80 void
82
83 void
85
86 /*
87 * getter functions
88 */
89 const VectorType &
90 get_solid() const;
91
92 const VectorType &
93 get_liquid() const;
94
99 number
100 compute_solid_fraction(const number temperature) const;
101
102 dealii::VectorizedArray<number>
103 compute_solid_fraction(const dealii::VectorizedArray<number> &temperature) const;
104
105 private:
106 void
108
109
134 void
135 compute_solid_and_liquid_phases(const VectorType &level_set_as_heaviside);
136
141 void
143 const dealii::DoFHandler<dim> &flow_dof_handler,
144 const dealii::AffineConstraints<number> &flow_constraints_no_solid,
145 dealii::AffineConstraints<number> &flow_constraints);
146
152 void
154 const dealii::DoFHandler<dim> &level_set_dof_handler,
155 const dealii::AffineConstraints<number> &reinit_dirichlet_constraints_no_solid,
156 dealii::AffineConstraints<number> &reinit_dirichlet_constraints);
157 };
158} // namespace MeltPoolDG
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition material.hpp:96
Definition melt_front_propagation.hpp:21
number compute_solid_fraction(const number temperature) const
Definition melt_front_propagation.cpp:407
const unsigned int ls_dof_idx
Definition melt_front_propagation.hpp:38
const VectorType & get_liquid() const
Definition melt_front_propagation.cpp:145
void distribute_constraints()
Definition melt_front_propagation.cpp:130
const MeltFrontPropagationData< number > & mp_data
Definition melt_front_propagation.hpp:27
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const
Definition melt_front_propagation.cpp:113
void attach_vectors(std::vector< VectorType * > &vectors)
Definition melt_front_propagation.cpp:104
VectorType solid
Definition melt_front_propagation.hpp:49
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition melt_front_propagation.hpp:23
void compute_solid_and_liquid_phases(const VectorType &level_set_as_heaviside)
Definition melt_front_propagation.cpp:186
const ScratchData< dim, dim, number > & scratch_data
Definition melt_front_propagation.hpp:25
void reinit()
Definition melt_front_propagation.cpp:96
Material< number > melting_solidification
Definition melt_front_propagation.hpp:30
const VectorType & temperature
Definition melt_front_propagation.hpp:44
void make_constraints_in_spatially_fixed_solid_domain()
Definition melt_front_propagation.cpp:152
const unsigned int heat_hanging_nodes_dof_idx
Definition melt_front_propagation.hpp:43
const unsigned int reinit_no_solid_dof_idx
Definition melt_front_propagation.hpp:40
const unsigned int phase_fraction_dof_idx
Definition melt_front_propagation.hpp:37
const unsigned int flow_vel_no_solid_dof_idx
Definition melt_front_propagation.hpp:42
const unsigned int flow_vel_dof_idx
Definition melt_front_propagation.hpp:41
void compute_melt_front_propagation(const VectorType &level_set_as_heaviside)
Definition melt_front_propagation.cpp:78
void ignore_reinitialization_in_solid_regions(const dealii::DoFHandler< dim > &level_set_dof_handler, const dealii::AffineConstraints< number > &reinit_dirichlet_constraints_no_solid, dealii::AffineConstraints< number > &reinit_dirichlet_constraints)
Definition melt_front_propagation.cpp:336
const unsigned int reinit_dof_idx
Definition melt_front_propagation.hpp:39
VectorType liquid
Definition melt_front_propagation.hpp:50
void set_initial_condition(const VectorType &level_set_as_heaviside, VectorType &level_set)
Definition melt_front_propagation.cpp:58
const VectorType & get_solid() const
Definition melt_front_propagation.cpp:138
dealii::VectorizedArray< number > compute_solid_fraction(const dealii::VectorizedArray< number > &temperature) const
void set_flow_field_in_solid_regions_to_zero(const dealii::DoFHandler< dim > &flow_dof_handler, const dealii::AffineConstraints< number > &flow_constraints_no_solid, dealii::AffineConstraints< number > &flow_constraints)
Definition melt_front_propagation.cpp:268
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
Definition melt_front_propagation_data.hpp:7
Definition material_data.hpp:84