35 #ifndef _LOCAL_DOF_PATTERN_HH 36 #define _LOCAL_DOF_PATTERN_HH 38 #include <lifev/core/LifeV.hpp> 135 return M_pattern[i].first;
142 return M_pattern[i].second;
146 void showMe ( std::ostream& output = std::cout )
const;
181 return M_nbDofPerDimEntity[0];
187 return M_nbDofPerDimEntity[1];
193 return (M_dim >= 3) ? M_nbDofPerDimEntity[M_dim - 3] : 0;
199 return (M_dim >= 2) ? M_nbDofPerDimEntity[M_dim - 2] : 0;
205 return (M_dim >= 1) ? M_nbDofPerDimEntity[M_dim - 1] : 0;
211 return M_nbDofPerDimEntity[M_dim];
220 return M_nbDofPerDimEntity[2];
226 return M_nbDofPerDimEntity[3];
235 ASSERT (structDim <= M_dim,
"No structure with this dimension");
236 return M_nbDofPerDimEntity[structDim];
247 ASSERT (structCodim <= M_dim,
"No structure with this codimension");
248 return M_nbDofPerDimEntity[M_dim - structCodim];
std::vector< UInt > M_nbDofPerDimEntity
Number of degrees of freedom per geometric entity.
const UInt & patternFirst(const UInt &i) const
patternFirst(i): row index in the element matrix of the i-th term of the pattern (the index starts fr...
UInt nbDofPerFacet() const
Return the number of degrees of freedom located on the facet. (face in 3D)
UInt M_nbDiag
Number of diagonal terms in the element matrix.
DofPatternType M_patternType
Type of the pattern stored.
UInt M_dim
dimension of the element (3 for a tetrahedra for example).
const UInt & nbDofPerCodimStrut(const UInt &structCodim) const
Return the number of degrees of freedom located per structCodim object.
DofPatternType
Local pattern type.
DOFLocalPattern(const UInt &nbLocalDof, const UInt &nbDofPerVertex, const UInt &nbDofPerEdge, const UInt &nbDofPerFace, const UInt &nbDofPerVolume, const DofPatternType &patternType, UInt nbLocalCoor)
Full constructor.
void showMe(std::ostream &output=std::cout) const
The showMe method for the pattern.
const UInt & nbDofPerVertex() const
Return the number of degrees of freedom located on the vertices (0D structures)
virtual ~DOFLocalPattern()
Empty destructor.
const UInt & nbDofPerElement() const
Return the number of degrees of freedom located on the element. (volume in 3D)
void updateInverseJacobian(const UInt &iQuadPt)
void setupP1isoP2SegPattern()
Method for the P1isoP2 pattern for the segments (1D)
const UInt & nbDofPerDimStrut(const UInt &structDim) const
Return the number of degrees of freedom located per structDim object.
std::vector< std::pair< UInt, UInt > > M_pattern
Pairs of couplings to appear in the pattern.
const UInt & nbDiag() const
Number of diagonal terms in the element matrix.
void setupStandardPattern()
Method to setup the standard pattern, i.e. with all degrees of freedom coupled.
DOFLocalPattern - A class to store the "couplings" between the basis functions.
const UInt & nbUpper() const
Number of upper terms in the element matrix.
UInt nbDofPerPeak() const
Return the number of degrees of freedom located on the peak (vertex in 3D).
void setupP1isoP2TriaPattern()
Method for the P1isoP2 pattern for the triangles (2D)
UInt M_nbLocalDof
Total number of degrees of freedom (equal to refEle::nbDof)
UInt M_nbUpper
Number of upper terms in the element matrix.
const UInt & nbPattern() const
Number of non-zero terms in the element matrix.
const UInt & nbDofPerVolume() const
Return the number of degrees of freedom located in the volume (3D structures).
const UInt & nbDofPerEdge() const
Return the number of degrees of freedom located on the edges (1D structures)
DOFLocalPattern(const DOFLocalPattern &localDofPattern)
Simple copy constructor.
const UInt & nbLocalDof() const
Return the number of local degrees of freedom.
const UInt & patternSecond(const UInt &i) const
patternSecond(i): column index in the element matrix of the i-th term of the pattern (the index start...
DOFLocalPattern()
Default constructor disabled (because there is no setup/set method)
UInt M_nbPattern
Number of non-zero terms in the element matrix.
uint32_type UInt
generic unsigned integer (used mainly for addressing)
UInt nbDofPerRidge() const
Return the number of degrees of freedom located on the ridge. (edge in 3D)
const UInt & nbDofPerFace() const
Return the number of degrees of freedom located on the faces (2D structures).