7 #ifndef __elasticity_eigen_h 8 #define __elasticity_eigen_h 10 #include <amandus/elasticity/matrix_integrators.h> 11 #include <amandus/integrator.h> 12 #include <deal.II/integrators/divergence.h> 13 #include <deal.II/integrators/elasticity.h> 14 #include <deal.II/integrators/grad_div.h> 15 #include <deal.II/integrators/l2.h> 16 #include <deal.II/integrators/laplace.h> 17 #include <deal.II/meshworker/integration_info.h> 18 #include <elasticity/parameters.h> 49 Eigen(
const Parameters& par,
const std::set<unsigned int>& dirichlet = std::set<unsigned int>());
51 virtual void cell(DoFInfo<dim>& dinfo, IntegrationInfo<dim>& info)
const;
52 virtual void boundary(DoFInfo<dim>& dinfo, IntegrationInfo<dim>& info)
const;
53 virtual void face(DoFInfo<dim>& dinfo1, DoFInfo<dim>& dinfo2, IntegrationInfo<dim>& info1,
54 IntegrationInfo<dim>& info2)
const;
57 dealii::SmartPointer<const Parameters, class Eigen<dim>>
parameters;
64 , dirichlet_boundaries(dirichlet)
73 if (dinfo.n_matrices() > 1)
75 AssertDimension(dinfo.n_matrices(), 2);
79 AssertDimension(dinfo.n_matrices(), 1);
82 dealii::LocalIntegrators::L2::mass_matrix(dinfo.matrix(0,
false).matrix, info.fe_values(0));
84 dinfo.matrix(0,
false).matrix, info.fe_values(0), 2. *
parameters->mu);
86 dinfo.matrix(0,
false).matrix, info.fe_values(0),
parameters->lambda);
89 if (dinfo.n_matrices() > 1)
91 LocalIntegrators::L2::mass_matrix(dinfo.matrix(1,
false).matrix, info.fe_values(0));
99 const unsigned int deg = info.fe_values(0).get_fe().tensor_degree();
102 dealii::LocalIntegrators::Elasticity::nitsche_matrix(
103 dinfo.matrix(0,
false).matrix,
105 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo, dinfo, deg, deg),
107 dealii::LocalIntegrators::GradDiv::nitsche_matrix(
108 dinfo.matrix(0,
false).matrix,
110 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo, dinfo, deg, deg),
118 IntegrationInfo<dim>& info2)
const 120 const unsigned int deg = info1.fe_values(0).get_fe().tensor_degree();
121 dealii::LocalIntegrators::Elasticity::ip_matrix(
122 dinfo1.matrix(0,
false).matrix,
123 dinfo1.matrix(0,
true).matrix,
124 dinfo2.matrix(0,
true).matrix,
125 dinfo2.matrix(0,
false).matrix,
128 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo1, dinfo2, deg, deg),
130 dealii::LocalIntegrators::GradDiv::ip_matrix(
131 dinfo1.matrix(0,
false).matrix,
132 dinfo1.matrix(0,
true).matrix,
133 dinfo2.matrix(0,
true).matrix,
134 dinfo2.matrix(0,
false).matrix,
137 dealii::LocalIntegrators::Laplace::compute_penalty(dinfo1, dinfo2, deg, deg),
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
virtual void face(DoFInfo< dim > &dinfo1, DoFInfo< dim > &dinfo2, IntegrationInfo< dim > &info1, IntegrationInfo< dim > &info2) const
Definition: elasticity/eigen.h:117
Definition: elasticity/eigen.h:46
std::set< unsigned int > dirichlet_boundaries
Definition: elasticity/eigen.h:58
Definition: elasticity/eigen.h:25
virtual void boundary(DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
Definition: elasticity/eigen.h:97
dealii::SmartPointer< const Parameters, class Eigen< dim > > parameters
Definition: elasticity/eigen.h:57
virtual void cell(DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
Definition: elasticity/eigen.h:71
Definition: integrator.h:29