Programming tasks to Scientific Computing I
Public Member Functions | Protected Types | List of all members
StiffnessMatrixIntegrator< ConfiguratorType > Class Template Reference

Assembles $ \sum_{EL} \int_T \sqrt{\det g} g^{-1} D v_i \cdot D v_j $. More...

#include <stiffnessMatrixIntegrator.h>

Public Member Functions

 StiffnessMatrixIntegrator (const ConfiguratorType &conf)
 Configurator. More...
 
void getCoeffMatrix (const typename ConfiguratorType::ElementType &el, const int &, Matrix22 &matrix) const
 Computes the weight matrix. More...
 
 StiffnessMatrixIntegrator (const ConfiguratorType &conf)
 Configurator. More...
 
void getCoeffMatrix (const typename ConfiguratorType::ElementType &el, const int &, Matrix22 &matrix) const
 Computes the weight matrix. More...
 
- Public Member Functions inherited from shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > >
 UnitTriangleFELinWeightedStiffIntegrator (const ConfiguratorType &Config)
 
void getCoeffMatrix (const typename ConfiguratorType::ElementType &El, int QuadPoint, Matrix22 &Matrix) const
 This function has to be provided in the implementation (derived class) of the interface. More...
 
void prepareLocalMatrix (const typename ConfiguratorType::ElementType &El, LocalMatrixType &LocalMatrix) const
 Computes the numerical quadrature of the bilinear form and saves the values locally. More...
 
- Public Member Functions inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > >
 MatrixValuedIntegratorBase (const ConfiguratorType &conf, const RealType factor=1.0)
 
void assembleTripletListCached () const
 
void assemble (SparseMatrixType &Dest) const
 
void assembleDirichlet (SparseMatrixType &Dest, const MaskType &boundaryMask) const
 

Protected Types

typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::Matrix22 Matrix22
 
typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::Matrix22 Matrix22
 
- Protected Types inherited from shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > >
typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::DomVecType DomVecType
 
typedef ConfiguratorType::Matrix22 Matrix22
 
typedef ConfiguratorType::LocalMatrixType LocalMatrixType
 

Additional Inherited Members

- Public Types inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > >
typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::LocalMatrixType LocalMatrixType
 
typedef ConfiguratorType::TripletType TripletType
 
typedef ConfiguratorType::ElementType ElementType
 
typedef ConfiguratorType::MaskType MaskType
 
- Protected Member Functions inherited from shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > >
StiffnessMatrixIntegrator< ConfiguratorType > & asImp ()
 
const StiffnessMatrixIntegrator< ConfiguratorType > & asImp () const
 
- Protected Member Functions inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > >
void assembleTripletList (std::vector< TripletType > &tripletList, const RealType Factor) const
 
UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > & asImp ()
 
const UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > & asImp () const
 
- Protected Attributes inherited from shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > >
const ConfiguratorType_config
 
- Protected Attributes inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, StiffnessMatrixIntegrator< ConfiguratorType > > >
const ConfiguratorType_config
 
std::vector< TripletType_tripletList
 
RealType _factor
 
bool _tripletListAssembled
 

Detailed Description

template<typename ConfiguratorType>
class StiffnessMatrixIntegrator< ConfiguratorType >

Assembles $ \sum_{EL} \int_T \sqrt{\det g} g^{-1} D v_i \cdot D v_j $.

Definition at line 10 of file stiffnessMatrixIntegrator.h.

Member Typedef Documentation

template<typename ConfiguratorType >
typedef ConfiguratorType::Matrix22 StiffnessMatrixIntegrator< ConfiguratorType >::Matrix22
protected

Definition at line 16 of file stiffnessMatrixIntegrator.h.

template<typename ConfiguratorType >
typedef ConfiguratorType::Matrix22 StiffnessMatrixIntegrator< ConfiguratorType >::Matrix22
protected

Definition at line 16 of file stiffnessMatrixIntegrator.h.

template<typename ConfiguratorType >
typedef ConfiguratorType::RealType StiffnessMatrixIntegrator< ConfiguratorType >::RealType
protected

Definition at line 15 of file stiffnessMatrixIntegrator.h.

template<typename ConfiguratorType >
typedef ConfiguratorType::RealType StiffnessMatrixIntegrator< ConfiguratorType >::RealType
protected

Definition at line 15 of file stiffnessMatrixIntegrator.h.

Constructor & Destructor Documentation

template<typename ConfiguratorType >
StiffnessMatrixIntegrator< ConfiguratorType >::StiffnessMatrixIntegrator ( const ConfiguratorType conf)
inline

Configurator.

Parameters
[in]confReference to the configurator used with the mesh

Definition at line 21 of file stiffnessMatrixIntegrator.h.

24  {}
Provides an easy interface to Finite Element operators of the form , where is an ASYMMETRIC coeffici...
shellFE::UnitTriangMeshConfiguratorP1< DataTypeContainerShellFE, MeshType, QuadType > ConfiguratorType
Definition: ex1.cpp:26
template<typename ConfiguratorType >
StiffnessMatrixIntegrator< ConfiguratorType >::StiffnessMatrixIntegrator ( const ConfiguratorType conf)
inline

Configurator.

Parameters
[in]confReference to the configurator used with the mesh

Definition at line 21 of file stiffnessMatrixIntegrator.h.

24  {}
Provides an easy interface to Finite Element operators of the form , where is an ASYMMETRIC coeffici...
shellFE::UnitTriangMeshConfiguratorP1< DataTypeContainerShellFE, MeshType, QuadType > ConfiguratorType
Definition: ex1.cpp:26

Member Function Documentation

template<typename ConfiguratorType >
void StiffnessMatrixIntegrator< ConfiguratorType >::getCoeffMatrix ( const typename ConfiguratorType::ElementType el,
const int &  ,
Matrix22 matrix 
) const
inline

Computes the weight matrix.

Parameters
[in]elThe element for which matrix shall be computed
[out]matrixThe weight matrix

Definition at line 29 of file stiffnessMatrixIntegrator.h.

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  }
template<typename ConfiguratorType >
void StiffnessMatrixIntegrator< ConfiguratorType >::getCoeffMatrix ( const typename ConfiguratorType::ElementType el,
const int &  ,
Matrix22 matrix 
) const
inline

Computes the weight matrix.

Parameters
[in]elThe element for which matrix shall be computed
[out]matrixThe weight matrix

Definition at line 29 of file stiffnessMatrixIntegrator.h.

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  }

The documentation for this class was generated from the following file: