"Garth N. Wells" <[email protected]> writes: >>> Note that if you use MatSetValuesLocal, you can use the >>> NEST format with identical code in assembly; only matrix creation is >>> different, see src/snes/example/tutorials/ex28.c for an example that >>> works with both AIJ and NEST formats. >>> > > Is there a reason why MatSetValues can't be used? We rely on PETSc > caching and then communicating off-process entries.
MatSetValuesLocal() just takes indices described in a local ordering (defined by their mapping to global indices, see MatSetLocalToGlobalMapping), but you can still set global indices. A global-to-global map is expensive/non-scalable, so we can't efficiently support it when assembling sub-blocks that correspond to general index sets. The MatSetValuesLocal interface also makes a number of other domain decomposition methods accessible.
pgp_bFonYI6LE.pgp
Description: PGP signature
