Adding DOLFIN wrappers for PETSc Cusp matrices and vectors
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
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.