71class ElasticityOperatorBase :
public OperatorBase<dim, Number, dim>
74 typedef Number value_type;
77 typedef OperatorBase<dim, Number, dim> Base;
78 typedef typename Base::IntegratorCell IntegratorCell;
79 typedef typename Base::VectorType VectorType;
80 typedef typename Base::IntegratorFace IntegratorFace;
83 ElasticityOperatorBase();
85 virtual ~ElasticityOperatorBase()
90 get_integrator_flags(
bool const unsteady)
const;
96 initialize(dealii::MatrixFree<dim, Number>
const & matrix_free,
97 dealii::AffineConstraints<Number>
const & affine_constraints,
107 get_constant_modes(std::vector<std::vector<bool>> & constant_modes,
108 std::vector<std::vector<double>> & constant_modes_values)
const override
110 (void)constant_modes;
112 dealii::DoFHandler<dim>
const & dof_handler =
113 this->matrix_free->get_dof_handler(this->get_dof_index());
115 if(dof_handler.has_level_dofs())
117 constant_modes_values = dealii::DoFTools::extract_level_rigid_body_modes(
119 *this->matrix_free->get_mapping_info().mapping,
121 dealii::ComponentMask(dim,
true));
125 constant_modes_values =
126 dealii::DoFTools::extract_rigid_body_modes(*this->matrix_free->get_mapping_info().mapping,
128 dealii::ComponentMask(dim,
true));
133 set_scaling_factor_mass_operator(
double const scaling_factor)
const;
136 get_scaling_factor_mass_operator()
const;
139 set_inhomogeneous_boundary_values(VectorType & dst)
const final;
143 reinit_cell_derived(IntegratorCell & integrator,
unsigned int const cell)
const override;
149 mutable double scaling_factor_mass;