70class ElasticityOperatorBase :
public OperatorBase<dim, Number, dim>
73 typedef Number value_type;
76 typedef OperatorBase<dim, Number, dim> Base;
77 typedef typename Base::IntegratorCell IntegratorCell;
78 typedef typename Base::VectorType VectorType;
79 typedef typename Base::IntegratorFace IntegratorFace;
82 ElasticityOperatorBase();
84 virtual ~ElasticityOperatorBase()
89 get_integrator_flags(
bool const unsteady)
const;
95 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free,
96 dealii::AffineConstraints<Number>
const & affine_constraints,
106 get_constant_modes(std::vector<std::vector<bool>> & constant_modes,
107 std::vector<std::vector<double>> & constant_modes_values)
const override
109 (void)constant_modes;
111 dealii::DoFHandler<dim>
const & dof_handler =
112 this->matrix_free->get_dof_handler(this->get_dof_index());
114 if(dof_handler.has_level_dofs())
116 constant_modes_values = dealii::DoFTools::extract_level_rigid_body_modes(
118 *this->matrix_free->get_mapping_info().mapping,
120 dealii::ComponentMask(dim,
true));
124 constant_modes_values =
125 dealii::DoFTools::extract_rigid_body_modes(*this->matrix_free->get_mapping_info().mapping,
127 dealii::ComponentMask(dim,
true));
132 set_scaling_factor_mass_operator(
double const scaling_factor)
const;
135 get_scaling_factor_mass_operator()
const;
138 set_inhomogeneous_boundary_values(VectorType & dst)
const final;
142 reinit_cell_derived(IntegratorCell & integrator,
unsigned int const cell)
const override;
148 mutable double scaling_factor_mass;