58 using VectorType =
typename Interface::SpatialOperator<Number>::VectorType;
59 using BlockVectorType =
typename Interface::SpatialOperator<Number>::BlockVectorType;
62 static unsigned int const block_index_pressure = 0;
63 static unsigned int const block_index_velocity = 1;
68 SpatialOperator(std::shared_ptr<
Grid<dim> const> grid,
69 std::shared_ptr<dealii::Mapping<dim>
const> mapping,
73 std::string
const & field,
74 MPI_Comm
const & mpi_comm);
92 setup(std::shared_ptr<dealii::MatrixFree<dim, Number>
const> matrix_free_in,
98 dealii::MatrixFree<dim, Number>
const &
99 get_matrix_free()
const;
102 get_dof_name_pressure()
const;
105 get_dof_index_pressure()
const;
108 get_dof_name_velocity()
const;
111 get_dof_index_velocity()
const;
114 get_quad_index_pressure()
const;
117 get_quad_index_velocity()
const;
120 get_quad_index_pressure_velocity()
const;
122 std::shared_ptr<dealii::Mapping<dim>
const>
125 dealii::FiniteElement<dim>
const &
128 dealii::FiniteElement<dim>
const &
131 dealii::DoFHandler<dim>
const &
132 get_dof_handler_p()
const;
134 dealii::DoFHandler<dim>
const &
135 get_dof_handler_u()
const;
138 serialize_vectors(std::vector<BlockVectorType const *>
const & block_vectors)
const final;
141 deserialize_vectors(std::vector<BlockVectorType *>
const & block_vectors)
const final;
143 dealii::AffineConstraints<Number>
const &
144 get_constraint_p()
const;
146 dealii::AffineConstraints<Number>
const &
147 get_constraint_u()
const;
149 dealii::types::global_dof_index
150 get_number_of_dofs()
const;
156 initialize_dof_vector(BlockVectorType & dst)
const final;
159 initialize_dof_vector_pressure(VectorType & dst)
const;
165 prescribe_initial_conditions(BlockVectorType & dst,
double const time)
const final;
171 set_aero_acoustic_source_term(VectorType
const & aero_acoustic_source_term_in);
181 evaluate(BlockVectorType & dst, BlockVectorType
const & src,
double const time)
const final;
189 evaluate_acoustic_operator(BlockVectorType & dst,
190 BlockVectorType
const & src,
191 double const time)
const;
205 calculate_time_step_cfl()
const final;
209 initialize_dof_handler_and_constraints();
212 initialize_operators();
217 std::shared_ptr<Grid<dim>
const> grid;
223 std::shared_ptr<dealii::Mapping<dim>
const> mapping;
228 std::shared_ptr<BoundaryDescriptor<dim>
const> boundary_descriptor;
229 std::shared_ptr<FieldFunctions<dim>
const> field_functions;
239 std::string
const field;
244 std::shared_ptr<dealii::FiniteElement<dim>> fe_p;
245 std::shared_ptr<dealii::FiniteElement<dim>> fe_u;
247 dealii::DoFHandler<dim> dof_handler_p;
248 dealii::DoFHandler<dim> dof_handler_u;
250 std::shared_ptr<dealii::FiniteElement<dim>> fe_mapping;
251 std::shared_ptr<dealii::DoFHandler<dim>> dof_handler_mapping;
253 dealii::AffineConstraints<Number> constraint_p, constraint_u;
255 std::string
const dof_index_p =
"pressure";
256 std::string
const dof_index_u =
"velocity";
258 std::string
const quad_index_p =
"pressure";
259 std::string
const quad_index_u =
"velocity";
264 std::string
const quad_index_p_u =
"pressure_velocity";
266 std::shared_ptr<MatrixFreeData<dim, Number>
const> matrix_free_data;
267 std::shared_ptr<dealii::MatrixFree<dim, Number>
const> matrix_free;
286 VectorType
const * aero_acoustic_source_term;
288 MPI_Comm
const mpi_comm;
290 dealii::ConditionalOStream pcout;