60class MomentumOperator :
public OperatorBase<dim, Number, dim>
63 typedef dealii::VectorizedArray<Number> scalar;
64 typedef dealii::Tensor<1, dim, dealii::VectorizedArray<Number>> vector;
65 typedef dealii::Tensor<2, dim, dealii::VectorizedArray<Number>> tensor;
67 typedef OperatorBase<dim, Number, dim> Base;
69 typedef typename Base::VectorType VectorType;
70 typedef typename Base::IntegratorCell IntegratorCell;
71 typedef typename Base::IntegratorFace IntegratorFace;
75 typedef Number value_type;
84 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free,
85 dealii::AffineConstraints<Number>
const & affine_constraints,
87 dealii::Mapping<dim>
const & mapping);
90 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free,
91 dealii::AffineConstraints<Number>
const & affine_constraints,
100 get_convective_kernel_data()
const;
103 get_viscous_kernel_data()
const;
106 get_velocity()
const;
112 set_solution_linearization(VectorType
const & velocity);
118 update_after_grid_motion();
121 set_velocity_copy(VectorType
const & velocity)
const;
124 set_velocity_ptr(VectorType
const & velocity)
const;
127 get_scaling_factor_mass_operator()
const;
130 set_scaling_factor_mass_operator(Number
const & number);
133 update_viscosity(VectorType
const & velocity)
const;
139 rhs(VectorType & dst)
const final;
142 rhs_add(VectorType & dst)
const final;
145 evaluate(VectorType & dst, VectorType
const & src)
const final;
148 evaluate_add(VectorType & dst, VectorType
const & src)
const final;
152 reinit_cell_derived(IntegratorCell & integrator,
unsigned int const cell)
const final;
155 reinit_face_derived(IntegratorFace & integrator_m,
156 IntegratorFace & integrator_p,
157 unsigned int const face)
const final;
160 reinit_boundary_face_derived(IntegratorFace & integrator_m,
unsigned int const face)
const final;
163 reinit_face_cell_based_derived(IntegratorFace & integrator_m,
164 IntegratorFace & integrator_p,
165 unsigned int const cell,
166 unsigned int const face,
167 dealii::types::boundary_id
const boundary_id)
const final;
171 do_cell_integral(IntegratorCell & integrator)
const final;
175 do_face_integral(IntegratorFace & integrator_m, IntegratorFace & integrator_p)
const final;
179 do_face_int_integral(IntegratorFace & integrator_m, IntegratorFace & integrator_p)
const final;
188 do_face_int_integral_cell_based(IntegratorFace & integrator_m,
189 IntegratorFace & integrator_p)
const final;
193 do_face_ext_integral(IntegratorFace & integrator_m, IntegratorFace & integrator_p)
const final;
197 do_boundary_integral(IntegratorFace & integrator,
198 OperatorType
const & operator_type,
199 dealii::types::boundary_id
const & boundary_id)
const final;
203 std::shared_ptr<MassKernel<dim, Number>> mass_kernel;
204 std::shared_ptr<Operators::ConvectiveKernel<dim, Number>> convective_kernel;
205 std::shared_ptr<Operators::ViscousKernel<dim, Number>> viscous_kernel;
208 bool viscous_kernel_own_storage;
214 double scaling_factor_mass;