Public Member Functions | |
| MatrixLocalBlocksToGlobalBlocks (double threshold=1.e-12) | |
| void | initialize (const BlockInfo *block_info, MatrixBlockVector< MATRIX > &matrices) |
| void | initialize (const ConstraintMatrix &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< MATRIX > &global, const FullMatrix< number > &local, unsigned int block_row, unsigned int block_col, const std::vector< unsigned int > &dof1, const std::vector< unsigned int > &dof2) |
Private Attributes | |
| SmartPointer < MatrixBlockVector< MATRIX > , MatrixLocalBlocksToGlobalBlocks < MATRIX, number > > | matrices |
| SmartPointer< const BlockInfo, MatrixLocalBlocksToGlobalBlocks < MATRIX, number > > | block_info |
| SmartPointer< const ConstraintMatrix, MatrixLocalBlocksToGlobalBlocks < MATRIX, 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 208 of file assembler.h.
| MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::MatrixLocalBlocksToGlobalBlocks | ( | double | threshold = 1.e-12 | ) | [inline] |
Constructor, initializing the threshold, which limits how small numbers may be to be entered into the matrix.
Definition at line 656 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::initialize | ( | const BlockInfo * | block_info, |
| MatrixBlockVector< MATRIX > & | matrices | ||
| ) | [inline] |
Copy the BlockInfo and the matrix pointers into local variables and initialize cell matrix vectors.
Definition at line 665 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::initialize | ( | const ConstraintMatrix & | constraints | ) | [inline] |
Initialize the constraints.
Definition at line 677 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::initialize_info | ( | DOFINFO & | info, |
| bool | face | ||
| ) | const [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 688 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::assemble | ( | const DOFINFO & | info | ) | [inline] |
Assemble the local matrices into the global matrices.
Definition at line 747 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::assemble | ( | const DOFINFO & | info1, |
| const DOFINFO & | info2 | ||
| ) | [inline] |
Assemble all local matrices into the global matrices.
Definition at line 765 of file assembler.h.
| void MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::assemble | ( | MatrixBlock< MATRIX > & | global, |
| const FullMatrix< number > & | local, | ||
| unsigned int | block_row, | ||
| unsigned int | block_col, | ||
| const std::vector< unsigned int > & | dof1, | ||
| const std::vector< unsigned int > & | dof2 | ||
| ) | [inline, private] |
Assemble a single local matrix into a global one.
Definition at line 699 of file assembler.h.
References MatrixBlock< MATRIX >::add(), BlockIndices::block_size(), and BlockIndices::block_start().
SmartPointer<MatrixBlockVector<MATRIX>, MatrixLocalBlocksToGlobalBlocks<MATRIX, number> > MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::matrices [private] |
The global matrices, stored as a vector of pointers.
Definition at line 284 of file assembler.h.
SmartPointer<const BlockInfo, MatrixLocalBlocksToGlobalBlocks<MATRIX, number> > MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::block_info [private] |
A pointer to the object containing the block structure.
Definition at line 290 of file assembler.h.
SmartPointer<const ConstraintMatrix, MatrixLocalBlocksToGlobalBlocks<MATRIX,number> > MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::constraints [private] |
A pointer to the object containing constraints.
Definition at line 295 of file assembler.h.
const double MeshWorker::Assembler::MatrixLocalBlocksToGlobalBlocks< MATRIX, number >::threshold [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 306 of file assembler.h.
documentation generated on Thu May 17 2012 20:05:33 by
doxygen
1.7.3