spacePreBuilder.hh
concepts::HashMap< concepts::StiffArray< 2, ushort > > pmax_
Hash table for polynomial degree in cells to represent all those basis functions whose support contai...
Definition: spacePreBuilder.hh:354
virtual concepts::Set< concepts::IndexRange > indices(uint dim, const concepts::Connector &cntr, uint spcNo=0) const =0
Returns all indices of entities of a cell of a particular dimension.
ushort * pMax_(const concepts::InfiniteQuad &cntr) const
const concepts::IndexRange & index(uint dim, const concepts::Connector2 &cntr, uint i=0, uint spcNo=0) const
Returns the index range of the dof inside cell cntr.
bool isMember_(const concepts::Connector1 &cntr) const
Returns true, if edge is 'member of space'.
void findControl_(F *&ctrl, const concepts::Connector2 &cntr, uint i)
Returns pointer to control information ctrl of vertex, edge or inner dof i in cell cntr.
uint available() const
Returns 0 if the potential degrees of freedom has to be rebuilt with rebuildDof(),...
Definition: spacePreBuilder.hh:204
virtual const ushort * pMax(const concepts::Connector2 &cntr, ushort *p=0) const
Returns a pointer to the maximal polynomial degrees in the cell quad to represent all those basis fun...
concepts::HashMap< CtrlType_2 > ctrl2_
Hash table of the control information for the 2D cells.
Definition: spacePreBuilder.hh:345
std::set< concepts::Cell2 * > allCells() const
Returns set of all cells.
Definition: spacePreBuilder.hh:315
void refine_(concepts::InfiniteQuad2d &cell, concepts::Level< 2 > L, short *P, concepts::HashMap< CtrlType_2 >::iterator &i2)
virtual ushort edgeDof(const concepts::Connector2 &cntr, uint i) const =0
Returns the maximal polynomial degree of the degrees of freedom on edge i in the cell cntr.
const ushort * pMinInner_(const concepts::Quad &quad)
Returns a pointer to the minimal polynomial degrees of the inner degrees in the cell quad and their c...
virtual void adjust(const concepts::Connector &cell, const concepts::AdaptiveAdjustP< 2 > &a)
Adjusts the mesh and polynomial degrees in the next rebuild step for this cell.
void memberEdges_(const concepts::Connector2 &cntr, std::set< const concepts::Connector1 * > &edges)
Collect all edges of cells without children in the set edges and assign the polynomial degree of each...
bool eliminateNonCauses_(std::queue< Cause > &causes)
Eliminate two causes of non-local decidability if the two edges are the same or one cause of non-loca...
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
concepts::HashMap< concepts::AdaptiveAdjustP< 2 > > adj_
Hash table of the adjustment information of the elements.
Definition: spacePreBuilder.hh:329
concepts::AdaptiveControl< IndexType > CtrlType_0
Definition: spacePreBuilder.hh:334
A infinite quadrilateral in the topology, which possess one Edge and two InfiniteEdges since one edge...
Definition: topology.hh:423
virtual const ushort * innerDof(const concepts::Connector2 &cntr) const
Returns a pointer to the maximal polynomial degrees of the inner degree of freedom in the cell quad.
hpFull(const hpFull &preBuild)
Copy constructor, the copy contains the same mesh, all information about adjustments and degrees of f...
concepts::Set< concepts::Cell2 * > cells_
Set of cells of finest mesh (without children)
Definition: spacePreBuilder.hh:362
Helper class for building 2D hp-FEM spaces (space pre builder).
Definition: spacePreBuilder.hh:168
void polyDependentEdges_(const concepts::Quad &quad, const concepts::Edge &edge, const concepts::Edge &oppEdge, const uint p)
virtual ushort edgeP(const concepts::Connector2 &cntr, uint i) const =0
Returns the maximal polynomial degree of an edge i in cell cntr, if edge has degrees of freedom or is...
void adjust(const concepts::AdaptiveAdjustP< 2 > &a)
Adjusts the mesh and polynomial degrees in the next rebuild step for all 'member of space' cell.
concepts::Set< uint > hangEdges_
Keys of hanging edges (with and without children)
Definition: spacePreBuilder.hh:374
void setPolyEdgeRule(const PolyEdgeRule &rule)
ushort * pMax_(const concepts::Quad &cntr) const
virtual const ushort * pMax(const concepts::Connector2 &cntr, ushort *p=0) const =0
Returns a pointer to the maximal polynomial degrees in the cell quad to represent all those basis fun...
Class to describe control structures of an adaptive space.
Definition: space.hh:271
Describe control structures of a high order adaptive space.
Definition: hpMethod.hh:28
Definition: spacePreBuilder.hh:422
concepts::AdaptiveControlP< 2, IndexType > CtrlType_2
Definition: spacePreBuilder.hh:338
void setPmax_(const concepts::Connector2 &cntr, ushort *Pmax)
concepts::HashMap< std::set< uint > > edgeList_
Hash table which maps from key of cell to the key of those edges, whose support cell is the cell.
Definition: spacePreBuilder.hh:372
void storeMatlab(const std::string name)
Stores the mesh and degrees of freedoms in a matlab file, ".m" ending is needed.
virtual concepts::IndexRange & setIndex(uint &firstIdx, uint noIdx, uint dim, const concepts::Connector &cntr, uint i=0, uint spcNo=0)=0
Sets the index range of the dof inside cell cntr and returns it.
bool isMember_(const concepts::Connector2 &cntr) const
Returns true, if cell is 'member of space'.
concepts::HashMap< CtrlType_0 > ctrl0_
Hash table of the control information for the vertices.
Definition: spacePreBuilder.hh:341
Container typename for multidimensional Array which is based on std::map.
Definition: multiArray.hh:33
void getRootCells_(const concepts::Connector2 &cntr, const std::set< uint > &vertices, std::map< uint, concepts::Sequence< const concepts::Connector2 * > > &rootCells)
Returns the roots of the cell families for the nonlocal vertices.
virtual void rebuildMesh()
Rebuilds the mesh due to adjustments, set polynomial degrees in inner degrees of freedom.
void polyHangingEdges_(const concepts::Connector1 &edge, const uint &p)
Give recursivly edge and its hanging children edges the polynomial degree p in polyHang_.
concepts::HashMap< CtrlType_1 > ctrl1_
Hash table of the control information for the edges.
Definition: spacePreBuilder.hh:343
void getEdgeMappings_(uint key, uint cKey, const concepts::Sequence< const concepts::Connector2 * > &root, concepts::MultiArray< 2, const concepts::Connector2 * > &edgesToCell, std::map< uint, concepts::Sequence< const concepts::Connector2 * > > &edgeToCell, std::map< uint, const concepts::Connector1 * > &fatherEdges, std::map< uint, uint > &mosEdges) const
Returns.
virtual bool vtxDof(const concepts::Connector2 &cntr, uint i) const
Returns, if the i th vertex of cell cntr has a degree of freedom.
virtual concepts::IndexRange & setIndex(uint &firstIdx, uint noIdx, uint dim, const concepts::Connector &cntr, uint i=0, uint spcNo=0)
Sets the index range of the dof inside cell cntr and returns it.
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
void refine_(concepts::Cell2 &cell, ushort *P, concepts::HashMap< CtrlType_2 >::iterator &i2)
Method for given the polynomial degrees to children, if the mesh was refined outside of this class.
bool getPretendedVertexSupport_(F cntr, concepts::HashMap< std::queue< Cause > > &nonLocal)
Collect for each cell that nodes, which pretend to belong to its support.
bool getEdgeSupport_(F cntr)
Collect for each cell those edges, which belong to its support.
const IndexType & findIndex_(uint dim, const concepts::Connector2 &cntr, uint i) const
Definition: hashMap.hh:19
ushort takeOutchildrenEdges_(const concepts::Connector1 &edge, const concepts::Connector1 &cntr1, std::set< const concepts::Connector1 * > &edges, std::set< const concepts::Connector0 * > &vertices)
Erase all hanging edges and hanging nodes from the sets edges and vertices and from the control objec...
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: spacePreBuilder.hh:429
concepts::HashMap< std::set< uint > > vertexList_
Hash table which maps from key of cell to the key of those vertices, whose support cell is the cell.
Definition: spacePreBuilder.hh:368
void getNonLocalVertexSupport_(concepts::HashMap< std::queue< Cause > > &nonLocal, const std::map< uint, concepts::Sequence< const concepts::Connector2 * > > &rootCells)
Enlarges the supports of non local vertex dof, that means to demark some cells from vertexList_ and t...
Definition: operations.hh:76
virtual const ushort * innerDof(const concepts::Connector2 &cntr) const =0
Returns a pointer to the maximal polynomial degrees of the inner degree of freedom in the cell quad.
IndexType & findIndex_(uint dim, const concepts::Connector2 &cntr, uint i)
Returns pointer to index range and control tag of vertex, edge or inner dof i in cell cntr.
std::unique_ptr< const PolyEdgeRule > polyEdgeRule_
Rule for defining polynomial degrees on edges.
Definition: spacePreBuilder.hh:326
concepts::Set< concepts::Cell2 * > cells() const
Returns set of 'member of space' cells.
Definition: spacePreBuilder.hh:313
virtual bool vtxDof(const concepts::Connector2 &cntr, uint i) const =0
Returns, if the i th vertex of cell cntr has a degree of freedom.
Definition: spacePreBuilder.hh:38
bool isHangEdge(const concepts::Connector1 &cntr) const
Returns true, if edge is hanging.
concepts::HashMap< concepts::StiffArray< 2, ushort > > pminInner_
Hash table for the polynomial degrees in non 'member of space' cells, which is the minimum of the pol...
Definition: spacePreBuilder.hh:359
std::map< uint, concepts::IndexRange > IndexType
Definition: spacePreBuilder.hh:332
void dependentEdges_(const concepts::Quad &quad)
Cause(const concepts::Connector2 *cell, const concepts::Connector1 *edge)
Definition: spacePreBuilder.hh:424
virtual ushort edgeP(const concepts::Connector2 &cntr, uint i) const
Returns the maximal polynomial degree of an edge i in cell cntr, if edge has degrees of freedom or is...
concepts::HashMap< ushort > polyDep_
Hash table for polynomial degree of dependent edges.
Definition: spacePreBuilder.hh:348
Exception class to express that an inquired dof is not valid.
Definition: spacePreBuilder.hh:37
concepts::HashMap< ushort > polyHang_
Hash table for polynomial degree of hanging edges.
Definition: spacePreBuilder.hh:350
virtual ushort edgeDof(const concepts::Connector2 &cntr, uint i) const
Returns the maximal polynomial degree of the degrees of freedom on edge i in the cell cntr.
void adjust(const uint nrCell, const concepts::AdaptiveAdjustP< 2 > &a)
Adjusts the mesh and polynomial degrees in the next rebuild step for the nrCell th 'member of space' ...
concepts::AdaptiveControlP< 1, IndexType > CtrlType_1
Definition: spacePreBuilder.hh:336
void refine_(concepts::Quad2d &cell, concepts::Level< 2 > L, short *P, concepts::HashMap< CtrlType_2 >::iterator &i2)
Method for refinement of mesh and enlargment of polynomial degrees of inner degrees of freedom.
bool rebuild_
If true: the potential degrees of freedom have to be rebuilt.
Definition: spacePreBuilder.hh:322