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,
99 bool const assemble_matrix);
108 get_constant_modes(std::vector<std::vector<bool>> & constant_modes,
109 std::vector<std::vector<double>> & constant_modes_values)
const override
111 (void)constant_modes;
113 dealii::DoFHandler<dim>
const & dof_handler =
114 this->matrix_free->get_dof_handler(this->get_dof_index());
116 if(dof_handler.has_level_dofs())
119 constant_modes_values = dealii::DoFTools::extract_level_rigid_body_modes(
120 this->matrix_free->get_mg_level(),
121 *this->matrix_free->get_mapping_info().mapping,
123 dealii::ComponentMask(dim,
true));
128 constant_modes_values =
129 dealii::DoFTools::extract_rigid_body_modes(*this->matrix_free->get_mapping_info().mapping,
131 dealii::ComponentMask(dim,
true));
136 set_scaling_factor_mass_operator(
double const scaling_factor)
const;
139 get_scaling_factor_mass_operator()
const;
142 set_inhomogeneous_constrained_values(VectorType & dst)
const final;
146 reinit_cell_derived(IntegratorCell & integrator,
unsigned int const cell)
const override;
149 initialize_derived(){};
155 mutable double scaling_factor_mass;