26 typedef CellIntegrator<dim, 1, Number> CellIntegratorP;
28 typedef dealii::VectorizedArray<Number> scalar;
29 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
37 flags.cells = dealii::update_JxW_values | dealii::update_gradients;
38 flags.inner_faces = dealii::update_JxW_values | dealii::update_normal_vectors;
39 flags.boundary_faces =
40 dealii::update_JxW_values | dealii::update_quadrature_points | dealii::update_normal_vectors;
48 inline DEAL_II_ALWAYS_INLINE
50 calculate_flux(scalar
const & value_m, scalar
const & value_p)
const
52 return 0.5 * (value_m + value_p);
59 inline DEAL_II_ALWAYS_INLINE
61 get_volume_flux_weak(CellIntegratorP & pressure,
unsigned int const q)
const
64 return -pressure.get_value(q);
71 inline DEAL_II_ALWAYS_INLINE
73 get_volume_flux_strong(CellIntegratorP & pressure,
unsigned int const q)
const
75 return pressure.get_gradient(q);
112 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
114 typedef dealii::VectorizedArray<Number> scalar;
115 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
117 typedef std::pair<unsigned int, unsigned int> Range;
119 typedef CellIntegrator<dim, dim, Number> CellIntegratorU;
120 typedef CellIntegrator<dim, 1, Number> CellIntegratorP;
122 typedef FaceIntegrator<dim, dim, Number> FaceIntegratorU;
123 typedef FaceIntegrator<dim, 1, Number> FaceIntegratorP;
128 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free_in,
132 set_scaling_factor_pressure(
double const & scaling_factor);
135 get_operator_data()
const;
139 apply(VectorType & dst, VectorType
const & src)
const;
142 apply_add(VectorType & dst, VectorType
const & src)
const;
146 rhs(VectorType & dst, Number
const evaluation_time)
const;
149 rhs_bc_from_dof_vector(VectorType & dst, VectorType
const & pressure_bc)
const;
152 rhs_add(VectorType & dst, Number
const evaluation_time)
const;
156 evaluate(VectorType & dst, VectorType
const & src, Number
const evaluation_time)
const;
159 evaluate_add(VectorType & dst, VectorType
const & src, Number
const evaluation_time)
const;
162 evaluate_bc_from_dof_vector(VectorType & dst,
163 VectorType
const & src,
164 VectorType
const & pressure_bc)
const;
168 do_cell_integral_weak(CellIntegratorP & pressure, CellIntegratorU & velocity)
const;
171 do_cell_integral_strong(CellIntegratorP & pressure, CellIntegratorU & velocity)
const;
174 do_face_integral(FaceIntegratorP & pressure_m,
175 FaceIntegratorP & pressure_p,
176 FaceIntegratorU & velocity_m,
177 FaceIntegratorU & velocity_p)
const;
180 do_boundary_integral(FaceIntegratorP & pressure,
181 FaceIntegratorU & velocity,
182 OperatorType
const & operator_type,
183 dealii::types::boundary_id
const & boundary_id)
const;
186 do_boundary_integral_from_dof_vector(FaceIntegratorP & pressure,
187 FaceIntegratorP & pressure_exterior,
188 FaceIntegratorU & velocity,
189 OperatorType
const & operator_type,
190 dealii::types::boundary_id
const & boundary_id)
const;
193 cell_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
195 VectorType
const & src,
196 Range
const & cell_range)
const;
199 face_loop(dealii::MatrixFree<dim, Number>
const & matrix_free,
201 VectorType
const & src,
202 Range
const & face_range)
const;
205 boundary_face_loop_hom_operator(dealii::MatrixFree<dim, Number>
const & matrix_free,
207 VectorType
const & src,
208 Range
const & face_range)
const;
211 boundary_face_loop_full_operator(dealii::MatrixFree<dim, Number>
const & matrix_free,
213 VectorType
const & src,
214 Range
const & face_range)
const;
217 cell_loop_inhom_operator(dealii::MatrixFree<dim, Number>
const & matrix_free,
219 VectorType
const & src,
220 Range
const & cell_range)
const;
223 face_loop_inhom_operator(dealii::MatrixFree<dim, Number>
const & matrix_free,
225 VectorType
const & src,
226 Range
const & face_range)
const;
229 boundary_face_loop_inhom_operator(dealii::MatrixFree<dim, Number>
const & matrix_free,
231 VectorType
const & src,
232 Range
const & face_range)
const;
235 boundary_face_loop_inhom_operator_bc_from_dof_vector(
236 dealii::MatrixFree<dim, Number>
const & matrix_free,
238 VectorType
const & src,
239 Range
const & face_range)
const;
242 boundary_face_loop_full_operator_bc_from_dof_vector(
243 dealii::MatrixFree<dim, Number>
const & matrix_free,
245 VectorType
const & src,
246 Range
const & face_range)
const;
248 dealii::MatrixFree<dim, Number>
const * matrix_free;
260 double inverse_scaling_factor_pressure;
265 mutable VectorType
const * pressure_bc;