include/meltpooldg/flow/darcy_damping_operation.hpp Source File

Developer Documentation: include/meltpooldg/flow/darcy_damping_operation.hpp Source File
Developer Documentation
darcy_damping_operation.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/aligned_vector.h>
4#include <deal.II/base/vectorization.h>
5
6#include <deal.II/lac/generic_linear_algebra.h>
7#include <deal.II/lac/la_parallel_vector.h>
8#include <deal.II/lac/vector.h>
9
15
16
17namespace MeltPoolDG::Flow
18{
38 template <int dim, typename number>
40 {
41 public:
43 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
44
53 explicit DarcyDampingOperation(const DarcyDampingData<number> &data_in,
55 const unsigned int flow_vel_hanging_nodes_dof_idx,
56 const unsigned int flow_quad_idx);
57
63 void
64 reinit();
65
76 void
78 const VectorType &ls_as_heaviside,
79 const VectorType &temperature,
80 const unsigned int ls_hanging_nodes_dof_idx,
81 const unsigned int heat_dof_idx);
95 void
97 const VectorType &ls_as_heaviside,
98 const VectorType &temperature,
99 const VectorType *interface_temperature,
100 const unsigned int ls_hanging_nodes_dof_idx,
101 const unsigned int heat_cut_dof_idx,
102 const unsigned int heat_cont_no_bc_dof_idx);
103
118 void
119 assemble_rhs(VectorType &force_rhs, const VectorType &velocity_vec, const bool zero_out = true);
120
126 void
128
138 dealii::VectorizedArray<number> &
139 get_damping(const unsigned int cell, const unsigned int q);
140
150 const dealii::VectorizedArray<number> &
151 get_damping(const unsigned int cell, const unsigned int q) const;
152
153 private:
156
159
161 const unsigned int flow_quad_idx;
162
165
167 mutable dealii::AlignedVector<dealii::VectorizedArray<number>> damping_at_q;
168
170 mutable dealii::Vector<number> damping_output;
171
174
181 dealii::AlignedVector<dealii::VectorizedArray<number>> &
183 };
184} // namespace MeltPoolDG::Flow
This class computes the Darcy damping coefficient given by the Kozeny-Carman equation:
Definition darcy_damping_model.hpp:28
This class computes the Darcy damping force (or Darcy source term)
Definition darcy_damping_operation.hpp:40
dealii::AlignedVector< dealii::VectorizedArray< number > > damping_at_q
Damping coefficients evaluated at quadrature points.
Definition darcy_damping_operation.hpp:167
dealii::AlignedVector< dealii::VectorizedArray< number > > & get_damping_at_q()
Getter function for the vector of damping coefficients, holding the values at each cell and at each q...
Definition darcy_damping_operation.cpp:282
dealii::VectorizedArray< number > & get_damping(const unsigned int cell, const unsigned int q)
Getter function for the damping coefficients cell-wise at each quadrature point (modifiable version).
Definition darcy_damping_operation.cpp:267
const unsigned int flow_quad_idx
Index for quadrature rule for flow computation.
Definition darcy_damping_operation.hpp:161
void attach_output_vectors(GenericDataOut< dim, number > &data_out) const
Attach the element-wise damping coefficient to the output data.
Definition darcy_damping_operation.cpp:221
VectorType damping
Global vector to hold cell-wise damping values.
Definition darcy_damping_operation.hpp:164
void set_darcy_damping_at_q(const Material< number > &material, const VectorType &ls_as_heaviside, const VectorType &temperature, const unsigned int ls_hanging_nodes_dof_idx, const unsigned int heat_dof_idx)
Loop over all cells and quadrature points (defined via flow_quad_idx), compute the Darcy damping coef...
Definition darcy_damping_operation.cpp:77
dealii::LinearAlgebra::distributed::Vector< number > VectorType
DoF vector type.
Definition darcy_damping_operation.hpp:43
DarcyDampingModel< number > darcy_damping_model
Darcy damping model for the computation of the damping coefficient.
Definition darcy_damping_operation.hpp:173
const ScratchData< dim, dim, number > & scratch_data
Reference to scratch data used for assembling.
Definition darcy_damping_operation.hpp:155
const unsigned int flow_vel_hanging_nodes_dof_idx
Index for velocity DoF in scratch data.
Definition darcy_damping_operation.hpp:158
dealii::Vector< number > damping_output
Element-wise output vector of damping coefficient.
Definition darcy_damping_operation.hpp:170
void assemble_rhs(VectorType &force_rhs, const VectorType &velocity_vec, const bool zero_out=true)
Assemble the Darcy damping force contribution into the right-hand side (RHS) vector force_rhs.
Definition darcy_damping_operation.cpp:34
void reinit()
Reinitialize data structures.
Definition darcy_damping_operation.cpp:259
A generic utility for managing simulation output data in the MeltPoolDG context.
Definition generic_data_out.hpp:32
Definition material.hpp:96
Container for shared scratch data between operations/operators.
Definition scratch_data.hpp:61
Definition equation_of_state.hpp:18
Collection of parameters for Darcy damping.
Definition darcy_damping_data.hpp:16