Class xlifepp::FeSubSpace#
-
class FeSubSpace : public xlifepp::SubSpace#
-
inheriting from SubSpace handles additionnal data for elementary Fe type subspace.
Elementary means a subspace based on a single mesh domain (not an union of mesh domains) This structure is useful for Fe computation on sub domains, when the subdomain is not of the same dim as parent domain, Elements are SubElements
Public Functions
-
FeSubSpace(const GeomDomain&, Space&, bool, const string_t &na = "")#
-
constructor specifying geom domain, parent subspace and name
-
FeSubSpace(const GeomDomain&, Space&, const string_t &na = "")#
-
constructor specifying geom domain, parent space and name
-
~FeSubSpace()#
-
destructor
-
virtual void buildgelt2elt() const#
-
construct the map get2elt from elements list
buildgelt2elt: construct the map gelt2elt from elements list and the map eltRanks thread safe because if not built, it is build only by the thread 0 other threads wait for the construction Note: it is better to build it outside a parallel region !
-
virtual const Element &element(GeomElement *gelt) const#
-
access to element associated to a geomelement
-
inline virtual const Element &element(number_t k) const#
-
access to k-th (k>=0) element (pointer) for FESpace and FESubspace only
-
virtual const Element *element_p(GeomElement *gelt) const#
-
access to element associated to a geomelement
return element linked to a given geom element used gelt2elt map; has to be already built
-
inline virtual const Element *element_p(number_t k) const#
-
access to k-th (k>=0) element (pointer) for FESpace and FESubspace only
-
virtual const std::vector<number_t> &elementDofs(number_t k) const#
-
access to dofs ranks (local numbering) of k-th (>=0) element for FESpace and FESubspace only
-
virtual std::vector<number_t> elementParentDofs(number_t k) const#
-
access to dofs ranks (parent numbering) of k-th (>=0) element for FESpace and FESubspace only
-
inline virtual const FeSubSpace *feSubSpace() const#
-
autocast (see virtual function in parent)
-
template<typename T, typename K>
T &interpolate(const Vector<K>&, const Point&, const Element*, T&, DiffOpType = _id, bool useNearest = false) const#
-
compute interpolated value at P knowing Element
-
template<typename T, typename K>
T &interpolate(const Vector<K>&, const Point&, T&, DiffOpType = _id, bool useNearest = false) const#
-
compute interpolated value at P
-
inline virtual const Interpolation *interpolation() const#
-
return pointer to interpolation
-
inline virtual bool isFeSubspace() const#
-
returns true if FeSubSpace
-
const Element *locateElement(const Point &p, bool useNearest = false, bool errorOnDomainOut = true, real_t tol = theLocateToleranceFactor) const#
-
locate element of the FeSubspace containing P
-
virtual number_t numElement(GeomElement *gelt) const#
-
access to element number associated to a geomelement
-
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
Public Members
-
std::vector<std::vector<number_t>> dofRanks#
-
numbering of D.o.Fs of domain elements in domain D.o.Fs
-
mutable std::map<Element*, number_t> eltRanks#
-
map Element* -> element number (useful to interpolation tools)
-
mutable std::map<GeomElement*, number_t> gelt2elt#
-
map GeomElement -> element number (useful to interpolation tools)
-
std::set<RefElement*> refElts#
-
set of pointer to RefElement involved in FeSpace (usually one)
Friends
-
friend std::ostream &operator<<(std::ostream&, const FeSubSpace&)#
-
print operator
-
FeSubSpace(const GeomDomain&, Space&, bool, const string_t &na = "")#