17 #ifndef dealii_mesh_worker_dof_info_h 18 #define dealii_mesh_worker_dof_info_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/base/quadrature_lib.h> 24 #include <deal.II/dofs/block_info.h> 26 #include <deal.II/fe/fe_values.h> 28 #include <deal.II/meshworker/local_results.h> 29 #include <deal.II/meshworker/vector_selector.h> 33 DEAL_II_NAMESPACE_OPEN
37 template <
int dim,
class DOFINFO>
73 template <
int dim,
int spacedim = dim,
typename number =
double>
103 std::vector<types::global_dof_index> indices;
125 template <
class DHCellIterator>
127 reinit(
const DHCellIterator &c);
132 template <
class DHCellIterator,
class DHFaceIterator>
134 reinit(
const DHCellIterator &c,
135 const DHFaceIterator &f,
136 const unsigned int face_no);
141 template <
class DHCellIterator,
class DHFaceIterator>
143 reinit(
const DHCellIterator &c,
144 const DHFaceIterator &f,
145 const unsigned int face_no,
146 const unsigned int subface_no);
152 template <
class DHFaceIterator>
154 set_face(
const DHFaceIterator &f,
const unsigned int face_no);
160 template <
class DHFaceIterator>
163 const unsigned int face_no,
164 const unsigned int subface_no);
167 local_indices()
const;
191 template <
class DHCellIterator>
220 template <
int dim,
class DOFINFO>
246 template <
class ASSEMBLER>
248 assemble(ASSEMBLER &ass)
const;
284 template <
int dim,
int spacedim,
typename number>
293 template <
int dim,
int spacedim,
typename number>
300 std::vector<types::global_dof_index> aux(1);
301 aux[0] = dof_handler.
get_fe().dofs_per_cell;
306 template <
int dim,
int spacedim,
typename number>
307 template <
class DHCellIterator>
311 indices.resize(c->get_fe().dofs_per_cell);
313 c->get_active_or_mg_dof_indices(indices);
323 template <
int dim,
int spacedim,
typename number>
324 template <
class DHCellIterator>
341 template <
int dim,
int spacedim,
typename number>
342 template <
class DHFaceIterator>
345 const unsigned int face_no)
353 template <
int dim,
int spacedim,
typename number>
354 template <
class DHCellIterator,
class DHFaceIterator>
357 const DHFaceIterator &f,
358 const unsigned int face_no)
375 template <
int dim,
int spacedim,
typename number>
376 template <
class DHFaceIterator>
379 const unsigned int face_no,
380 const unsigned int subface_no)
388 template <
int dim,
int spacedim,
typename number>
389 template <
class DHCellIterator,
class DHFaceIterator>
392 const DHFaceIterator &f,
393 const unsigned int face_no,
394 const unsigned int subface_no)
412 template <
int dim,
int spacedim,
typename number>
423 template <
int dim,
class DOFINFO>
428 for (
unsigned int i = 0; i < GeometryInfo<dim>::faces_per_cell; ++i)
438 template <
int dim,
class DOFINFO>
444 for (
unsigned int i = 0; i < GeometryInfo<dim>::faces_per_cell; ++i)
454 template <
int dim,
class DOFINFO>
459 for (
unsigned int i = 0; i < GeometryInfo<dim>::faces_per_cell; ++i)
467 template <
int dim,
class DOFINFO>
468 template <
class ASSEMBLER>
475 assembler.assemble(
cell);
476 for (
unsigned int i = 0; i < GeometryInfo<dim>::faces_per_cell; ++i)
493 DEAL_II_NAMESPACE_CLOSE
SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
The block structure of the system.
void get_indices(const DHCellIterator &c)
Fill index vector with active indices.
Triangulation< dim, spacedim >::cell_iterator cell
The current cell.
static const unsigned int invalid_unsigned_int
std::vector< types::global_dof_index > indices_org
Auxiliary vector.
void set_block_indices()
Set up local block indices.
bool exterior_face_available[GeometryInfo< dim >::faces_per_cell]
BlockIndices aux_local_indices
void set_subface(const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
bool interior_face_available[GeometryInfo< dim >::faces_per_cell]
void assemble(ASSEMBLER &ass) const
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
DoFInfoBox(const DOFINFO &seed)
std::vector< std::vector< types::global_dof_index > > indices_by_block
const FiniteElement< dim, spacedim > & get_fe(const unsigned int index=0) const
void reinit(const BlockIndices &local_sizes)
DOFINFO interior[GeometryInfo< dim >::faces_per_cell]
A small class collecting the different BlockIndices involved in global, multilevel and local computat...
Iterator points to a valid object.
DOFINFO exterior[GeometryInfo< dim >::faces_per_cell]
Triangulation< dim, spacedim >::face_iterator face
The current face.
TriaIterator< CellAccessor< dim, spacedim >> cell_iterator
void reinit(const DHCellIterator &c)
void set_face(const DHFaceIterator &f, const unsigned int face_no)