Programming tasks to Scientific Computing I
configuratorsShellFE.h
Go to the documentation of this file.
1 #ifndef __CONFIGURATORSSHELLFE_H
2 #define __CONFIGURATORSSHELLFE_H
3 
5 #include <EigenDataContainer.h>
6 
7 namespace shellFE {
8 
9 enum ShellFEType {
12 };
13 
14 
19 template <typename DataTypeContainer, typename MeshType, typename QuadType >
21 protected:
22  const MeshType &_mesh;
23 
24 public:
25 
26  static const int maxNumLocalDofs = 3;
28 
29  typedef DataTypeContainer DTContainer;
30  typedef MeshType InitType;
33  typedef typename DataTypeContainer::DomVecType DomVecType;
34  typedef typename DataTypeContainer::TangentVecType TangentVecType;
35  typedef typename DataTypeContainer::Point3DType Point3DType;
36  typedef typename DataTypeContainer::Matrix22 Matrix22;
37  typedef typename DataTypeContainer::Matrix32 Matrix32;
38  typedef typename DataTypeContainer::Matrix33 Matrix33;
40  typedef typename DataTypeContainer::FullMatrixType FullMatrixType;
41  typedef typename DataTypeContainer::TripletType TripletType;
43  typedef typename DataTypeContainer::MaskType MaskType;
44  typedef Eigen::Matrix<RealType, maxNumLocalDofs, maxNumLocalDofs > LocalMatrixType;
45 
47 
48  UnitTriangMeshConfiguratorP1 ( const InitType &Mesh ) : _mesh ( Mesh ) {}
49 
51  const InitType& getInitializer() const { return this->_mesh; }
52 
53  mutable BaseFuncSetType _baseFuncSet;
54 
56  inline int getNumLocalDofs ( const ElementType & ) const { return 3;}
57  inline int getNumLocalDofs ( ) const { return 3;}
58 
60  int getNumGlobalDofs() const {return this->_mesh.getNumVertices();}
64  const BaseFuncSetType& getBaseFunctionSet ( const ElementType &/*T*/ ) const {return _baseFuncSet;}
65  const BaseFuncSetType& getBaseFunctionSet ( ) const {return _baseFuncSet;}
66 
68  inline int localToGlobal ( const ElementType &T, int localIndex ) const {return T.getGlobalNodeIdx( localIndex );}
69 
70 };
71 
72 } // end namespace
73 
74 
75 #endif //__CONFIGURATORSSHELLFE_H
DataTypeContainer::MaskType MaskType
DataTypeContainer::Point3DType Point3DType
DataTypeContainer::VectorType VectorType
MeshType InitType
that&#39;s the type that is needed by the constructor of the configurator
Eigen::Matrix< RealType, maxNumLocalDofs, maxNumLocalDofs > LocalMatrixType
int maxNumQuadPoints() const
Returns the maximum number of quadrature points per element.
DataTypeContainer::FullMatrixType FullMatrixType
DataTypeContainer::Matrix32 Matrix32
int getNumVertices() const
Definition: triangMesh.h:42
DataTypeContainer::DomVecType DomVecType
DataTypeContainer::RealType RealType
const Indices3DType & getGlobalNodeIdx() const
DataTypeContainer::SparseMatrixType SparseMatrixType
DataTypeContainer::Matrix22 Matrix22
UnitTriangMeshConfiguratorP1(const InitType &Mesh)
int getNumLocalDofs(const ElementType &) const
Get The number of local degrees of freedom on an element.
const BaseFuncSetType & getBaseFunctionSet() const
DataTypeContainer::TangentVecType TangentVecType
int localToGlobal(const ElementType &T, int localIndex) const
Returns global index of the dof with number localIndex.
const InitType & getInitializer() const
Returns the mesh.
Definition: rhs.h:14
ConfiguratorType::SparseMatrixType SparseMatrixType
Definition: ex1.cpp:28
int getNumGlobalDofs() const
Returns the number of global degrees of freedom.
ConfiguratorType::VectorType VectorType
Definition: ex1.cpp:27
double RealType
Definition: ex1.cpp:22
DataTypeContainer::Matrix33 Matrix33
Eigen typedefs for use with the TriangleMesh.
UnitTriangMeshBaseFunctionSetP1< DataTypeContainer, QuadType, ElementType > BaseFuncSetType
Configurator for Finite Elements.
Triangle which has a tangent space at each node.
const BaseFuncSetType & getBaseFunctionSet(const ElementType &) const
Returns the base funcitons set for an element.
DataTypeContainer::TripletType TripletType