Next: Methods
Up: Data Structures and Classes
Previous: Named Constants
Contents
Sparse Matrix class
The spdatapsb_Tspmat_type class
contains all information about the local portion of the sparse matrix and
its storage mode. Its design is
based on the STATE design pattern [13] as detailed
in [11]; the type declaration is shown in
figure 4 where T
is a placeholder for the
data type and precision variants
- S
- Single precision real;
- D
- Double precision real;
- C
- Single precision complex;
- Z
- Double precision complex.
The actual data is contained in the polymorphic component a%a
of type spbasedatapsb_T_base_sparse_mat; its
specific layout can be chosen dynamically among the predefined types,
or an entirely new storage layout can be implemented and passed to the
library at runtime via the psb_spasb
routine.
Figure 4:
The PSBLAS defined data type that
contains a sparse matrix.
|
The following very common formats are precompiled in PSBLAS and thus
are always available:
- psb_T_coo_sparse_mat
- Coordinate storage;
- psb_T_csr_sparse_mat
- Compressed storage by rows;
- psb_T_csc_sparse_mat
- Compressed storage by columns;
The inner sparse matrix has an associated state, which can take the
following values:
- Build:
- State entered after the first allocation, and before the
first assembly; in this state it is possible to add nonzero entries.
- Assembled:
- State entered after the assembly; computations using
the sparse matrix, such as matrix-vector products, are only possible
in this state;
- Update:
- State entered after a reinitalization; this is used to
handle applications in which the same sparsity pattern is used
multiple times with different coefficients. In this state it is only
possible to enter coefficients for already existing nonzero entries.
The only storage variant supporting the build state is COO; all other
variants are obtained by conversion to/from it.
Subsections
Next: Methods
Up: Data Structures and Classes
Previous: Named Constants
Contents