17 #ifndef __deal2__dof_accessor_h 18 #define __deal2__dof_accessor_h 21 #include <deal.II/base/config.h> 22 #include <deal.II/grid/tria_accessor.h> 23 #include <deal.II/dofs/dof_handler.h> 24 #include <deal.II/hp/dof_handler.h> 32 template <
typename number>
class Vector;
44 struct Implementation;
49 struct Implementation;
52 struct Implementation;
60 struct Implementation;
92 template <
int structdim,
int dim,
int spacedim>
100 typedef ::TriaAccessor<structdim,dim,spacedim>
BaseClass;
109 template <
int dim,
int spacedim>
188 template <
int structdim,
class DH,
bool level_dof_access>
198 static const unsigned int dimension=DH::dimension;
205 static const unsigned int space_dimension=DH::space_dimension;
214 typename ::internal::DoFAccessor::Inheritance<structdim, dimension, space_dimension>::BaseClass
242 const DH *local_data);
265 template <
int structdim2,
int dim2,
int spacedim2>
274 template <
int dim2,
class DH2,
bool level_dof_access2>
282 template <
bool level_dof_access2>
294 get_dof_handler ()
const;
300 template <
bool level_dof_access2>
317 static bool is_level_cell();
338 child (
const unsigned int c)
const;
349 typename ::internal::DoFHandler::Iterators<DH, level_dof_access>::line_iterator
350 line (
const unsigned int i)
const;
361 typename ::internal::DoFHandler::Iterators<DH, level_dof_access>::quad_iterator
362 quad (
const unsigned int i)
const;
412 void get_dof_indices (std::vector<types::global_dof_index> &dof_indices,
413 const unsigned int fe_index = DH::default_fe_index)
const;
421 void get_mg_dof_indices (
const int level,
422 std::vector<types::global_dof_index> &dof_indices,
423 const unsigned int fe_index = DH::default_fe_index)
const;
428 void set_mg_dof_indices (
const int level,
429 const std::vector<types::global_dof_index> &dof_indices,
430 const unsigned int fe_index = DH::default_fe_index);
469 const unsigned int i,
470 const unsigned int fe_index = DH::default_fe_index)
const;
478 const unsigned int vertex,
479 const unsigned int i,
480 const unsigned int fe_index = DH::default_fe_index)
const;
537 const unsigned int fe_index = DH::default_fe_index)
const;
576 n_active_fe_indices ()
const;
593 nth_active_fe_index (
const unsigned int n)
const;
613 fe_index_is_active (
const unsigned int fe_index)
const;
624 get_fe (
const unsigned int fe_index)
const;
701 template <
int dim2,
class DH2,
bool level_dof_access2>
708 template <
int dim2,
class DH2,
bool level_dof_access2>
714 void set_dof_handler (DH *dh);
752 void set_dof_index (
const unsigned int i,
754 const unsigned int fe_index = DH::default_fe_index)
const;
794 void set_vertex_dof_index (
const unsigned int vertex,
795 const unsigned int i,
797 const unsigned int fe_index = DH::default_fe_index)
const;
799 void set_mg_vertex_dof_index (
const int level,
const unsigned int vertex,
const unsigned int i,
const types::global_dof_index index,
const unsigned int fe_index = DH::default_fe_index)
const;
807 template <
int,
class,
bool>
friend class DoFAccessor;
838 friend struct ::internal::DoFHandler::Policy::Implementation;
839 friend struct ::internal::DoFHandler::Implementation;
840 friend struct ::internal::hp::DoFHandler::Implementation;
841 friend struct ::internal::DoFCellAccessor::Implementation;
842 friend struct ::internal::DoFAccessor::Implementation;
857 template <
template <
int,
int>
class DH,
int spacedim,
bool level_dof_access>
867 static const unsigned int dimension=1;
874 static const unsigned int space_dimension=spacedim;
937 const unsigned int vertex_index,
938 const DH<1,spacedim> *dof_handler);
952 const DH<1,spacedim> *dof_handler = 0);
975 template <
int structdim2,
int dim2,
int spacedim2>
984 template <
int dim2,
class DH2,
bool level_dof_access2>
996 const DH<1,spacedim> &
997 get_dof_handler ()
const;
1003 operator = (
const DoFAccessor<0,DH<1,spacedim>, level_dof_access> &da);
1009 template <
bool level_dof_access2>
1010 void copy_from (
const DoFAccessor<0, DH<1,spacedim>, level_dof_access2> &a);
1040 child (
const unsigned int c)
const;
1051 typename ::internal::DoFHandler::Iterators<DH<1,spacedim>, level_dof_access>::line_iterator
1052 line (
const unsigned int i)
const;
1063 typename ::internal::DoFHandler::Iterators<DH<1,spacedim>, level_dof_access>::quad_iterator
1064 quad (
const unsigned int i)
const;
1135 void get_dof_indices (std::vector<types::global_dof_index> &dof_indices,
1136 const unsigned int fe_index = AccessorData::default_fe_index)
const;
1175 const unsigned int i,
1176 const unsigned int fe_index = AccessorData::default_fe_index)
const;
1233 const unsigned int fe_index = AccessorData::default_fe_index)
const;
1267 n_active_fe_indices ()
const;
1284 nth_active_fe_index (
const unsigned int n)
const;
1304 fe_index_is_active (
const unsigned int fe_index)
const;
1315 get_fe (
const unsigned int fe_index)
const;
1371 template <
int dim2,
class DH2,
bool level_dof_access2>
1377 template <
int dim2,
class DH2,
bool level_dof_access2>
1383 void set_dof_handler (DH<1,spacedim> *dh);
1421 void set_dof_index (
const unsigned int i,
1423 const unsigned int fe_index = AccessorData::default_fe_index)
const;
1461 void set_vertex_dof_index (
const unsigned int vertex,
1462 const unsigned int i,
1464 const unsigned int fe_index = AccessorData::default_fe_index)
const;
1482 friend struct ::internal::DoFHandler::Policy::Implementation;
1483 friend struct ::internal::DoFHandler::Implementation;
1484 friend struct ::internal::hp::DoFHandler::Implementation;
1485 friend struct ::internal::DoFCellAccessor::Implementation;
1504 template <
class DH,
bool level_dof_access>
1511 static const unsigned int dim = DH::dimension;
1516 static const unsigned int spacedim = DH::space_dimension;
1551 const AccessorData *local_data);
1574 template <
int structdim2,
int dim2,
int spacedim2>
1583 template <
int dim2,
class DH2,
bool level_dof_access2>
1620 neighbor (
const unsigned int)
const;
1632 child (
const unsigned int)
const;
1643 face (
const unsigned int i)
const;
1657 neighbor_child_on_subface (
const unsigned int face_no,
1658 const unsigned int subface_no)
const;
1699 template <
class InputVector,
typename number>
1700 void get_dof_values (
const InputVector &values,
1731 template <
class InputVector,
typename ForwardIterator>
1732 void get_dof_values (
const InputVector &values,
1733 ForwardIterator local_values_begin,
1734 ForwardIterator local_values_end)
const;
1767 template <
class InputVector,
typename ForwardIterator>
1769 const InputVector &values,
1770 ForwardIterator local_values_begin,
1771 ForwardIterator local_values_end)
const;
1807 template <
class OutputVector,
typename number>
1809 OutputVector &values)
const;
1843 template <
class InputVector,
typename number>
1844 void get_interpolated_dof_values (
const InputVector &values,
1936 template <
class OutputVector,
typename number>
1937 void set_dof_values_by_interpolation (
const Vector<number> &local_values,
1938 OutputVector &values)
const;
1956 template <
typename number,
typename OutputVector>
1959 OutputVector &global_destination)
const;
1974 template <
typename ForwardIterator,
typename OutputVector>
1976 distribute_local_to_global (ForwardIterator local_source_begin,
1977 ForwardIterator local_source_end,
1978 OutputVector &global_destination)
const;
1998 template <
typename ForwardIterator,
typename OutputVector>
2001 ForwardIterator local_source_begin,
2002 ForwardIterator local_source_end,
2003 OutputVector &global_destination)
const;
2016 template <
typename number,
typename OutputMatrix>
2019 OutputMatrix &global_destination)
const;
2027 template <
typename number,
typename OutputMatrix,
typename OutputVector>
2031 OutputMatrix &global_matrix,
2032 OutputVector &global_vector)
const;
2062 void get_active_or_mg_dof_indices (std::vector<types::global_dof_index> &dof_indices)
const;
2097 void get_dof_indices (std::vector<types::global_dof_index> &dof_indices)
const;
2105 void get_mg_dof_indices (std::vector<types::global_dof_index> &dof_indices)
const;
2137 unsigned int active_fe_index ()
const;
2143 void set_active_fe_index (
const unsigned int i);
2155 void set_dof_indices (
const std::vector<types::global_dof_index> &dof_indices);
2161 void set_mg_dof_indices (
const std::vector<types::global_dof_index> &dof_indices);
2168 void update_cell_dof_indices_cache ()
const;
2198 friend struct ::internal::DoFCellAccessor::Implementation;
2202 template <
int sd,
class DH,
bool lda>
2212 DEAL_II_NAMESPACE_CLOSE
2215 #include "dof_accessor.templates.h" ::TriaAccessor< structdim, dim, spacedim > BaseClass
DH< 1, spacedim > * dof_handler
DoFAccessor< structdim, DH, level_dof_access > & operator=(const DoFAccessor< structdim, DH, level_dof_access > &da)
typename::internal::DoFAccessor::Inheritance< structdim, dimension, space_dimension >::BaseClass BaseClass
DH< 1, spacedim > AccessorData
unsigned int global_dof_index
#define DeclException0(Exception0)
DoFAccessor< DH::dimension, DH, level_dof_access > BaseClass
::CellAccessor< dim, spacedim > BaseClass
static bool is_level_cell()
TriaAccessor< 0, 1, spacedim > BaseClass