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

Matrix-Free Linear Operator #423

Merged
merged 111 commits into from
Aug 5, 2024
Merged

Conversation

yguclu
Copy link
Member

@yguclu yguclu commented Aug 2, 2024

See @e-moral-sanchez's PR: campospinto#7:


Provide a MatrixFreeLinearOperator class which is a subclass of the abstract class LinearOperator.

The new class allows creating a general matrix-free linear operator. The constructor only requires the domain, codomain and a callable dot method.

Notes:

  • The provided dot method may or may not take an out argument.
  • A transpose_dot method may also be provided (mandatory to instantiate the transpose() linear operator).
  • Unit tests have been added.

Additional changes:

  • We stop passing the deprecated tol argument in calls to SciPy's minres and we use rtol instead, which requires SciPy >= 1.12. This fixes Make Psydac compatible with SciPy 1.14 #419.
  • We stop supporting Python 3.8 because of SciPy 1.12. Python 3.8 is close to end-of-life anyway, see https://devguide.python.org/versions.
  • We also verify the initial convergence in the minres linear solver to avoid iterating when the initial solution is good enough (which may cause a division-by-zero error).
  • We also revert the changes to files psydac/api/settings.py and pyproject.toml which were erroneously made in PR Non Matching Multipatch #320

campospinto and others added 23 commits June 21, 2024 17:37
call exposed domain and codomain in linalg/basic.py
Calls to scipy `minres` now use `rtol` instead of `tol` to support  version 1.14.0, but this causes previous versions of scipy to fail
calls to scipy's minres now only use rtol which prevents from using scipy < 1.14. In turns this prevent from using python3.8 which is close to being unsupported anyway, see https://devguide.python.org/versions/
@yguclu yguclu marked this pull request as ready for review August 2, 2024 16:29
@yguclu yguclu requested review from a team and saidctb August 5, 2024 08:34
@yguclu yguclu merged commit f7e4d6b into pyccel:devel Aug 5, 2024
6 checks passed
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.

Make Psydac compatible with SciPy 1.14
6 participants