16#ifndef dealii_mesh_worker_dof_info_h
17#define dealii_mesh_worker_dof_info_h
38 template <
int dim,
class DOFINFO>
73 template <
int dim,
int spacedim = dim,
typename number =
double>
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);
191 template <
class DHCellIterator>
219 template <
int dim,
class DOFINFO>
251 template <
class ASSEMBLER>
289 template <
int dim,
int spacedim,
typename number>
298 template <
int dim,
int spacedim,
typename number>
305 std::vector<types::global_dof_index> aux(1);
311 template <
int dim,
int spacedim,
typename number>
312 template <
class DHCellIterator>
316 indices.resize(c->get_fe().n_dofs_per_cell());
318 c->get_active_or_mg_dof_indices(
indices);
328 template <
int dim,
int spacedim,
typename number>
329 template <
class DHCellIterator>
346 template <
int dim,
int spacedim,
typename number>
347 template <
class DHFaceIterator>
350 const unsigned int face_no)
358 template <
int dim,
int spacedim,
typename number>
359 template <
class DHCellIterator,
class DHFaceIterator>
362 const DHFaceIterator &f,
363 const unsigned int face_no)
380 template <
int dim,
int spacedim,
typename number>
381 template <
class DHFaceIterator>
384 const unsigned int face_no,
385 const unsigned int subface_no)
393 template <
int dim,
int spacedim,
typename number>
394 template <
class DHCellIterator,
class DHFaceIterator>
397 const DHFaceIterator &f,
398 const unsigned int face_no,
399 const unsigned int subface_no)
417 template <
int dim,
int spacedim,
typename number>
428 template <
int dim,
class DOFINFO>
443 template <
int dim,
class DOFINFO>
459 template <
int dim,
class DOFINFO>
476 template <
int dim,
class DOFINFO>
489 template <
int dim,
class DOFINFO>
490 template <
class ASSEMBLER>
497 assembler.assemble(
cell);
A small class collecting the different BlockIndices involved in global, multilevel and local computat...
const FiniteElement< dim, spacedim > & get_fe(const types::fe_index index=0) const
unsigned int n_dofs_per_cell() const
DOFINFO interior[GeometryInfo< dim >::faces_per_cell]
void assemble(ASSEMBLER &ass) const
bool exterior_face_available[GeometryInfo< dim >::faces_per_cell]
bool interior_face_available[GeometryInfo< dim >::faces_per_cell]
DOFINFO exterior[GeometryInfo< dim >::faces_per_cell]
DoFInfoBox & operator=(const DoFInfoBox< dim, DOFINFO > &)
DoFInfoBox(const DOFINFO &seed)
void set_face(const DHFaceIterator &f, const unsigned int face_no)
std::vector< types::global_dof_index > indices_org
Auxiliary vector.
BlockIndices aux_local_indices
DoFInfo(const BlockInfo &block_info)
std::vector< types::global_dof_index > indices
void set_subface(const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no)
void set_block_indices()
Set up local block indices.
const BlockIndices & local_indices() const
void get_indices(const DHCellIterator &c)
Fill index vector with active indices.
Triangulation< dim, spacedim >::face_iterator face
The current face.
std::vector< std::vector< types::global_dof_index > > indices_by_block
SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
The block structure of the system.
void reinit(const DHCellIterator &c)
Triangulation< dim, spacedim >::cell_iterator cell
The current cell.
void reinit(const BlockIndices &local_sizes)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
TriaIterator< TriaAccessor< dim - 1, dim, spacedim > > face_iterator
TriaIterator< CellAccessor< dim, spacedim > > cell_iterator
@ valid
Iterator points to a valid object.
static const unsigned int invalid_unsigned_int
static constexpr unsigned int faces_per_cell
static std_cxx20::ranges::iota_view< unsigned int, unsigned int > face_indices()