Class xlifepp::SubSpace#
-
class SubSpace : public xlifepp::Space#
-
defines data related to a ‘subspace’ of a space the subspace may be geometrically supported by a subset of geometrical domain or be a restriction to a boundary of the parent geometrical domain (trace space) or both The SubSpace class is mainly used as a dof numbering object in computation.
SubSpace class is not exposed to end users
Subclassed by xlifepp::FeSubSpace
Public Functions
-
inline SubSpace()#
-
default constructor
-
SubSpace(const GeomDomain&, const std::vector<number_t>&, Space&, const string_t &na = "")#
-
constructor specifying geom domain, dof ids list and parent space and name
-
SubSpace(const GeomDomain&, Space&, const string_t &na = "")#
-
constructor specifying geom domain, parent space and name
-
SubSpace(const std::vector<number_t>&, Space&, const string_t &na = "")#
-
constructor specifying dof ids list and parent space and name
-
~SubSpace()#
-
destructor
-
virtual void builddofid2rank() const#
-
construct the map dofid2rank from dofNumbers list
construct the map dofid2rank from dofs list, ranks start from 1
-
void createNumbering()#
-
create numbering of subspace DoFs
-
inline virtual const std::map<number_t, number_t> &dofid2rank() const#
-
return the map dof to rank, built on fly
-
std::vector<number_t> dofRootNumbers() const#
-
access to dofNumbers list in root space numbering
access to dofNumbers list in root space numbering remind that dofNumbers vector in SubSpace is related to the numbering of parent which can be a subspace and not the root space
-
void dofsOfFeSubspace()#
-
build dofs numbering of Fe SubSpace
build dofs numbering of subspace when parent is a Fe space if domain is a composite domain (union or intersection of domains)
subspaces of each domain are created if they do not exist
dofNumbers numbering relative to parent space is computed if domain is a meshdomain, dofNumbers is computed by function
-
void dofsOfSubSubspace()#
-
build dofs numbering of Subspace of SubSpace
build dofs numbering of subspace when parent is a Subspace two cases are possible:
domain is a meshdomain and domain parent is a composite domain (e.g D1 and D1+D2)
domain and parent domains are composite domains (e. g D1+D2 and D1+D2+D3) we use a general algorithm based on root dof numbers comparison
-
inline virtual const Element *element_p(number_t k) const#
-
access to k-th element (pointer) for FESpace and FESubspace only
-
inline virtual const std::vector<number_t> &elementDofs(number_t k) const#
-
access to dofs ranks (local numbering) of k-th element for FESpace and FESubspace only
-
inline virtual std::vector<number_t> elementParentDofs(number_t k) const#
-
access to dofs ranks (parent numbering) of k-th element for FESpace and FESubspace only
-
inline virtual const FeSubSpace *feSubSpace() const#
-
downcast to FESubSpace
-
virtual bool isFE() const#
-
true if FE space or FeSubspace
-
inline virtual bool isFeSubspace() const#
-
returns false (a subspace is not a fesubspace)
-
virtual bool isSpectral() const#
-
true if spectral space
-
inline virtual void print(PrintStream &os) const#
-
print utility
-
virtual void print(std::ostream&) const#
-
print utility
-
inline virtual const std::set<RefElement*> &refElements() const#
-
access to set of pointer to RefElement (refElts) involved in FESpace
-
inline SubSpace()#