deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
#include <deal.II/meshworker/assembler.h>
Public Member Functions | |
MatrixLocalBlocksToGlobalBlocks (double threshold=1.e-12) | |
void | initialize (const BlockInfo *block_info, MatrixBlockVector< MatrixType > &matrices) |
void | initialize (const AffineConstraints< typename MatrixType::value_type > &constraints) |
template<class DOFINFO > | |
void | initialize_info (DOFINFO &info, bool face) const |
template<class DOFINFO > | |
void | assemble (const DOFINFO &info) |
template<class DOFINFO > | |
void | assemble (const DOFINFO &info1, const DOFINFO &info2) |
Private Member Functions | |
void | assemble (MatrixBlock< MatrixType > &global, const FullMatrix< number > &local, const unsigned int block_row, const unsigned int block_col, const std::vector< types::global_dof_index > &dof1, const std::vector< types::global_dof_index > &dof2) |
Private Attributes | |
ObserverPointer< MatrixBlockVector< MatrixType >, MatrixLocalBlocksToGlobalBlocks< MatrixType, number > > | matrices |
ObserverPointer< const BlockInfo, MatrixLocalBlocksToGlobalBlocks< MatrixType, number > > | block_info |
ObserverPointer< const AffineConstraints< typename MatrixType::value_type >, MatrixLocalBlocksToGlobalBlocks< MatrixType, number > > | constraints |
const double | threshold |
A helper class assembling local matrices into global matrices.
The global matrices are expected as a vector of MatrixBlock objects, each containing a matrix object with a function corresponding to SparseMatrix::add() and information on the block row and column this matrix represents in a block system.
The local matrices are expected as a similar vector of MatrixBlock objects, but containing a FullMatrix.
Like with ResidualLocalBlocksToGlobalBlocks, the initialization of the BlockInfo object decides whether the comprehensive data model or the block model is used.
In the comprehensive model, each of the LocalMatrixBlocks has coordinates (0,0) and dimensions equal to the number of degrees of freedom of the FESystem.
In the comprehensive model, each block has its own block coordinates and the size depends on the associated FESystem::base_element(). These blocks can be generated separately and will be assembled into the correct matrix block by this object.
Definition at line 210 of file assembler.h.
|
inline |
Constructor, initializing the threshold, which limits how small numbers may be to be entered into the matrix.
Definition at line 621 of file assembler.h.
|
inline |
Copy the BlockInfo and the matrix pointers into local variables and initialize cell matrix vectors.
Definition at line 629 of file assembler.h.
|
inline |
Initialize the constraints.
Definition at line 641 of file assembler.h.
|
inline |
Initialize the local data in the DoFInfo object used later for assembling.
The info
object refers to a cell if !face
, or else to an interior or boundary face.
Definition at line 652 of file assembler.h.
|
inline |
Assemble the local matrices into the global matrices.
Definition at line 717 of file assembler.h.
|
inline |
Assemble all local matrices into the global matrices.
Definition at line 740 of file assembler.h.
|
inlineprivate |
Assemble a single local matrix into a global one.
Definition at line 663 of file assembler.h.
|
private |
The global matrices, stored as a vector of pointers.
Definition at line 277 of file assembler.h.
|
private |
A pointer to the object containing the block structure.
Definition at line 284 of file assembler.h.
|
private |
A pointer to the object containing constraints.
Definition at line 291 of file assembler.h.
|
private |
The smallest positive number that will be entered into the global matrix. All smaller absolute values will be treated as zero and will not be assembled.
Definition at line 298 of file assembler.h.