35class DivergenceCalculator
38 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
40 typedef DivergenceCalculator<dim, Number> This;
42 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
43 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
45 typedef dealii::VectorizedArray<Number> scalar;
47 DivergenceCalculator();
50 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
51 unsigned int const dof_index_vector_in,
52 unsigned int const dof_index_scalar_in,
53 unsigned int const quad_index_in);
55 compute_divergence(VectorType & dst, VectorType
const & src)
const;
59 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
61 VectorType
const & src,
62 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
64 dealii::MatrixFree<dim, Number>
const * matrix_free;
66 unsigned int dof_index_vector;
67 unsigned int dof_index_scalar;
68 unsigned int quad_index;
72class ShearRateCalculator
75 typedef ShearRateCalculator<dim, Number> This;
77 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
79 typedef dealii::VectorizedArray<Number> scalar;
80 typedef dealii::SymmetricTensor<2, dim, dealii::VectorizedArray<Number>> symmetrictensor;
82 typedef std::pair<unsigned int, unsigned int> Range;
84 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
85 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
88 ShearRateCalculator();
91 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
92 unsigned int const dof_index_u_in,
93 unsigned int const dof_index_u_scalar_in,
94 unsigned int const quad_index_in);
97 compute_shear_rate(VectorType & dst, VectorType
const & src)
const;
101 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
103 VectorType
const & src,
104 Range
const & cell_range)
const;
106 dealii::MatrixFree<dim, Number>
const * matrix_free;
108 unsigned int dof_index_u;
109 unsigned int dof_index_u_scalar;
110 unsigned int quad_index;
114class VorticityCalculator
117 static unsigned int const number_vorticity_components = (dim == 2) ? 1 : dim;
119 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
121 typedef VorticityCalculator<dim, Number> This;
123 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
125 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
127 VorticityCalculator();
130 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
131 unsigned int const dof_index_in,
132 unsigned int const quad_index_in);
135 compute_vorticity(VectorType & dst, VectorType
const & src)
const;
139 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
141 VectorType
const & src,
142 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
144 dealii::MatrixFree<dim, Number>
const * matrix_free;
145 unsigned int dof_index;
146 unsigned int quad_index;
150class ViscosityCalculator
153 typedef ViscosityCalculator<dim, Number> This;
155 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
157 typedef dealii::VectorizedArray<Number> scalar;
159 typedef std::pair<unsigned int, unsigned int> Range;
161 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
164 ViscosityCalculator();
167 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
168 unsigned int const dof_index_u_scalar_in,
169 unsigned int const quad_index_in,
173 get_viscosity(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_scalar;
185 unsigned int quad_index;
191class MagnitudeCalculator
194 typedef MagnitudeCalculator<dim, Number> This;
196 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
198 typedef dealii::VectorizedArray<Number> scalar;
200 typedef std::pair<unsigned int, unsigned int> Range;
202 typedef CellIntegrator<dim, dim, Number> IntegratorVector;
203 typedef CellIntegrator<dim, 1, Number> IntegratorScalar;
206 MagnitudeCalculator();
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);
215 compute(VectorType & dst, VectorType
const & src)
const;
219 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
221 VectorType
const & src,
222 Range
const & cell_range)
const;
224 dealii::MatrixFree<dim, Number>
const * matrix_free;
226 unsigned int dof_index_u;
227 unsigned int dof_index_u_scalar;
228 unsigned int quad_index;
232class QCriterionCalculator
235 typedef QCriterionCalculator<dim, Number> This;
237 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
239 typedef dealii::VectorizedArray<Number> scalar;
240 typedef dealii::Tensor<2, dim, dealii::VectorizedArray<Number>> tensor;
242 typedef std::pair<unsigned int, unsigned int> Range;
244 typedef CellIntegrator<dim, dim, Number> CellIntegratorVector;
245 typedef CellIntegrator<dim, 1, Number> CellIntegratorScalar;
248 QCriterionCalculator();
251 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
252 unsigned int const dof_index_u_in,
253 unsigned int const dof_index_u_scalar_in,
254 unsigned int const quad_index_in,
255 bool const compressible_flow);
258 compute(VectorType & dst, VectorType
const & src)
const;
262 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
264 VectorType
const & src,
265 Range
const & cell_range)
const;
267 dealii::MatrixFree<dim, Number>
const * matrix_free;
269 unsigned int dof_index_u;
270 unsigned int dof_index_u_scalar;
271 unsigned int quad_index;
272 bool compressible_flow;