std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices4_[4]
S matrices for subdivision into 4 quads.
Definition: space.hh:249
void createCellList_(const concepts::Connector &cntr, const concepts::CellData *father)
Initially fills cellList_ (recusively)
void enforceBC_(const concepts::Connector2 &cell)
Enforce Dirichlet boundary conditions.
std::unordered_map< uint, concepts::AdaptiveAdjustP< 2 > > adj_
Hash table of the adjustment information of the elements.
Definition: space.hh:234
void createVtxEdgList_(const concepts::Connector2 &cell)
Initially fills edgeListVtx_ and vertexList_.
std::unique_ptr< BuildDofsBase > buildEdgeDofs_
Strategy to build the edge degrees of freedom.
Definition: space.hh:258
Stores additional information on a cell, namely its father.
Definition: continuityData.hh:80
std::unordered_map< uint, concepts::AdaptiveControlP< 2 > > ctrl2_
Hash table of the control information for the 2D elements.
Definition: space.hh:213
A cell in a mesh consist of topological information (neighbours, connectivity, orientation) and geome...
Definition: cell.hh:39
void buildInnerDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the interior are built.
void recomputeSmatrices_(const Quad< Real > &elm)
Checks if the S matrices need to be recomputed and does so if necessary.
std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices2H_[2]
S matrices for horizontal subdivision.
Definition: space.hh:241
void meshAndPoly_(concepts::Quad2d &cell, concepts::Level< 2 > &L, int *P)
Adjusts the mesh and the polynomial degree.
Space(const Space &spc, uint i)
Copy constructor used to return a snapshot of the old space from rebuild()
void buildVertexDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the vertices are built.
virtual ~Space()
std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices2V_[2]
S matrices for vertical subdivision.
Definition: space.hh:245
std::unique_ptr< std::unordered_map< uint, concepts::AdaptiveControlP< 1 > > > ctrl1_
Hash table of the control information for the edges.
Definition: space.hh:211
virtual void adjust(const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a)
std::unordered_map< uint, const concepts::Attribute * > vtxConnect_
Hash table for connected vertex dofs (mapping from cell key)
Definition: space.hh:219
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
Definition: scannerConnectors.hh:29
void status_()
Gives the cells and edges with given polynomial degree (for debugging)
void minimumRule_(const concepts::Connector2 &cntr, const concepts::Connector1 &edge)
Used to enforce the minimum rule.
std::unique_ptr< BuildDofsBase > buildInnerDofs_
Strategy to build the inner degrees of freedom.
Definition: space.hh:262
Exception class to express that a connected index wasn't found.
Definition: space.hh:59
Indicates that the space on which a function was called was not yet correctly built.
Definition: space.hh:36
void buildEdgeDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the edge are built.
void computePmax_(const concepts::Connector2 &cntr, ushort Pmax[2]) const
Computes the maximal polynomial degree of cell in each direction.
A 2D hp FEM space with continuous, piecewise polynomial basis functions.
Definition: space.hh:88
uint connectedIdx(const concepts::Attribute &a) const
Gives the number of connected dofs for one attribute.
void buildElements_(concepts::Quad2d &cell, ushort *Pmax, concepts::TColumn< Real > *T0=0)
Creates the elements and their T matrices.
void enrichElm_(const concepts::Quad2d &cell, int *p)
Enriches the polynomial degrees.
Scan * constScan() const
Returns constant scanner over elements of last build, In contrast to scan(), this method also workes,...
Definition: space.hh:408
Responsible to build the degrees of freedom in a space.
Definition: buildDofsBase.hh:31
std::unordered_map< uint, concepts::AdaptiveControl<> > ctrl0_
Hash table of the control information for the vertices.
Definition: space.hh:209
std::unique_ptr< BuildDofsBase > buildVertexDofs_
Strategy to build the vertex degrees of freedom.
Definition: space.hh:254
Space(concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0)
Constructor.
std::unordered_map< uint, concepts::AdaptiveControl<> > ctrlc0_
Hash table for connected vertex dofs (mapping from attribute)
Definition: space.hh:216