Skip to content

Compatible PRanges between FESpaces and linear systems #137

@JordiManyer

Description

@JordiManyer

Here are some notes on the issue:

  • In some specific scenarios (which are not as rare), owned rows of the matrix contain column identifiers from dofs which are NOT available in the local FESpaces. This means that we will never be able to 100% match the PRanges from the PSparseMatrix and the DistributedFESpace. (See Alberto's note)
  • Moreover, when we assemble ghost rows we also include some column ids which are NOT needed to multiply the matrix by a column vector. We need this extra rows as cache for in-place assembly, but these extra ghosts should not be included when communicating during matrix-vector product.
  • On top of this, it would be advantageous to reorder the dofs in the local FESpaces so that the dof layout contains owned ids first, then ghost ids. This is how we do things in the linear system, and would bring us on par with other softwares like PETSc.

Given these observations, we concluded the following:

  • We need to re-order the ids in the local FESpaces. Hopefully, after doing so, LocalView type wont be needed anymore.
  • We need to create a new type FECompatiblePSparseMatrix, that contains
    • The usual matrix
    • Caches for the ghosts values that the matrix column PRange needs
    • Separate PRanges for matrix-vector multiplication and for assembly

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions