void createEdgFaceList_(const concepts::Cell3 &cell)
Initially fills faceList_ and edgeList_.
std::unique_ptr< std::unordered_map< uint, concepts::AdaptiveControlP< 2 > > > ctrl2_
Hash table of the control information for the faces.
Definition: space.hh:287
Builds the trace space of a FE space consisting of hexahedral elements.
Definition: traces.hh:35
static void setTimings(concepts::InOutParameters *timings)
Sets the class to store the timing values in.
void createVtxEdgList_(const concepts::Cell3 &cell)
Initially fills vertexList_.
Space(concepts::Mesh3 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0)
Constructor.
std::unordered_map< uint, concepts::AdaptiveControlP< 3 > > ctrl3_
Hash table of the control information for the 3D elements.
Definition: space.hh:289
std::unique_ptr< BuildDofsBase > buildFaceDofs_
Strategy to build the face degrees of freedom.
Definition: space.hh:338
void enforceBC_(concepts::Hexahedron3d &cell)
Enforce Dirichlet boundary conditions.
Stores additional information on a cell, namely its father.
Definition: continuityData.hh:80
void deactivate_(const concepts::Connector1 &edg)
Deactivates the children of the edge edg (including the middle vertex).
void getPmax(const concepts::Hexahedron &cntr, ushort Pmax[3]) const
Definition: space.hh:118
void buildFaceDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the face are built.
std::unique_ptr< BuildDofsBase > buildEdgeDofs_
Strategy to build the edge degrees of freedom.
Definition: space.hh:334
std::unordered_map< uint, concepts::AdaptiveAdjustP< 3 > > adj_
Hash table of the adjustment information of the elements.
Definition: space.hh:303
void doCorrectRefinement_(concepts::Hexahedron3d &cell, concepts::Level< 3 > &L) const
Does apply the correct refinement based on the requested level change.
std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices4x_[4]
The S matrices in 3D for the subdivision into 4 children.
Definition: space.hh:314
std::unique_ptr< std::unordered_map< uint, concepts::AdaptiveControlP< 1 > > > ctrl1_
Hash table of the control information for the edges.
Definition: space.hh:284
A 3D hp FEM space with continuous, picewise polynomial basis functions.
Definition: space.hh:84
std::unordered_map< uint, concepts::AdaptiveControlP< 3 > > pMax_
Hash table of the dimension of the shape function space for the 3D elements.
Definition: space.hh:291
std::unique_ptr< BuildDofsBase > buildVertexDofs_
Strategy to build the vertex degrees of freedom.
Definition: space.hh:330
void deactivate_(const concepts::Connector0 &vtx)
Deactivates the children of the vertex vtx.
void recomputeSmatrices(const Hexahedron *elm) const
Checks if the S matrices need to be recomputed and does so if necessary.
std::unique_ptr< BuildDofsBase > buildInnerDofs_
Strategy to build the inner degrees of freedom.
Definition: space.hh:342
hp3D::Element< Real > & operator++(int)=0
Returns the next element in the scanned set.
virtual ~Space()
const std::unique_ptr< concepts::SMatrixBase< Real > > * getSmatrices(const concepts::Hex3dSubdivision *subdiv) const
Returns the list of matrices matching the subdivision type subdiv.
void buildInnerDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the interior are built.
std::unordered_map< uint, concepts::AdaptiveControl<> > ctrl0_
Hash table of the control information for the vertices.
Definition: space.hh:281
std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices8_[8]
The S matrices in 3D for the subdivision into 8 children.
Definition: space.hh:310
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
Definition: scannerConnectors.hh:29
void meshAndPoly_(concepts::Hexahedron3d &cell, concepts::Level< 3 > &L, int *P)
Adjusts the mesh and the polynomial degree.
void deactivate_(const concepts::Connector2 &face)
Deactivates the children of face (including the new edges and vertices).
Responsible to build the degrees of freedom in a space.
Definition: buildDofsBase.hh:31
void buildVertexDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the vertices are built.
Indicates that the space on which a function was called was not yet correctly built.
Definition: space.hh:36
Definition: cellConditions.hh:125
void createCellList_(const concepts::Connector &cntr, const concepts::CellData *father)
Initially fills cellList_ (recusively).
Class to describe adjustments to elements in an adaptive space.
Definition: hpMethod.hh:59
void computePmax_(const concepts::Hexahedron &cntr, ushort Pmax[3]) const
Computes the maximal polynomial degree of cell in each direction.
void enforceCC_(concepts::Hexahedron3d &cell)
Enforce cell condition INACTIVEPLUS.
void buildElements_(concepts::Hexahedron3d &cell, ushort *Pmax, concepts::TColumn< Real > *T0=0)
Creates the elements and their T matrices.
virtual void adjust(const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 3 > &a)
void buildEdgeDofs(const BuildDofsBase &b)
Change the strategy how the degrees of freedom for the edge are built.
std::unique_ptr< concepts::SMatrixBase< Real > > Smatrices2x_[2]
The S matrices in 3D for the subdivision into 2 children.
Definition: space.hh:319
void enrichElm_(const concepts::Hexahedron3d &cell, int *p)
Enriches the polynomial degrees.
void getPmax_(const concepts::Hexahedron &cntr, ushort Pmax[3]) const
Returns the polynomial degrees of the shape function space on connector.
Interface for geometrical subdivision strategies for hexahedrons.
Definition: cell3D.hh:159
void setDim(uint dim)