// ============================================================================ // == == // == AMDiS - Adaptive multidimensional simulations == // == == // ============================================================================ // == == // == crystal growth group == // == == // == Stiftung caesar == // == Ludwig-Erhard-Allee 2 == // == 53175 Bonn == // == germany == // == == // ============================================================================ // == == // == http://www.caesar.de/cg/AMDiS == // == == // ============================================================================ /** \file FiniteElemSpace.h */ /** \defgroup FEMSpace FEMSpace * @{ @} */ #ifndef AMDIS_FINITEELEMSPACE_H #define AMDIS_FINITEELEMSPACE_H #include #include #include "MemoryManager.h" namespace AMDiS { // ============================================================================ // ===== forward declarations ================================================= // ============================================================================ class DOFAdmin; class BasisFunction; class Mesh; template class DOFVector; template class DimVec; // ============================================================================ // ===== class FiniteElemSpace ================================================ // ============================================================================ /** \ingroup FEMSpace * \brief * A FiniteElemSpace is a triple of a DOFAdmin and a set of BasisFunction on a * Mesh. */ class FiniteElemSpace { public: MEMORY_MANAGED(FiniteElemSpace); /** \brief * */ static FiniteElemSpace *provideFESpace(DOFAdmin *admin, const BasisFunction *basFcts, Mesh *mesh, const std::string& name_ = ""); /** \brief * destructor */ virtual ~FiniteElemSpace() {}; /** \brief * Returns \ref name */ inline std::string getName() const { return name; }; /** \brief * Returns \ref admin */ inline DOFAdmin* getAdmin() const { return admin; }; /** \brief * Returns \ref basFcts */ inline const BasisFunction* getBasisFcts() const { return basFcts; }; /** \brief * Returns \ref mesh */ inline Mesh* getMesh() const { return mesh; }; protected: /** \brief * Constructs a FiniteElemSpace with name name_ and the given DOFAdmin, * BasisFunction and Mesh. */ FiniteElemSpace(DOFAdmin* admin_, const BasisFunction* basisFcts, Mesh* mesh, const std::string& name_=""); protected: /** \brief * Name of this FiniteElemSpace */ const std::string name; /** \brief * DOFAdmin corresponding to this FiniteElemSpace */ DOFAdmin* admin; /** \brief * set of BasisFunction of this FiniteElemSpace */ const BasisFunction* basFcts; /** \brief * The Mesh this FiniteElemSpace belongs to */ Mesh* mesh; /** \brief * */ static std::vector feSpaces; }; } #endif // !_FINITEELEMSPACE_H_