34class OperatorDualSplitting :
public OperatorProjectionMethods<dim, Number>
38 typedef OperatorProjectionMethods<dim, Number> ProjectionBase;
39 typedef OperatorDualSplitting<dim, Number> This;
41 typedef typename Base::VectorType VectorType;
43 typedef typename Base::scalar scalar;
44 typedef typename Base::vector vector;
45 typedef typename Base::tensor tensor;
47 typedef typename Base::Range Range;
49 typedef typename Base::FaceIntegratorU FaceIntegratorU;
50 typedef typename Base::FaceIntegratorP FaceIntegratorP;
56 OperatorDualSplitting(std::shared_ptr<
Grid<dim> const> grid,
57 std::shared_ptr<dealii::Mapping<dim>
const> mapping,
62 std::string
const & field,
63 MPI_Comm
const & mpi_comm);
68 virtual ~OperatorDualSplitting();
76 apply_velocity_divergence_term(VectorType & dst, VectorType
const & src)
const;
79 rhs_velocity_divergence_term_dirichlet_bc_from_dof_vector(VectorType & dst,
80 VectorType
const & velocity)
const;
84 rhs_ppe_div_term_body_forces_add(VectorType & dst,
double const & time)
const;
88 rhs_ppe_div_term_convective_term_add(VectorType & dst, VectorType
const & src)
const;
92 rhs_ppe_nbc_body_force_term_add(VectorType & dst,
double const & time)
const;
96 rhs_ppe_nbc_numerical_time_derivative_add(VectorType & dst, VectorType
const & src)
const;
100 rhs_ppe_nbc_convective_add(VectorType & dst, VectorType
const & src)
const;
104 rhs_ppe_nbc_viscous_add(VectorType & dst, VectorType
const & src)
const;
107 rhs_ppe_laplace_add(VectorType & dst,
double const & time)
const;
110 solve_pressure(VectorType & dst, VectorType
const & src,
bool const update_preconditioner)
const;
117 apply_helmholtz_operator(VectorType & dst, VectorType
const & src)
const;
129 interpolate_velocity_dirichlet_bc(VectorType & dst,
double const & time)
const;
137 cell_loop_empty(dealii::MatrixFree<dim, Number>
const &,
145 face_loop_empty(dealii::MatrixFree<dim, Number>
const &,
156 local_rhs_ppe_div_term_convective_term_boundary_face(
157 dealii::MatrixFree<dim, Number>
const & matrix_free,
159 VectorType
const & src,
160 Range
const & face_range)
const;
164 local_rhs_ppe_div_term_body_forces_boundary_face(
165 dealii::MatrixFree<dim, Number>
const & matrix_free,
167 VectorType
const & src,
168 Range
const & face_range)
const;
174 local_rhs_ppe_nbc_numerical_time_derivative_add_boundary_face(
175 dealii::MatrixFree<dim, Number>
const & matrix_free,
177 VectorType
const & src,
178 Range
const & face_range)
const;
182 local_rhs_ppe_nbc_body_force_term_add_boundary_face(
183 dealii::MatrixFree<dim, Number>
const & matrix_free,
185 VectorType
const & src,
186 Range
const & face_range)
const;
190 local_rhs_ppe_nbc_convective_add_boundary_face(
191 dealii::MatrixFree<dim, Number>
const & matrix_free,
193 VectorType
const & src,
194 Range
const & face_range)
const;
198 local_rhs_ppe_nbc_viscous_add_boundary_face(dealii::MatrixFree<dim, Number>
const & matrix_free,
200 VectorType
const & src,
201 Range
const & face_range)
const;
204 local_interpolate_velocity_dirichlet_bc_boundary_face(
205 dealii::MatrixFree<dim, Number>
const & matrix_free,
207 VectorType
const & src,
208 Range
const & face_range)
const;