33struct MeanVelocityCalculatorData
35 MeanVelocityCalculatorData()
38 direction(dealii::Tensor<1, dim, double>()),
40 filename(
"mean_velocity")
45 print(dealii::ConditionalOStream & pcout)
49 pcout <<
" Mean velocity/flow rate calculator:" << std::endl;
51 print_parameter(pcout,
"Calculate mean velocity/flow rate", calculate);
52 print_parameter(pcout,
"Write results to file", write_to_file);
53 if(write_to_file ==
true)
55 print_parameter(pcout,
"Directory", directory);
56 print_parameter(pcout,
"Filename", filename);
67 std::set<dealii::types::boundary_id> boundary_IDs;
74 dealii::Tensor<1, dim, double> direction;
77 std::string directory;
82class MeanVelocityCalculator
85 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
87 typedef CellIntegrator<dim, dim, Number> CellIntegratorU;
88 typedef FaceIntegrator<dim, dim, Number> FaceIntegratorU;
90 typedef MeanVelocityCalculator<dim, Number> This;
92 typedef dealii::VectorizedArray<Number> scalar;
94 MeanVelocityCalculator(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
95 unsigned int const dof_index_in,
96 unsigned int const quad_index_in,
98 MPI_Comm
const & comm_in);
107 calculate_mean_velocity_area(VectorType
const & velocity,
double const & time);
114 calculate_mean_velocity_volume(VectorType
const & velocity,
double const & time);
121 calculate_flow_rate_volume(VectorType
const & velocity,
123 double const & length)
const;
129 calculate_flow_rate_area(VectorType
const & velocity,
double const & time)
const;
134 write_output(Number
const & value,
double const & time, std::string
const & name)
const;
137 calculate_area()
const;
140 calculate_volume()
const;
143 local_calculate_volume(dealii::MatrixFree<dim, Number>
const & data,
144 std::vector<Number> & dst,
146 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
149 do_calculate_flow_rate_area(VectorType
const & velocity)
const;
152 do_calculate_mean_velocity_volume(VectorType
const & velocity)
const;
155 do_calculate_flow_rate_volume(VectorType
const & velocity)
const;
158 local_calculate_flow_rate_volume(dealii::MatrixFree<dim, Number>
const & data,
159 std::vector<Number> & dst,
160 VectorType
const & src,
161 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
164 dealii::MatrixFree<dim, Number>
const & matrix_free;
165 unsigned int dof_index, quad_index;
166 bool area_has_been_initialized, volume_has_been_initialized;
168 mutable bool clear_files;
170 MPI_Comm
const mpi_comm;