39struct KineticEnergySpectrumData
41 KineticEnergySpectrumData()
42 : write_raw_data_to_files(
false),
45 filename(
"energy_spectrum"),
48 evaluation_points_per_cell(0),
49 exploit_symmetry(
false),
50 n_cells_1d_coarse_grid(1),
52 length_symmetric_domain(dealii::numbers::PI)
57 print(dealii::ConditionalOStream & pcout)
const
59 if(time_control_data.is_active)
62 time_control_data.print(pcout,
true );
64 pcout << std::endl <<
" Calculate kinetic energy spectrum:" << std::endl;
65 print_parameter(pcout,
"Write raw data to files", write_raw_data_to_files);
66 print_parameter(pcout,
"Do FFTW", do_fftw);
67 print_parameter(pcout,
"Directory of output files", directory);
68 print_parameter(pcout,
"Filename", filename);
69 print_parameter(pcout,
"Clear file", clear_file);
71 print_parameter(pcout,
"Evaluation points per cell", evaluation_points_per_cell);
73 print_parameter(pcout,
"Exploit symmetry", exploit_symmetry);
76 print_parameter(pcout,
"n_cells_1d_coarse_grid", n_cells_1d_coarse_grid);
77 print_parameter(pcout,
"refine_level", refine_level);
78 print_parameter(pcout,
"length_symmetric_domain", length_symmetric_domain);
85 bool write_raw_data_to_files;
89 std::string directory;
94 unsigned int evaluation_points_per_cell;
98 bool exploit_symmetry;
99 unsigned int n_cells_1d_coarse_grid;
100 unsigned int refine_level;
101 double length_symmetric_domain;
112class KineticEnergySpectrumCalculator
115 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
117 KineticEnergySpectrumCalculator(MPI_Comm
const & mpi_comm);
120 setup(dealii::MatrixFree<dim, Number>
const & matrix_free_data_in,
121 dealii::DoFHandler<dim>
const & dof_handler_in,
125 evaluate(VectorType
const & velocity,
double const time,
bool const unsteady);
131 do_evaluate(VectorType
const & velocity,
double const time);
133 MPI_Comm
const mpi_comm;
137 unsigned int const precision = 12;
139 std::shared_ptr<DealSpectrumWrapper> deal_spectrum_wrapper;
141 dealii::SmartPointer<dealii::DoFHandler<dim>
const> dof_handler;
143 std::shared_ptr<VectorType> velocity_full;
144 std::shared_ptr<dealii::Triangulation<dim>> tria_full;
145 std::shared_ptr<dealii::FESystem<dim>> fe_full;
146 std::shared_ptr<dealii::DoFHandler<dim>> dof_handler_full;