34struct MeanVelocityCalculatorData
36 MeanVelocityCalculatorData()
39 direction(dealii::Tensor<1, dim, double>()),
41 filename(
"mean_velocity")
46 print(dealii::ConditionalOStream & pcout)
50 pcout <<
" Mean velocity/flow rate calculator:" << std::endl;
52 print_parameter(pcout,
"Calculate mean velocity/flow rate", calculate);
53 print_parameter(pcout,
"Write results to file", write_to_file);
54 if(write_to_file ==
true)
56 print_parameter(pcout,
"Directory", directory);
57 print_parameter(pcout,
"Filename", filename);
68 std::set<dealii::types::boundary_id> boundary_IDs;
75 dealii::Tensor<1, dim, double> direction;
78 std::string directory;
83class MeanVelocityCalculator
86 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
88 typedef CellIntegrator<dim, dim, Number> CellIntegratorU;
89 typedef FaceIntegrator<dim, dim, Number> FaceIntegratorU;
91 typedef MeanVelocityCalculator<dim, Number> This;
93 typedef dealii::VectorizedArray<Number> scalar;
95 MeanVelocityCalculator(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
96 unsigned int const dof_index_in,
97 unsigned int const quad_index_in,
99 MPI_Comm
const & comm_in);
108 calculate_mean_velocity_area(VectorType
const & velocity,
double const & time);
115 calculate_mean_velocity_volume(VectorType
const & velocity,
double const & time);
122 calculate_flow_rate_volume(VectorType
const & velocity,
124 double const & length)
const;
130 calculate_flow_rate_area(VectorType
const & velocity,
double const & time)
const;
135 write_output(Number
const & value,
double const & time, std::string
const & name)
const;
138 calculate_area()
const;
141 calculate_volume()
const;
144 local_calculate_volume(dealii::MatrixFree<dim, Number>
const & data,
145 std::vector<Number> & dst,
147 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
150 do_calculate_flow_rate_area(VectorType
const & velocity)
const;
153 do_calculate_mean_velocity_volume(VectorType
const & velocity)
const;
156 do_calculate_flow_rate_volume(VectorType
const & velocity)
const;
159 local_calculate_flow_rate_volume(dealii::MatrixFree<dim, Number>
const & data,
160 std::vector<Number> & dst,
161 VectorType
const & src,
162 std::pair<unsigned int, unsigned int>
const & cell_range)
const;
165 dealii::MatrixFree<dim, Number>
const & matrix_free;
166 unsigned int dof_index, quad_index;
167 bool area_has_been_initialized, volume_has_been_initialized;
169 mutable bool clear_files;
171 MPI_Comm
const mpi_comm;