deal.II version GIT relicensing-2206-gaa53ff9447 2024-12-02 09:10:00+00:00
|
Classes | |
class | CellsAndFaces |
class | Functional |
class | GnuplotPatch |
class | MatrixLocalBlocksToGlobalBlocks |
class | MatrixSimple |
class | MGMatrixLocalBlocksToGlobalBlocks |
class | MGMatrixSimple |
class | ResidualLocalBlocksToGlobalBlocks |
class | ResidualSimple |
class | SystemSimple |
The namespace containing objects that can be used to assemble data computed on cells and faces into global objects. This can reach from collecting the total error estimate from cell and face contributions to assembling matrices and multilevel matrices.
The class chosen from this namespace determines which data model is used. For the local as well as the global objects, we have the choice between two models:
This is the structure set up by the FESystem class. Globally, this means, data is assembled into one residual vector and into one matrix. These objects may be block vectors and block matrices, but the process of assembling does not care about this.
Similarly, there is only a single cell vector and cell matrix, respectively, which is indexed by all degrees of freedom of the FESystem. When building the cell matrix, it is necessary to distinguish between the different components of the system and select the right operator for each pair.
Here, all the blocks are treated separately (in spite of using FESystem for its convenience in other places). For instance, no block matrix is assembled, but a list of blocks, which can be blocks inside a larger block matrix but, again, the assembly process is unaware of this and does not care. Locally, this means, that each matrix block of a system is generated separately and assembled into the corresponding global block.
This approach is advantageous, if the number of matrices for each block position in the global system is different. For instance, block preconditioners for the Oseen problem require 3 pressure matrices, but only one divergence and one advection-diffusion operator for velocities.
Additionally, this approach enables the construction of a system of equations from building blocks for each equation and coupling operator.
Nevertheless, since a separate FEValues object must be created for each base element, it is not quite clear a priori, which data model is more efficient.