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;
108 rhs_ppe_nbc_variable_viscosity_add(VectorType & rhs_ppe,
109 VectorType
const & velocity,
110 VectorType
const & viscosity);
113 rhs_ppe_laplace_add(VectorType & dst,
double const & time)
const;
116 solve_pressure(VectorType & dst, VectorType
const & src,
bool const update_preconditioner)
const;
123 apply_helmholtz_operator(VectorType & dst, VectorType
const & src)
const;
135 interpolate_velocity_dirichlet_bc(VectorType & dst,
double const & time)
const;
143 cell_loop_empty(dealii::MatrixFree<dim, Number>
const &,
151 face_loop_empty(dealii::MatrixFree<dim, Number>
const &,
162 local_rhs_ppe_div_term_convective_term_boundary_face(
163 dealii::MatrixFree<dim, Number>
const & matrix_free,
165 VectorType
const & src,
166 Range
const & face_range)
const;
170 local_rhs_ppe_div_term_body_forces_boundary_face(
171 dealii::MatrixFree<dim, Number>
const & matrix_free,
173 VectorType
const & src,
174 Range
const & face_range)
const;
180 local_rhs_ppe_nbc_numerical_time_derivative_add_boundary_face(
181 dealii::MatrixFree<dim, Number>
const & matrix_free,
183 VectorType
const & src,
184 Range
const & face_range)
const;
188 local_rhs_ppe_nbc_body_force_term_add_boundary_face(
189 dealii::MatrixFree<dim, Number>
const & matrix_free,
191 VectorType
const & src,
192 Range
const & face_range)
const;
196 local_rhs_ppe_nbc_convective_add_boundary_face(
197 dealii::MatrixFree<dim, Number>
const & matrix_free,
199 VectorType
const & src,
200 Range
const & face_range)
const;
204 local_rhs_ppe_nbc_viscous_add_boundary_face(dealii::MatrixFree<dim, Number>
const & matrix_free,
206 VectorType
const & src,
207 Range
const & face_range)
const;
211 local_rhs_ppe_nbc_variable_viscosity_add_boundary_face(
212 dealii::MatrixFree<dim, Number>
const & matrix_free,
214 VectorType
const & src,
215 Range
const & face_range)
const;
218 local_interpolate_velocity_dirichlet_bc_boundary_face(
219 dealii::MatrixFree<dim, Number>
const & matrix_free,
221 VectorType
const & src,
222 Range
const & face_range)
const;
225 VectorType
const * viscosity =
nullptr;