9#ifndef hpAdaptSpace2D_hh
10#define hpAdaptSpace2D_hh
16#include "geometry/cellConditions.hh"
20#include "hp2D/spacePreBuilder.hh"
78 uint*
offset = 0, uint* idx = 0);
93 virtual const uint&
lastIdx()
const {
return spc_.idx(); }
96 inline virtual uint
dim()
const;
97 inline virtual uint
nelm()
const;
126 const std::set<concepts::Cell2* > allCells()
const{
135 virtual std::ostream&
info(std::ostream& os)
const;
218 std::unique_ptr<const BuildTColumnsBase<F> > buildVertexDofs_;
222 std::unique_ptr<const BuildTColumnsBase<F> > buildEdgeDofs_;
226 std::unique_ptr<const BuildTColumnsBase<F> > buildInnerDofs_;
242 void setVtxPassive_(G& cntr,
bool forChildren =
false,
bool always=
false);
250 if (!available().first)
252 return lastIdx() - offset();
257 if (!available().first)
264 if (!available().first)
271 if (!available().first) rebuild();
272 return lastIdx() - offset();
277 if (!available().first) rebuild();
283 if (!available().first) rebuild();
#define conceptsException(exc)
Scanner of hp2D::Element.
void setBuildVertexDofs_(const BuildTColumnsBase< F > *b)
virtual void recomputeShapefunctions()=0
void set_bc(const concepts::BoundaryConditions *bc)
Reset boundary conditions to bc
void setBuildInnerDofs_(const BuildTColumnsBase< F > *b)
void rebuild(bool sameIndices=false)
hpFull *const prebuild_
Mesh and degrees of freedoms.
uint idxVtx_
Number of indices on entities, just for statistics.
virtual Element< F > * newElement_(concepts::Cell2 &cell, ushort *pMax, concepts::TColumn< F > *T0, concepts::TColumn< F > *T1) const =0
hpAdaptiveSpace(hpFull &prebuild, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0, uint spcNo=0, uint *offset=0, uint *idx=0)
virtual Scan * scan() const
Returns a scanner to iterate over the elements of the space.
std::pair< bool, uint > available() const
hpAdaptiveSpace(const hpAdaptiveSpace &spc)
virtual uint offset() const
Returns the offset.
virtual uint dim() const
Returns the dimension of the space.
virtual uint & lastIdx()
Returns last global index of the space.
hpAdaptiveSpace(concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0)
concepts::SubspaceHelper< F, SpacePreBuilder > spc_
virtual uint nelm() const
Returns the number of elements in the space.
virtual void adjust(const concepts::Element< F > &elm, const concepts::AdaptiveAdjustP< 2 > &a)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
uint nelm_
Number of elements currently active in the mesh.
virtual concepts::TColumn< F > * applySmatrices_(const concepts::Element< F > &elm, uint i, const concepts::TColumn< F > *T0, const concepts::TColumn< F > *T1)=0
void setBuildEdgeDofs_(const BuildTColumnsBase< F > *b)
std::set< concepts::Cell2 * > allCells() const
Returns set of all cells.