34class DivergenceCalculator
37 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
39 typedef DivergenceCalculator<dim, Number> This;
41 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
42 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
44 typedef dealii::VectorizedArray<Number> scalar;
46 DivergenceCalculator();
49 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
50 unsigned int const dof_index_vector_in,
51 unsigned int const dof_index_scalar_in,
52 unsigned int const quad_index_in);
54 compute_divergence(VectorType & dst, VectorType
const & src)
const;
58 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
60 VectorType
const & src,
61 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
63 dealii::MatrixFree<dim, Number>
const * matrix_free;
65 unsigned int dof_index_vector;
66 unsigned int dof_index_scalar;
67 unsigned int quad_index;
71class ShearRateCalculator
74 typedef ShearRateCalculator<dim, Number> This;
76 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
78 typedef dealii::VectorizedArray<Number> scalar;
79 typedef dealii::SymmetricTensor<2, dim, dealii::VectorizedArray<Number>> symmetrictensor;
81 typedef std::pair<unsigned int, unsigned int> Range;
83 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
84 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
87 ShearRateCalculator();
90 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
91 unsigned int const dof_index_u_in,
92 unsigned int const dof_index_u_scalar_in,
93 unsigned int const quad_index_in);
96 compute_shear_rate(VectorType & dst, VectorType
const & src)
const;
100 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
102 VectorType
const & src,
103 Range
const & cell_range)
const;
105 dealii::MatrixFree<dim, Number>
const * matrix_free;
107 unsigned int dof_index_u;
108 unsigned int dof_index_u_scalar;
109 unsigned int quad_index;
113class VorticityCalculator
116 static unsigned int const number_vorticity_components = (dim == 2) ? 1 : dim;
118 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
120 typedef VorticityCalculator<dim, Number> This;
122 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
124 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
126 VorticityCalculator();
129 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
130 unsigned int const dof_index_in,
131 unsigned int const quad_index_in);
134 compute_vorticity(VectorType & dst, VectorType
const & src)
const;
138 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
140 VectorType
const & src,
141 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
143 dealii::MatrixFree<dim, Number>
const * matrix_free;
144 unsigned int dof_index;
145 unsigned int quad_index;
149class MagnitudeCalculator
152 typedef MagnitudeCalculator<dim, Number> This;
154 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
156 typedef dealii::VectorizedArray<Number> scalar;
158 typedef std::pair<unsigned int, unsigned int> Range;
160 typedef CellIntegrator<dim, dim, Number> IntegratorVector;
161 typedef CellIntegrator<dim, 1, Number> IntegratorScalar;
164 MagnitudeCalculator();
167 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
168 unsigned int const dof_index_u_in,
169 unsigned int const dof_index_u_scalar_in,
170 unsigned int const quad_index_in);
173 compute(VectorType & dst, VectorType
const & src)
const;
177 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
179 VectorType
const & src,
180 Range
const & cell_range)
const;
182 dealii::MatrixFree<dim, Number>
const * matrix_free;
184 unsigned int dof_index_u;
185 unsigned int dof_index_u_scalar;
186 unsigned int quad_index;
190class QCriterionCalculator
193 typedef QCriterionCalculator<dim, Number> This;
195 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
197 typedef dealii::VectorizedArray<Number> scalar;
198 typedef dealii::Tensor<2, dim, dealii::VectorizedArray<Number>> tensor;
200 typedef std::pair<unsigned int, unsigned int> Range;
202 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
203 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
206 QCriterionCalculator();
209 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
210 unsigned int const dof_index_u_in,
211 unsigned int const dof_index_u_scalar_in,
212 unsigned int const quad_index_in,
213 bool const compressible_flow);
216 compute(VectorType & dst, VectorType
const & src)
const;
220 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
222 VectorType
const & src,
223 Range
const & cell_range)
const;
225 dealii::MatrixFree<dim, Number>
const * matrix_free;
227 unsigned int dof_index_u;
228 unsigned int dof_index_u_scalar;
229 unsigned int quad_index;
230 bool compressible_flow;