Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor lduLduBase #50

Open
greole opened this issue Nov 30, 2021 · 0 comments
Open

Refactor lduLduBase #50

greole opened this issue Nov 30, 2021 · 0 comments
Labels
refactoring Improvement of the code structure

Comments

@greole
Copy link
Collaborator

greole commented Nov 30, 2021

The current structure of the lduLduBase class is not ideal and several changes should be considered:

  1. rename the class to make the name more descriptive, a candidate would be SegregatetedCoupledSolverBase
  2. Instead of deriving from HostMatrix and IOGKOMatrixHandler an intermediate class LduCsrWrapper should be implemented

The new SegregatetedCoupledSolverBase class has the following responsibilities

Data members:

  • vector of DevicePersistent initial guesses and rhs

Methods:

  • generate_solver
  • generate_preconditioner
  • initialisation of initial guesses and rhs
  • solve_impl

The new intermediate LduCsrWrapper class has the following responsibilities:

Data members:

  • DevicePersistent sparsity pattern
  • DevicePersistent LduCsrMapping
  • DevicePersistent values

Methods:

  • init/update sparsity pattern
  • init/update lduCsrMapping
  • init/update values

Most of the functionality could be implement as a mixin which provide the needed update and init functions.

This depends on the implementation of DevicePersistent class #49

@greole greole added this to the Distributed OGL milestone Nov 30, 2021
@greole greole added the refactoring Improvement of the code structure label Nov 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactoring Improvement of the code structure
Projects
None yet
Development

No branches or pull requests

1 participant