![]() |
deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
|
#include <deal.II/meshworker/dof_info.h>
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 72 of file 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 (const unsigned int i) |
| number | value (const unsigned int i) const |
| BlockVector< number > & | vector (const unsigned int i) |
| const BlockVector< number > & | vector (const unsigned int i) const |
| MatrixBlock< FullMatrix< number > > & | matrix (const unsigned int i, const bool external=false) |
| const MatrixBlock< FullMatrix< number > > & | matrix (const unsigned int i, const bool external=false) const |
| Table< 2, number > & | quadrature_values () |
| number & | quadrature_value (const unsigned int k, const unsigned int i) |
| number | quadrature_value (const unsigned int k, const unsigned int i) const |
| void | initialize_numbers (const unsigned int n) |
| void | initialize_vectors (const unsigned int n) |
| void | initialize_matrices (const unsigned int n, bool both) |
| template<typename MatrixType > | |
| void | initialize_matrices (const MatrixBlockVector< MatrixType > &matrices, bool both) |
| template<typename MatrixType > | |
| void | initialize_matrices (const MGMatrixBlockVector< MatrixType > &matrices, bool both) |
| void | initialize_quadrature (const unsigned int np, const unsigned int nv) |
| void | reinit (const BlockIndices &local_sizes) |
| template<typename StreamType > | |
| void | print_debug (StreamType &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 |
| ObserverPointer< 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 |
| std::vector< number > | J |
| std::vector< BlockVector< number > > | R |
| std::vector< MatrixBlock< FullMatrix< number > > > | M1 |
| std::vector< MatrixBlock< FullMatrix< number > > > | M2 |
| Table< 2, number > | quadrature_data |
Friends | |
| class | DoFInfoBox< dim, DoFInfo< dim, spacedim, number > > |
|
inline |
Constructor setting the block_info pointer.
Definition at line 427 of file dof_info.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 297 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 288 of file dof_info.h.
|
inline |
Set the current cell and fill indices.
Definition at line 329 of file dof_info.h.
|
inline |
Set the current face and fill indices if the cell changed.
Definition at line 359 of file dof_info.h.
|
inline |
Set the current subface and fill indices if the cell changed.
Definition at line 394 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 347 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 381 of file dof_info.h.
|
inline |
Definition at line 417 of file dof_info.h.
|
inlineprivate |
Set up local block indices.
Definition at line 442 of file dof_info.h.
|
inlineprivate |
Fill index vector with active indices.
Definition at line 312 of file dof_info.h.
|
inlineinherited |
The number of scalar values stored by the current object.
This number is set to a nonzero value by Assembler::CellsAndFaces
Definition at line 389 of file local_results.h.
|
inlineinherited |
The number of vectors stored by the current object.
This number is set to a nonzero value by Assembler::ResidualSimple and Assembler::ResidualLocalBlocksToGlobalBlocks.
Definition at line 397 of file local_results.h.
|
inlineinherited |
The number of matrices stored by the current object.
Definition at line 405 of file local_results.h.
|
inlineinherited |
The number of quadrature points in quadrature_values().
Definition at line 413 of file local_results.h.
|
inlineinherited |
The number of values in each quadrature point in quadrature_values().
Definition at line 421 of file local_results.h.
|
inlineinherited |
Read-write access to the ith scalar stored by this class.
Definition at line 429 of file local_results.h.
|
inlineinherited |
Read access to the ith scalar stored by this class.
Definition at line 478 of file local_results.h.
|
inlineinherited |
Read-write access to the ith vector stored by this class
Definition at line 438 of file local_results.h.
|
inlineinherited |
Read-write access to the ith vector stored by this class
Definition at line 487 of file local_results.h.
|
inlineinherited |
Read-write access to the ith matrix stored by this class.
For an explanation of the second argument, see the documentation of the current class itself.
Definition at line 447 of file local_results.h.
|
inlineinherited |
Read access to the ith matrix stored by this class.
For an explanation of the second argument, see the documentation of the current class itself.
Definition at line 496 of file local_results.h.
|
inlineinherited |
Access to the vector quadrature_data of data in quadrature points, organized such that there is a vector for each point, containing one entry for each component.
Definition at line 470 of file local_results.h.
|
inlineinherited |
Access the ith value at quadrature point k
Definition at line 461 of file local_results.h.
|
inlineinherited |
Read the ith value at quadrature point k
Definition at line 510 of file local_results.h.
|
inlineinherited |
Initialize the vector with scalar values.
Definition at line 290 of file local_results.h.
|
inlineinherited |
Initialize the vector with vector values.
Definition at line 298 of file local_results.h.
|
inlineinherited |
Allocate n local matrices. Additionally, set their block row and column coordinates to zero. The matrices themselves are resized by reinit().
Definition at line 359 of file local_results.h.
|
inlineinherited |
Allocate a local matrix for each of the global ones in matrices. Additionally, set their block row and column coordinates. The matrices themselves are resized by reinit().
Definition at line 307 of file local_results.h.
|
inlineinherited |
Allocate a local matrix for each of the global level objects in matrices. Additionally, set their block row and column coordinates. The matrices themselves are resized by reinit().
Definition at line 333 of file local_results.h.
|
inlineinherited |
Initialize quadrature values to nv values in np quadrature points.
Definition at line 380 of file local_results.h.
|
inherited |
Reinitialize matrices for new cell. Does not resize any of the data vectors stored in this object, but resizes the vectors in R and the matrices in M1 and M2 for hp and sets them to zero.
Definition at line 36 of file mesh_worker.cc.
|
inherited |
Definition at line 520 of file local_results.h.
|
inherited |
The memory used by this object.
Definition at line 54 of file mesh_worker.cc.
|
friend |
Definition at line 201 of file dof_info.h.
| Triangulation<dim,spacedim>::cell_iterator MeshWorker::DoFInfo< dim, spacedim, number >::cell |
The current cell.
Definition at line 76 of file dof_info.h.
| Triangulation<dim,spacedim>::face_iterator MeshWorker::DoFInfo< dim, spacedim, number >::face |
The current face.
Definition at line 79 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 numbers::invalid_unsigned_int if the info object was initialized with a cell.
Definition at line 87 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 numbers::invalid_unsigned_int if the info object was not initialized with a subface.
Definition at line 95 of file dof_info.h.
| std::vector<types::global_dof_index> MeshWorker::DoFInfo< dim, spacedim, number >::indices |
The DoF indices of the current cell
Definition at line 101 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 107 of file dof_info.h.
| ObserverPointer<const BlockInfo, DoFInfo<dim, spacedim> > MeshWorker::DoFInfo< dim, spacedim, number >::block_info |
The block structure of the system.
Definition at line 169 of file dof_info.h.
| bool MeshWorker::DoFInfo< dim, spacedim, number >::level_cell |
The structure refers to a cell with level data instead of active data.
Definition at line 174 of file dof_info.h.
|
private |
Auxiliary vector.
Definition at line 194 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.
|
privateinherited |
The local numbers, computed on a cell or on a face.
Definition at line 258 of file local_results.h.
|
privateinherited |
The local vectors. This field is public, so that local integrators can write to it.
Definition at line 264 of file local_results.h.
|
privateinherited |
The local matrices coupling degrees of freedom in the cell itself or within the first cell on a face.
Definition at line 270 of file local_results.h.
|
privateinherited |
The local matrices coupling test functions on the cell with trial functions on the other cell.
Only used on interior faces.
Definition at line 278 of file local_results.h.
|
privateinherited |
Values in quadrature points for writing into patch data.
Definition at line 283 of file local_results.h.