25 #ifndef __FUNCTION_SPACE_H    26 #define __FUNCTION_SPACE_H    33 #include <unordered_map>    34 #include <dolfin/common/Array.h>    35 #include <dolfin/common/Variable.h>    36 #include <dolfin/common/Hierarchical.h>    37 #include <dolfin/fem/FiniteElement.h>    38 #include <dolfin/mesh/Cell.h>    45   class GenericFunction;
    68                   std::shared_ptr<const FiniteElement> 
element,
    69                   std::shared_ptr<const GenericDofMap> 
dofmap);
   105     void attach(std::shared_ptr<const FiniteElement> element,
   106                 std::shared_ptr<const GenericDofMap> dofmap);
   136     std::shared_ptr<const Mesh> 
mesh() 
const;
   143     std::shared_ptr<const FiniteElement> 
element() 
const;
   150     std::shared_ptr<const GenericDofMap> 
dofmap() 
const;
   158     std::size_t 
dim() 
const;
   179     std::shared_ptr<FunctionSpace> 
operator[] (std::size_t i) 
const;
   200     std::shared_ptr<FunctionSpace>
   213     std::shared_ptr<FunctionSpace>
   232     std::shared_ptr<FunctionSpace> 
collapse() 
const;
   244     std::shared_ptr<FunctionSpace>
   245     collapse(std::unordered_map<std::size_t, std::size_t>& collapsed_dofs) 
const;
   257     { 
return &cell.
mesh() == &(*_mesh); }
   269     { 
return element.
hash() == _element->hash(); }
   277     std::vector<std::size_t> 
component() 
const;
   319     std::string 
str(
bool verbose) 
const;
   327     void interpolate_from_any(
GenericVector& expansion_coefficients,
   332     void interpolate_from_parent(
GenericVector& expansion_coefficients,
   336     std::shared_ptr<const Mesh> _mesh;
   339     std::shared_ptr<const FiniteElement> _element;
   342     std::shared_ptr<const GenericDofMap> _dofmap;
   345     std::vector<std::size_t> _component;
   348     std::size_t _root_space_id;
   351     mutable std::map<std::vector<std::size_t>,
   352                      std::shared_ptr<FunctionSpace> > _subspaces;
 std::shared_ptr< FunctionSpace > sub(std::size_t component) const
Definition: FunctionSpace.h:189
 
const Mesh & mesh() const
Definition: MeshEntity.h:99
 
Common base class for DOLFIN variables. 
Definition: Variable.h:35
 
void print_dofmap() const
Print dofmap (useful for debugging) 
Definition: FunctionSpace.cpp:447
 
std::shared_ptr< const GenericDofMap > dofmap() const
Definition: FunctionSpace.cpp:114
 
Definition: Hierarchical.h:43
 
virtual ~FunctionSpace()
Destructor. 
Definition: FunctionSpace.cpp:63
 
const FunctionSpace & operator=(const FunctionSpace &V)
Definition: FunctionSpace.cpp:75
 
FunctionSpace(std::shared_ptr< const Mesh > mesh, std::shared_ptr< const FiniteElement > element, std::shared_ptr< const GenericDofMap > dofmap)
Definition: FunctionSpace.cpp:41
 
Definition: FunctionSpace.h:53
 
std::size_t dim() const
Definition: FunctionSpace.cpp:119
 
bool contains(const FunctionSpace &V) const
Definition: FunctionSpace.cpp:462
 
std::shared_ptr< FunctionSpace > operator[](std::size_t i) const
Definition: FunctionSpace.cpp:259
 
bool has_cell(const Cell &cell) const
Definition: FunctionSpace.h:256
 
std::size_t hash() const
Return simple hash of the signature string. 
Definition: FiniteElement.h:216
 
void interpolate(GenericVector &expansion_coefficients, const GenericFunction &v) const
Definition: FunctionSpace.cpp:205
 
A Cell is a MeshEntity of topological codimension 0. 
Definition: Cell.h:42
 
std::string str(bool verbose) const
Definition: FunctionSpace.cpp:431
 
std::shared_ptr< const Mesh > mesh() const
Definition: FunctionSpace.cpp:104
 
bool operator==(const FunctionSpace &V) const
Definition: FunctionSpace.cpp:90
 
bool operator!=(const FunctionSpace &V) const
Definition: FunctionSpace.cpp:98
 
std::shared_ptr< const FiniteElement > element() const
Definition: FunctionSpace.cpp:109
 
bool has_element(const FiniteElement &element) const
Definition: FunctionSpace.h:268
 
std::shared_ptr< FunctionSpace > extract_sub_space(const std::vector< std::size_t > &component) const
Definition: FunctionSpace.cpp:267
 
Definition: GenericFunction.h:53
 
void attach(std::shared_ptr< const FiniteElement > element, std::shared_ptr< const GenericDofMap > dofmap)
Definition: FunctionSpace.cpp:68
 
std::shared_ptr< FunctionSpace > collapse() const
Definition: FunctionSpace.cpp:309
 
void set_x(GenericVector &x, double value, std::size_t component) const
Definition: FunctionSpace.cpp:398
 
std::vector< double > tabulate_dof_coordinates() const
Definition: FunctionSpace.cpp:342
 
This class defines a common interface for vectors. 
Definition: GenericVector.h:47
 
This is a wrapper for a UFC finite element (ufc::finite_element). 
Definition: FiniteElement.h:35
 
std::vector< std::size_t > component() const
Definition: FunctionSpace.cpp:337
 
std::shared_ptr< FunctionSpace > sub(const std::vector< std::size_t > &component) const
Definition: FunctionSpace.h:201