1 #ifndef __elasticity_matrix_h 2 #define __elasticity_matrix_h 4 #include <amandus/elasticity/matrix_integrators.h> 5 #include <amandus/integrator.h> 6 #include <deal.II/integrators/divergence.h> 7 #include <deal.II/integrators/elasticity.h> 8 #include <deal.II/integrators/grad_div.h> 9 #include <deal.II/integrators/l2.h> 10 #include <deal.II/integrators/laplace.h> 11 #include <deal.II/meshworker/integration_info.h> 12 #include <elasticity/parameters.h> 35 Matrix(
const Parameters& par,
const std::set<unsigned int>& dirichlet = std::set<unsigned int>(),
36 const std::set<unsigned int>& tangential = std::set<unsigned int>());
38 virtual void cell(DoFInfo<dim>& dinfo, IntegrationInfo<dim>& info)
const;
39 virtual void boundary(DoFInfo<dim>& dinfo, IntegrationInfo<dim>& info)
const;
40 virtual void face(DoFInfo<dim>& dinfo1, DoFInfo<dim>& dinfo2, IntegrationInfo<dim>& info1,
41 IntegrationInfo<dim>& info2)
const;
44 dealii::SmartPointer<const Parameters, class Matrix<dim>>
parameters;
51 const std::set<unsigned int>& tangential)
53 , dirichlet_boundaries(dirichlet)
54 , tangential_boundaries(tangential)
63 AssertDimension(dinfo.n_matrices(), 1);
67 dinfo.matrix(0,
false).matrix, info.fe_values(0), 2. *
parameters->mu);
69 dinfo.matrix(0,
false).matrix, info.fe_values(0),
parameters->lambda);
75 dealii::make_slice(info.gradients[0], 0, dim),
85 const unsigned int deg = info.fe_values(0).get_fe().tensor_degree();
88 dealii::LocalIntegrators::Elasticity::nitsche_matrix(
89 dinfo.matrix(0,
false).matrix,
91 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo, dinfo, deg, deg),
96 dealii::LocalIntegrators::Elasticity::nitsche_tangential_matrix(
97 dinfo.matrix(0,
false).matrix,
99 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo, dinfo, deg, deg),
107 IntegrationInfo<dim>& info2)
const 109 const unsigned int deg = info1.fe_values(0).get_fe().tensor_degree();
110 dealii::LocalIntegrators::Elasticity::ip_matrix(
111 dinfo1.matrix(0,
false).matrix,
112 dinfo1.matrix(0,
true).matrix,
113 dinfo2.matrix(0,
true).matrix,
114 dinfo2.matrix(0,
false).matrix,
117 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo1, dinfo2, deg, deg),
virtual void cell(DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
Definition: elasticity/matrix.h:61
void cell_matrix(dealii::FullMatrix< double > &M, const dealii::FEValuesBase< dim > &fe, const dealii::VectorSlice< const std::vector< std::vector< dealii::Tensor< 1, dim >>>> &input, double lambda=0., double mu=1.)
Definition: matrix_integrators.h:23
dealii::SmartPointer< const Parameters, class Matrix< dim > > parameters
Definition: elasticity/matrix.h:44
virtual void face(DoFInfo< dim > &dinfo1, DoFInfo< dim > &dinfo2, IntegrationInfo< dim > &info1, IntegrationInfo< dim > &info2) const
Definition: elasticity/matrix.h:106
Definition: elasticity/eigen.h:25
std::set< unsigned int > dirichlet_boundaries
Definition: elasticity/matrix.h:45
Definition: elasticity/matrix.h:32
std::set< unsigned int > tangential_boundaries
Definition: elasticity/matrix.h:46
virtual void boundary(DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
Definition: elasticity/matrix.h:83
Definition: integrator.h:29