17 #ifndef dealii__mesh_worker_dof_info_h 18 #define dealii__mesh_worker_dof_info_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/quadrature_lib.h> 22 #include <deal.II/base/std_cxx11/shared_ptr.h> 23 #include <deal.II/dofs/block_info.h> 24 #include <deal.II/fe/fe_values.h> 25 #include <deal.II/meshworker/local_results.h> 26 #include <deal.II/meshworker/vector_selector.h> 28 DEAL_II_NAMESPACE_OPEN
67 template<
int dim,
int spacedim = dim,
typename number =
double>
97 std::vector<types::global_dof_index> indices;
119 template <
class DHCellIterator>
120 void reinit(
const DHCellIterator &c);
125 template <
class DHCellIterator,
class DHFaceIterator>
126 void reinit(
const DHCellIterator &c,
127 const DHFaceIterator &f,
128 const unsigned int face_no);
133 template <
class DHCellIterator,
class DHFaceIterator>
134 void reinit(
const DHCellIterator &c,
135 const DHFaceIterator &f,
136 const unsigned int face_no,
137 const unsigned int subface_no);
143 template <
class DHFaceIterator>
144 void set_face (
const DHFaceIterator &f,
145 const unsigned int face_no);
151 template <
class DHFaceIterator>
153 const unsigned int face_no,
154 const unsigned int subface_no);
179 template <
class DHCellIterator>
207 template <
int dim,
class DOFINFO>
232 template <
class ASSEMBLER>
233 void assemble(ASSEMBLER &ass)
const;
274 template <
int dim,
int spacedim,
typename number>
279 std::vector<types::global_dof_index> aux(1);
280 aux[0] = dof_handler.
get_fe().dofs_per_cell;
285 template <
int dim,
int spacedim,
typename number>
286 template <
class DHCellIterator>
290 indices.resize(c->get_fe().dofs_per_cell);
292 c->get_active_or_mg_dof_indices(indices);
302 template <
int dim,
int spacedim,
typename number>
303 template <
class DHCellIterator>
320 template<
int dim,
int spacedim,
typename number>
321 template <
class DHFaceIterator>
324 const DHFaceIterator &f,
325 const unsigned int face_no)
333 template<
int dim,
int spacedim,
typename number>
334 template <
class DHCellIterator,
class DHFaceIterator>
337 const DHCellIterator &c,
338 const DHFaceIterator &f,
339 const unsigned int face_no)
356 template<
int dim,
int spacedim,
typename number>
357 template <
class DHFaceIterator>
360 const DHFaceIterator &f,
361 const unsigned int face_no,
362 const unsigned int subface_no)
370 template<
int dim,
int spacedim,
typename number>
371 template <
class DHCellIterator,
class DHFaceIterator>
374 const DHCellIterator &c,
375 const DHFaceIterator &f,
376 const unsigned int face_no,
377 const unsigned int subface_no)
394 template<
int dim,
int spacedim,
typename number>
405 template <
int dim,
class DOFINFO>
409 cell(seed), cell_valid(true)
411 for (
unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
421 template <
int dim,
class DOFINFO>
427 for (
unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
437 template <
int dim,
class DOFINFO>
442 for (
unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
450 template <
int dim,
class DOFINFO>
451 template <
class ASSEMBLER>
458 assembler.assemble(
cell);
459 for (
unsigned int i=0; i<GeometryInfo<dim>::faces_per_cell; ++i)
476 DEAL_II_NAMESPACE_CLOSE
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.
Auxiliary class aiding in the handling of block structures like in BlockVector or FESystem...
void set_block_indices()
Set up local block indices.
const FiniteElement< dim, spacedim > & get_fe() const
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)
TriaIterator< CellAccessor< dim, spacedim > > cell_iterator
bool interior_face_available[GeometryInfo< dim >::faces_per_cell]
void reinit(const unsigned int n_blocks, const size_type n_elements_per_block)
SmartPointer< const BlockInfo, DoFInfo< dim, spacedim > > block_info
The block structure of the system.
DoFInfoBox(const DOFINFO &seed)
void assemble(ASSEMBLER &ass) const
std::vector< std::vector< types::global_dof_index > > indices_by_block
void reinit(const BlockIndices &local_sizes)
std::size_t memory_consumption() const
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.
void reinit(const DHCellIterator &c)
void set_face(const DHFaceIterator &f, const unsigned int face_no)