36struct KineticEnergyData
39 : evaluate_individual_terms(
false),
42 filename(
"kinetic_energy"),
48 print(dealii::ConditionalOStream & pcout)
50 if(time_control_data.is_active)
52 pcout << std::endl <<
" Calculate kinetic energy:" << std::endl;
55 time_control_data.print(pcout,
true );
57 print_parameter(pcout,
"Evaluate individual terms", evaluate_individual_terms);
58 print_parameter(pcout,
"Directory of output files", directory);
59 print_parameter(pcout,
"Filename", filename);
60 print_parameter(pcout,
"Clear file", clear_file);
68 bool evaluate_individual_terms;
74 std::string directory;
80class KineticEnergyCalculator
83 static unsigned int const number_vorticity_components = (dim == 2) ? 1 : dim;
85 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
87 typedef dealii::VectorizedArray<Number> scalar;
88 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
89 typedef dealii::Tensor<2, dim, dealii::VectorizedArray<Number>> tensor;
91 KineticEnergyCalculator(MPI_Comm
const & comm);
94 setup(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
95 unsigned int const dof_index_in,
96 unsigned int const quad_index_in,
100 evaluate(VectorType
const & velocity,
double const time,
bool const unsteady);
106 calculate_basic(VectorType
const & velocity,
double const time);
124 integrate(dealii::MatrixFree<dim, Number>
const & matrix_free_data,
125 VectorType
const & velocity,
128 Number & dissipation,
129 Number & max_vorticity);
132 cell_loop(dealii::MatrixFree<dim, Number>
const & data,
133 std::vector<Number> & dst,
134 VectorType
const & src,
135 std::pair<unsigned int, unsigned int>
const & cell_range);
137 MPI_Comm
const mpi_comm;
141 dealii::MatrixFree<dim, Number>
const * matrix_free;
142 unsigned int dof_index, quad_index;