![]() |
Reference documentation for deal.II version 8.1.0
|
#include <dof_info.h>
Public Member Functions | |
DoFInfo (const BlockInfo &block_info) | |
DoFInfo (const DoFHandler< dim, spacedim > &dof_handler) | |
template<class DHCellIterator > | |
void | reinit (const DHCellIterator &c) |
template<class DHCellIterator , class DHFaceIterator > | |
void | reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no) |
template<class DHCellIterator , class DHFaceIterator > | |
void | reinit (const DHCellIterator &c, const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no) |
template<class DHFaceIterator > | |
void | set_face (const DHFaceIterator &f, const unsigned int face_no) |
template<class DHFaceIterator > | |
void | set_subface (const DHFaceIterator &f, const unsigned int face_no, const unsigned int subface_no) |
const BlockIndices & | local_indices () const |
![]() | |
unsigned int | n_values () const |
unsigned int | n_vectors () const |
unsigned int | n_matrices () const |
unsigned int | n_quadrature_points () const |
unsigned int | n_quadrature_values () const |
number & | value (unsigned int i) |
number | value (unsigned int i) const |
BlockVector< number > & | vector (unsigned int i) |
const BlockVector< number > & | vector (unsigned int i) const |
MatrixBlock< FullMatrix< number > > & | matrix (unsigned int i, bool external=false) |
const MatrixBlock< FullMatrix< number > > & | matrix (unsigned int i, bool external=false) const |
Table< 2, number > & | quadrature_values () |
number & | quadrature_value (unsigned int k, unsigned int i) |
number | quadrature_value (unsigned int k, unsigned int i) const |
void | initialize_numbers (const unsigned int n) |
void | initialize_vectors (const unsigned int n) |
void | initialize_matrices (unsigned int n, bool both) |
template<class MATRIX > | |
void | initialize_matrices (const MatrixBlockVector< MATRIX > &matrices, bool both) |
template<class MATRIX > | |
void | initialize_matrices (const MGMatrixBlockVector< MATRIX > &matrices, bool both) |
void | initialize_quadrature (unsigned int np, unsigned int nv) |
void | reinit (const BlockIndices &local_sizes) |
template<class STREAM > | |
void | print_debug (STREAM &os) const |
std::size_t | memory_consumption () const |
Public Attributes | |
Triangulation< dim, spacedim >::cell_iterator | cell |
The current cell. | |
Triangulation< dim, spacedim >::face_iterator | face |
The current face. | |
unsigned int | face_number |
unsigned int | sub_number |
std::vector< types::global_dof_index > | indices |
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. | |
bool | level_cell |
Private Member Functions | |
DoFInfo () | |
void | set_block_indices () |
Set up local block indices. | |
template<class DHCellIterator > | |
void | get_indices (const DHCellIterator &c) |
Fill index vector with active indices. | |
Private Attributes | |
std::vector< types::global_dof_index > | indices_org |
Auxiliary vector. | |
BlockIndices | aux_local_indices |
Friends | |
class | DoFInfoBox< dim, DoFInfo< dim, spacedim, number > > |
A class containing information on geometry and degrees of freedom of a mesh object.
The information in these objects is usually used by one of the Assembler classes. It is also the kind of information which is needed in mesh based matrices (often referred to as matrix free methods).
In addition to the information on degrees of freedom stored in this class, it also provides the local computation space for the worker object operating on it in LocalResults. This base class will automatically be reinitialized on each cell, but initial setup is up to the user and should be done when initialize() for this class is called.
This class operates in two different modes, corresponding to the data models discussed in the Assembler namespace documentation.
The choice of the local data model is triggered by the vector BlockInfo::local_renumbering, which in turn is usually filled by BlockInfo::initialize_local(). If this function has been used, or the vector has been changed from zero-length, then local dof indices stored in this object will automatically be renumbered to reflect local block structure. This means, the first entries in indices
will refer to the first block of the system, then comes the second block and so on.
The BlockInfo object is stored as a pointer. Therefore, if the block structure changes, for instance because of mesh refinement, the DoFInfo class will automatically use the new structures.
Definition at line 69 of file dof_info.h.
MeshWorker::DoFInfo< dim, spacedim, number >::DoFInfo | ( | const BlockInfo & | block_info | ) |
Constructor setting the block_info pointer.
Definition at line 26 of file dof_info.templates.h.
MeshWorker::DoFInfo< dim, spacedim, number >::DoFInfo | ( | const DoFHandler< dim, spacedim > & | dof_handler | ) |
Constructor leaving the block_info pointer empty, but setting the aux_local_indices.
Definition at line 288 of file dof_info.h.
|
private |
Standard constructor, not setting any block indices. Use of this constructor is not recommended, but it is needed for the arrays in DoFInfoBox.
Definition at line 36 of file dof_info.templates.h.
|
inline |
Set the current cell and fill indices
.
Definition at line 316 of file dof_info.h.
|
inline |
Set the current face and fill indices
if the cell changed.
Definition at line 347 of file dof_info.h.
|
inline |
Set the current subface and fill indices
if the cell changed.
Definition at line 384 of file dof_info.h.
|
inline |
Switch to a new face of the same cell. Does not change indices
and does not reset data in LocalResults.
Definition at line 334 of file dof_info.h.
|
inline |
Switch to a new subface of the same cell. Does not change indices
and does not reset data in LocalResults.
Definition at line 370 of file dof_info.h.
unsigned int MeshWorker::DoFInfo< dim, spacedim, number >::face_number |
The number of the current face on the current cell.
This number is deal_II_numbers::invalid_unsigned_int if the info object was initialized with a cell.
Definition at line 88 of file dof_info.h.
unsigned int MeshWorker::DoFInfo< dim, spacedim, number >::sub_number |
The number of the current subface on the current face
This number is deal_II_numbers::invalid_unsigned_int if the info object was not initialized with a subface.
Definition at line 99 of file dof_info.h.
std::vector<std::vector<types::global_dof_index> > MeshWorker::DoFInfo< dim, spacedim, number >::indices_by_block |
The DoF indices on the current cell, organized by local blocks. The size of this vector is zero, unless local blocks are used.
Definition at line 111 of file dof_info.h.
|
private |
An auxiliary local BlockIndices object created if block_info is not set. It contains just a single block of the size of degrees of freedom per cell.
Definition at line 201 of file dof_info.h.