Adding DOLFIN wrappers for PETSc Cusp matrices and vectors

Registered by Fredrik Valdmanis

The new linear algebra factory named PETScCusp wil be added. This allows one to choose "PETScCusp" as linear algebra backend.
This backend will utilize the existing PETScVector and Matrix classes, which will be slightly modified. A new constructor parameter will be added for choosing between the PETSc CPU- and GPU-based implementations of vectors and matrices. The GPU versions work with the existing solvers and preconditioners, so now further changes are needed.

Blueprint information

Status:
Complete
Approver:
Anders Logg
Priority:
Undefined
Drafter:
None
Direction:
Approved
Assignee:
Fredrik Valdmanis
Definition:
Approved
Series goal:
Accepted for 1.1.x
Implementation:
Implemented
Milestone target:
None
Started by
Fredrik Valdmanis
Completed by
Garth Wells

Related branches

Sprints

Whiteboard

J-H:
Looks nice! How hard will it be to integrate PETScCusp with GPU assemble?

F-V: I have not done any research into that yet. Logg has some thoughts about it, it's next on the agenda after the gpu solve is stabilized and polished.

GNW: Is there a reason why it's PETScCusp, and not just Cusp? Is it possible to integrate the PETSc GPU functionality into the
existing PETSc wrappers?

AL: Yes, only a small change is needed (inside the init function). The rest remains the same. So there will be a new class PETScCUSPFactory but no new class PETScCUSPMatrix as this will be taken care of inside the existing PETScMatrix.cpp.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.