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 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
85 typedef dealii::VectorizedArray<Number> scalar;
86 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
87 typedef dealii::Tensor<2, dim, dealii::VectorizedArray<Number>> tensor;
89 KineticEnergyCalculator(MPI_Comm
const & comm);
92 setup(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
93 unsigned int const dof_index_in,
94 unsigned int const quad_index_in,
98 evaluate(VectorType
const & velocity,
double const time,
bool const unsteady);
104 calculate_basic(VectorType
const & velocity,
double const time);
122 integrate(dealii::MatrixFree<dim, Number>
const & matrix_free_data,
123 VectorType
const & velocity,
126 Number & dissipation,
127 Number & max_vorticity);
130 cell_loop(dealii::MatrixFree<dim, Number>
const & data,
131 std::vector<Number> & dst,
132 VectorType
const & src,
133 std::pair<unsigned int, unsigned int>
const & cell_range);
135 MPI_Comm
const mpi_comm;
139 dealii::MatrixFree<dim, Number>
const * matrix_free;
140 unsigned int dof_index, quad_index;