include/meltpooldg/compressible_flow/dg_operator_explicit.hpp Source File

Developer Documentation: include/meltpooldg/compressible_flow/dg_operator_explicit.hpp Source File
Developer Documentation
dg_operator_explicit.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/lac/la_parallel_vector.h>
4
5#include <deal.II/matrix_free/matrix_free.h>
6
13
14#include <functional>
15#include <memory>
16#include <utility>
17
19{
28 template <int dim, typename number, int n_species = 1>
30 {
31 public:
32 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
33
36
39
43 n_species,
44 number,
48
51
53
61
68 void
69 reinit();
70
84 void
85 apply_operator(number time,
86 number time_step,
87 VectorType &dst,
88 const VectorType &src,
89 const std::function<void(unsigned int, unsigned int)> &func) const;
90
96 void
98
99 private:
102
105 std::vector<std::shared_ptr<ExternalFlowForce<dim, number, n_species>>> external_forces;
106
108 mutable number current_time_step;
109
121 void
122 local_apply_cell(const dealii::MatrixFree<dim, number> &matrix_free,
123 VectorType &dst,
124 const VectorType &src,
125 const std::pair<unsigned int, unsigned int> &cell_range) const;
126
138 void
139 local_apply_face(const dealii::MatrixFree<dim, number> &matrix_free,
140 VectorType &dst,
141 const VectorType &src,
142 const std::pair<unsigned int, unsigned int> &face_range) const;
143
155 void
156 local_apply_boundary_face(const dealii::MatrixFree<dim, number> &matrix_free,
157 VectorType &dst,
158 const VectorType &src,
159 const std::pair<unsigned int, unsigned int> &face_range) const;
160 };
161} // namespace MeltPoolDG::CompressibleFlow
Operator for the matrix-free evaluation of a compressible single-phase flow cutDG formulation for exp...
Definition dg_operator_explicit.hpp:30
SourceType< dim, number, n_species > FlowSourceType
Definition dg_operator_explicit.hpp:38
void reinit()
Reinitialize the internal data structures.
Definition dg_operator_explicit.cpp:27
std::vector< std::shared_ptr< ExternalFlowForce< dim, number, n_species > > > external_forces
Definition dg_operator_explicit.hpp:105
void local_apply_boundary_face(const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const
Local boundary face applier.
Definition dg_operator_explicit.cpp:219
void add_external_force(std::shared_ptr< ExternalFlowForce< dim, number, n_species > > external_force)
Definition dg_operator_explicit.cpp:68
dealii::LinearAlgebra::distributed::Vector< number > VectorType
Definition dg_operator_explicit.hpp:32
void local_apply_cell(const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const
Local cell applier.
Definition dg_operator_explicit.cpp:77
FluxType< dim, number, n_species > FlowFluxType
Definition dg_operator_explicit.hpp:37
ConservedVariablesGradientType< dim, number, n_species > ConservedVariablesGradient
Definition dg_operator_explicit.hpp:35
void apply_operator(number time, number time_step, VectorType &dst, const VectorType &src, const std::function< void(unsigned int, unsigned int)> &func) const
Computes the value of the function f(y) for the compressible Navier-Stokes equations of the form y' =...
Definition dg_operator_explicit.cpp:32
OperationScratchData< dim, number > & flow_scratch_data
Scratch data for compressible flows.
Definition dg_operator_explicit.hpp:101
NSpeciesConvectiveFlux< dim, n_species, number, ConservedVariables, FlowFluxType > ConvectiveKernel
Definition dg_operator_explicit.hpp:41
void local_apply_face(const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const
Local face applier.
Definition dg_operator_explicit.cpp:130
NSpeciesDiffusiveFlux< dim, n_species, number, ConservedVariables, ConservedVariablesGradient, FlowFluxType > DiffusiveKernel
Definition dg_operator_explicit.hpp:47
number current_time_step
Current time step size.
Definition dg_operator_explicit.hpp:108
ConservedVariablesType< dim, number, n_species > ConservedVariables
Definition dg_operator_explicit.hpp:34
This file contains various functions that can be used to set and evaluate boundary conditions for the...
Definition boundary_condition_functions.hpp:17
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::VectorizedArray< number > > SourceType
Definition data_types.hpp:70
typename ConcreteConvectiveFluxImpl< dim, n_species, number, Value, Flux >::type NSpeciesConvectiveFlux
Definition kernels_n_species.hpp:34
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > FluxType
Definition data_types.hpp:51
typename ConcreteDiffusiveFluxImpl< dim, n_species, number, Value, Gradient, Flux >::type NSpeciesDiffusiveFlux
Definition kernels_n_species.hpp:64
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, VectorizedArrayType > > ConservedVariablesGradientType
Definition data_types.hpp:44
dealii::Tensor< 1, n_conserved_variables< dim, n_species >, VectorizedArrayType > ConservedVariablesType
Definition data_types.hpp:35
An abstract interface for defining external forces acting on the fluid that must be evaluated and inc...
Definition utils.hpp:131
Scratch data structure for compressible single-phase flow solvers.
Definition operation_scratch_data.hpp:33
Definition dg_generic_convection_diffusion_worker.hpp:232
Definition dg_generic_convection_diffusion_worker.hpp:67