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

Make KroneckerLinearSolver a subclass of LinearOperator #338

Merged
merged 17 commits into from
Oct 23, 2023

Conversation

jowezarek
Copy link
Contributor

@jowezarek jowezarek commented Sep 27, 2023

Adressing issue #333, we make KroneckerLinearSolver subclass LinearOperator instead of LinearSolver in order to be able to use fast solvers of mass matrices of logical domains together with other LinearOperator objects.
This update further includes:

  • methods creating fast kronecker solvers for 3D and 2D mass matrices, currently located in test_kron_direct_solver.py
  • the removal of the BlockDiagonalSolver class. It did not provide any significant advantage over using a BlockLinearOperator instead.
  • the removal of the DirectSolver(LinearSolver) class. It's two subclasses now directly subclass LinearSolver.
  • In an attempt to unify the usage of linear operators, solve() methods of all LinearSolver subclasses as well as KroneckerLinearOperator.solve() don't take transposed as optional argument anymore. Instead, proper transpose() methods have been implemented creating new objects, as is the case for LinearOperator subclasses.

@jowezarek jowezarek marked this pull request as ready for review October 2, 2023 11:57
@yguclu yguclu changed the title Reorganize LinearSolver classes MakeKroneckerLinearSolver a subclass of LinearOperator Oct 11, 2023
@yguclu yguclu changed the title MakeKroneckerLinearSolver a subclass of LinearOperator Make KroneckerLinearSolver a subclass of LinearOperator Oct 11, 2023
@jowezarek jowezarek requested a review from yguclu October 11, 2023 12:52
psydac/linalg/block.py Outdated Show resolved Hide resolved
psydac/linalg/kron.py Outdated Show resolved Hide resolved
psydac/linalg/tests/test_kron_direct_solver.py Outdated Show resolved Hide resolved
psydac/linalg/tests/test_kron_direct_solver.py Outdated Show resolved Hide resolved
psydac/linalg/tests/test_kron_direct_solver.py Outdated Show resolved Hide resolved
psydac/linalg/tests/test_kron_direct_solver.py Outdated Show resolved Hide resolved
@jowezarek jowezarek requested a review from yguclu October 19, 2023 11:15
psydac/linalg/direct_solvers.py Outdated Show resolved Hide resolved
psydac/linalg/direct_solvers.py Outdated Show resolved Hide resolved
@jowezarek jowezarek requested a review from yguclu October 20, 2023 22:26
@yguclu yguclu merged commit 1e42b9c into devel Oct 23, 2023
6 checks passed
@yguclu yguclu deleted the linearsolver_update branch October 23, 2023 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants