Programming tasks to Scientific Computing I
stiffnessMatrixIntegrator.h
Go to the documentation of this file.
1 #ifndef __STIFFNESSMATRIXINTEGRATOR_H
2 #define __STIFFNESSMATRIXINTEGRATOR_H
3 
5 
6 using namespace shellFE;
7 
9 template<typename ConfiguratorType>
10 class StiffnessMatrixIntegrator : public
12  <ConfiguratorType, StiffnessMatrixIntegrator <ConfiguratorType> >
13 {
14 protected:
17 
18 public:
24  {}
25 
29  inline void getCoeffMatrix(const typename ConfiguratorType::ElementType &el,
30  const int &/*quadrature point*/, Matrix22 &matrix) const
31  {
32  auto &edge1 = -1.0 * el.getEdge(1);
33  auto &edge2 = el.getEdge(2);
34  Eigen::Matrix<RealType, 3, 2> dx;
35  // Flat triangles ~> Last entry 0.0
36  dx << edge2[0], edge1[0], edge2[1], edge1[1], edge2[2], edge1[2];
37 
38  matrix = el.getAreaOfFlattenedTriangle() * (dx.transpose() * dx).inverse();
39  }
40 };
41 
42 
43 #endif
Provides an easy interface to Finite Element operators of the form , where is an ASYMMETRIC coeffici...
ConfiguratorType::RealType RealType
DataTypeContainer::RealType RealType
DataTypeContainer::Matrix22 Matrix22
StiffnessMatrixIntegrator(const ConfiguratorType &conf)
Configurator.
void getCoeffMatrix(const typename ConfiguratorType::ElementType &el, const int &, Matrix22 &matrix) const
Computes the weight matrix.
ConfiguratorType::Matrix22 Matrix22
Definition: rhs.h:14
Base classes for integration type operators defined using the unit triangle.
Configurator for Finite Elements.
Triangle which has a tangent space at each node.
const TangentVecType & getEdge(int i) const
Access edge i.