Programming tasks to Scientific Computing I
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > Class Template Reference

Provides an easy interface to Finite Element operators of the form $ \mbox{div}(A(x)\nabla u)$, where $A$ is an ASYMMETRIC coefficient matrix. The corresponding matrix assembly yields $ \left(\int_\Omega \nabla\phi_i\cdot A(x)\nabla\phi_j dx\right)_{ij} $ for FE basis functions $ \phi_i,\phi_j $. More...

#include <unityTriangleIntegratorShellFE.h>

Public Member Functions

 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, Imp > >
 MatrixValuedIntegratorBase (const ConfiguratorType &conf)
 
void assemble (SparseMatrixType &Dest, const RealType Factor=1.0) const
 
void assembleDirichlet (SparseMatrixType &Dest, const MaskType &boundaryMask, const RealType Factor=1.0) const
 

Protected Types

typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::DomVecType DomVecType
 
typedef ConfiguratorType::Matrix22 Matrix22
 
typedef ConfiguratorType::LocalMatrixType LocalMatrixType
 

Protected Member Functions

Imp & asImp ()
 
const Imp & asImp () const
 
- Protected Member Functions inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > >
void assembleTripletList (std::vector< TripletType > &tripletList, const RealType Factor) const
 
UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > & asImp ()
 
const UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > & asImp () const
 

Protected Attributes

const ConfiguratorType_config
 
- Protected Attributes inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > >
const ConfiguratorType_config
 

Additional Inherited Members

- Public Types inherited from shellFE::MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp > >
typedef ConfiguratorType::RealType RealType
 
typedef ConfiguratorType::LocalMatrixType LocalMatrixType
 
typedef ConfiguratorType::TripletType TripletType
 
typedef ConfiguratorType::ElementType ElementType
 
typedef ConfiguratorType::MaskType MaskType
 

Detailed Description

template<typename ConfiguratorType, typename Imp>
class shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >

Provides an easy interface to Finite Element operators of the form $ \mbox{div}(A(x)\nabla u)$, where $A$ is an ASYMMETRIC coefficient matrix. The corresponding matrix assembly yields $ \left(\int_\Omega \nabla\phi_i\cdot A(x)\nabla\phi_j dx\right)_{ij} $ for FE basis functions $ \phi_i,\phi_j $.

Definition at line 150 of file unityTriangleIntegratorShellFE.h.

Member Typedef Documentation

template<typename ConfiguratorType , typename Imp >
typedef ConfiguratorType::DomVecType shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::DomVecType
protected

Definition at line 154 of file unityTriangleIntegratorShellFE.h.

template<typename ConfiguratorType , typename Imp >
typedef ConfiguratorType::LocalMatrixType shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::LocalMatrixType
protected

Definition at line 156 of file unityTriangleIntegratorShellFE.h.

template<typename ConfiguratorType , typename Imp >
typedef ConfiguratorType::Matrix22 shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::Matrix22
protected

Definition at line 155 of file unityTriangleIntegratorShellFE.h.

template<typename ConfiguratorType , typename Imp >
typedef ConfiguratorType::RealType shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::RealType
protected

Definition at line 153 of file unityTriangleIntegratorShellFE.h.

Constructor & Destructor Documentation

template<typename ConfiguratorType , typename Imp >
shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::UnitTriangleFELinWeightedStiffIntegrator ( const ConfiguratorType Config)
inline

Definition at line 160 of file unityTriangleIntegratorShellFE.h.

160  :
161  MatrixValuedIntegratorBase< ConfiguratorType, UnitTriangleFELinWeightedStiffIntegrator<ConfiguratorType, Imp> > ( Config ),
162  _config ( Config ) {}

Member Function Documentation

template<typename ConfiguratorType , typename Imp >
Imp& shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::asImp ( )
inlineprotected

Definition at line 190 of file unityTriangleIntegratorShellFE.h.

190 { return static_cast<Imp&> ( *this ); }
template<typename ConfiguratorType , typename Imp >
const Imp& shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::asImp ( ) const
inlineprotected

Definition at line 191 of file unityTriangleIntegratorShellFE.h.

191 { return static_cast<const Imp&> ( *this ); }
template<typename ConfiguratorType , typename Imp >
void shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::getCoeffMatrix ( const typename ConfiguratorType::ElementType El,
int  QuadPoint,
Matrix22 Matrix 
) const
inline

This function has to be provided in the implementation (derived class) of the interface.

Definition at line 166 of file unityTriangleIntegratorShellFE.h.

167  {
168  this->asImp().getCoeffMatrix ( El, QuadPoint, Matrix );
169  }
template<typename ConfiguratorType , typename Imp >
void shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::prepareLocalMatrix ( const typename ConfiguratorType::ElementType El,
LocalMatrixType LocalMatrix 
) const
inline

Computes the numerical quadrature of the bilinear form and saves the values locally.

Definition at line 172 of file unityTriangleIntegratorShellFE.h.

173  {
174  const int numDofs = _config.getNumLocalDofs ( El );
175 
176  for ( int i = 0; i < numDofs; ++i )
177  for ( int j = 0; j < numDofs; ++j )
178  LocalMatrix(i,j) = 0.;
179 
180  Matrix22 mat;
181  DomVecType matgrad1;
182 
183  const typename ConfiguratorType::BaseFuncSetType &bfs = _config.getBaseFunctionSet ( El );
184  const int numQuadPoints = bfs.numQuadPoints( );
185 
186  // Part of exercise 1
187  }
int numQuadPoints() const
Returns the number of quadrature points.
int getNumLocalDofs(const ElementType &) const
Get The number of local degrees of freedom on an element.
const BaseFuncSetType & getBaseFunctionSet(const ElementType &) const
Returns the base funcitons set for an element.

Member Data Documentation

template<typename ConfiguratorType , typename Imp >
const ConfiguratorType& shellFE::UnitTriangleFELinWeightedStiffIntegrator< ConfiguratorType, Imp >::_config
protected

Definition at line 157 of file unityTriangleIntegratorShellFE.h.


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