58 using BlockVectorType =
typename Interface::SpatialOperator<Number>::BlockVectorType;
59 using VectorType = dealii::LinearAlgebra::distributed::Vector<Number>;
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;
137 dealii::AffineConstraints<Number>
const &
138 get_constraint_p()
const;
140 dealii::AffineConstraints<Number>
const &
141 get_constraint_u()
const;
143 dealii::types::global_dof_index
144 get_number_of_dofs()
const;
150 initialize_dof_vector(BlockVectorType & dst)
const final;
153 initialize_dof_vector_pressure(VectorType & dst)
const;
159 prescribe_initial_conditions(BlockVectorType & dst,
double const time)
const final;
165 set_aero_acoustic_source_term(VectorType
const & aero_acoustic_source_term_in);
175 evaluate(BlockVectorType & dst, BlockVectorType
const & src,
double const time)
const final;
183 evaluate_acoustic_operator(BlockVectorType & dst,
184 BlockVectorType
const & src,
185 double const time)
const;
199 calculate_time_step_cfl()
const final;
203 initialize_dof_handler_and_constraints();
206 initialize_operators();
211 std::shared_ptr<Grid<dim>
const> grid;
217 std::shared_ptr<dealii::Mapping<dim>
const> mapping;
222 std::shared_ptr<BoundaryDescriptor<dim>
const> boundary_descriptor;
223 std::shared_ptr<FieldFunctions<dim>
const> field_functions;
233 std::string
const field;
238 std::shared_ptr<dealii::FiniteElement<dim>> fe_p;
239 std::shared_ptr<dealii::FiniteElement<dim>> fe_u;
241 dealii::DoFHandler<dim> dof_handler_p;
242 dealii::DoFHandler<dim> dof_handler_u;
244 dealii::AffineConstraints<Number> constraint_p, constraint_u;
246 std::string
const dof_index_p =
"pressure";
247 std::string
const dof_index_u =
"velocity";
249 std::string
const quad_index_p =
"pressure";
250 std::string
const quad_index_u =
"velocity";
255 std::string
const quad_index_p_u =
"pressure_velocity";
257 std::shared_ptr<MatrixFreeData<dim, Number>
const> matrix_free_data;
258 std::shared_ptr<dealii::MatrixFree<dim, Number>
const> matrix_free;
277 VectorType
const * aero_acoustic_source_term;
279 MPI_Comm
const mpi_comm;
281 dealii::ConditionalOStream pcout;