21 #ifndef __MULTI_MESH_FUNCTION_H 22 #define __MULTI_MESH_FUNCTION_H 25 #include <boost/ptr_container/ptr_map.hpp> 26 #include <dolfin/common/Variable.h> 32 class MultiMeshFunctionSpace;
35 class MultiMeshFunction;
67 std::shared_ptr<GenericVector> x);
86 std::shared_ptr<const Function>
part(std::size_t i)
const;
94 std::shared_ptr<const Function>
part(std::size_t i,
bool deepcopy)
const;
101 std::shared_ptr<GenericVector>
vector();
108 std::shared_ptr<const GenericVector>
vector()
const;
117 return _function_space;
136 const Cell& dolfin_cell,
137 const double* coordinate_dofs,
138 const ufc::cell& ufc_cell)
const;
151 const ufc::cell& cell)
const;
160 const Cell& dolfin_cell,
161 const double* coordinate_dofs,
162 const ufc::cell& ufc_cell)
const;
170 void compute_ghost_indices(std::pair<std::size_t, std::size_t> range,
171 std::vector<la_index>& ghost_indices)
const;
174 std::shared_ptr<const MultiMeshFunctionSpace> _function_space;
177 std::shared_ptr<GenericVector> _vector;
180 mutable std::map<std::size_t, std::shared_ptr<const Function> > _function_parts;
Common base class for DOLFIN variables.
Definition: Variable.h:35
Definition: MultiMeshFunction.h:42
void restrict(double *w, const FiniteElement &element, std::size_t part, const Cell &dolfin_cell, const double *coordinate_dofs, const ufc::cell &ufc_cell) const
Definition: MultiMeshFunction.cpp:215
std::shared_ptr< const Function > part(std::size_t i) const
Definition: MultiMeshFunction.cpp:65
void assign_part(std::size_t a, const Function &v)
Definition: MultiMeshFunction.cpp:88
MultiMeshFunction()
Constructor.
Definition: MultiMeshFunction.cpp:34
A Cell is a MeshEntity of topological codimension 0.
Definition: Cell.h:42
void eval(Array< double > &values, const Array< double > &x, std::size_t part, const ufc::cell &cell) const
Definition: MultiMeshFunction.cpp:246
void restrict_as_ufc_function(double *w, const FiniteElement &element, std::size_t part, const Cell &dolfin_cell, const double *coordinate_dofs, const ufc::cell &ufc_cell) const
Restrict as UFC function (by calling eval)
Definition: MultiMeshFunction.cpp:288
Definition: Function.h:65
std::shared_ptr< GenericVector > vector()
Definition: MultiMeshFunction.cpp:150
virtual ~MultiMeshFunction()
Destructor.
Definition: MultiMeshFunction.cpp:60
virtual std::shared_ptr< const MultiMeshFunctionSpace > function_space() const
Definition: MultiMeshFunction.h:115
This is a wrapper for a UFC finite element (ufc::finite_element).
Definition: FiniteElement.h:35