1. Introduction#

The keyword SOLVEUR “MATR_DISTRIBUEE” indicates whether the matrix of the linear problem to be solved is complete on all processors (MATR_DISTRIBUEE =” NON “), or spread across these processors (MATR_DISTRIBUEE =” OUI”). In both cases, the second member vector is complete on all processors.

The mesh distribution per processor is defined in the model. There are several possible ways to perform this distribution: the keyword PARALLELISMEqui selects the type of distribution.

Each processor assembles the elementary contributions of the degrees of freedom that it has, that is to say the degrees of freedom that belong to the cells that have been assigned to it. Since meshes (and not degrees of freedom) have been partitioned, a degree of freedom can be possessed by several processors.

Each processor therefore assembles a block of the total matrix. Each degree of freedom has a local index (on this processor) and a global index (in the global model).

When using a PETSc solver, you pass it a Mat object, which is a distributed matrix with the distribution model expected by PETSc. This distribution is a distribution by blocks of matrix rows. A new distribution of the values of the matrix is therefore carried out between the processors available for the calculation in order to build a distributed matrix of type PETSc. Each degree of freedom therefore has in addition to its local index and its global index (in the Aster model) a global index in the matrix PETSc.

The purpose of this documentation is to explain these different numberings using a simple example. It complements the documentation [D4.01.03].