30 #ifndef DOFHANDLER_HH_
31 #define DOFHANDLER_HH_
110 double local_values[])
const = 0;
283 const unsigned int offset = 0);
301 double local_values[])
const override;
347 template<
unsigned int dim>
Distribution * el_ds() const
Returns the distribution of number of element to local processes.
ElementFullIter CellIterator
Alias for iterator over cells.
const unsigned int lsize() const
Returns the number of dofs on the current process.
vector< int > edg_4_loc
Local edge index -> global edge index.
DOFHandlerMultiDim(Mesh &_mesh)
Constructor.
FiniteElement< 3, 3 > * fe3d_
virtual ~DOFHandlerBase()
Destructor.
FiniteElement< 1, 3 > * fe1d_
Pointer to the finite element class for which the handler distributes dofs.
int * get_el_4_loc() const
Distribution * el_ds_
Distribution of elements.
void distribute_dofs(FiniteElement< 1, 3 > &fe1d, FiniteElement< 2, 3 > &fe2d, FiniteElement< 3, 3 > &fe3d, const unsigned int offset=0)
Distributes degrees of freedom on the mesh needed for the given finite elements.
unsigned int global_dof_offset
Index of first global dof.
unsigned int n_loc_nb() const
Returns number of local neighbours.
virtual void get_dof_indices(const CellIterator &cell, unsigned int indices[]) const =0
Returns the global indices of dofs associated to the cell.
int el_index(int loc_el) const
Returns the global index of local element.
unsigned int lsize_
Number of dofs associated to local process.
FiniteElement< dim, 3 > * fe() const
const unsigned int loffset() const
Returns the offset of the local part of dofs.
const unsigned int offset() const
Returns the number of the first global dof handled by this DOFHandler.
Mesh * mesh_
Pointer to the mesh to which the dof handler is associated.
int nb_index(int loc_nb) const
Returns the global index of local neighbour.
Provides the numbering of the finite element degrees of freedom on the computational mesh...
ElementFullIter CellIterator
Alias for iterator over cells.
void make_elem_partitioning()
Prepare parallel distribution of elements, edges and neighbours.
Distribution * ds_
Distribution of dofs associated to local process.
int *** object_dofs
Number of dofs associated to geometrical entities.
unsigned int n_loc_edges() const
Returns number of local edges.
virtual void get_dof_values(const CellIterator &cell, const Vec &values, double local_values[]) const =0
Returns the dof values associated to the cell.
Support classes for parallel programing.
FiniteElement< 2, 3 > * fe2d_
unsigned int loffset_
Index of the first dof on the local process.
void get_dof_indices(const CellIterator &cell, unsigned int indices[]) const override
Returns the global indices of dofs associated to the cell.
~DOFHandlerMultiDim() override
Destructor.
unsigned int n_dofs
Number of global dofs assigned by the handler.
int * row_4_el
Global element index -> index according to partitioning.
void get_dof_values(const CellIterator &cell, const Vec &values, double local_values[]) const override
Returns the dof values associated to the cell.
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
bool el_is_local(int index) const
int edge_index(int loc_edg) const
Returns the global index of local edge.
vector< int > nb_4_loc
Local neighbour index -> global neighbour index.
Distribution * distr() const
int * el_4_loc
Local element index -> global element index.
DOFHandlerBase(Mesh &_mesh)
Constructor.
const unsigned int n_global_dofs() const
Getter for the number of all mesh dofs required by the given finite element.