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

Non Matching Multipatch #320

Merged
merged 81 commits into from
Aug 2, 2024
Merged

Non Matching Multipatch #320

merged 81 commits into from
Aug 2, 2024

Conversation

FrederikSchnack
Copy link
Contributor

@FrederikSchnack FrederikSchnack commented Jul 14, 2023

I think this PR is ready for reviews now. I think it's best to discuss most of the open questions below when working on the unification of the single-patch - multi-patch interface. And maybe create a more sustained and documented example gallery.

List of changes

  • add non matching conforming projection operators w/ homogeneous bc for V0 and V1
  • update multipatch examples to newer psydac version
  • add __init__.py to tests
  • add non matching examples from previous branch
  • add more tests
  • change in naming convention: primal Hodge operator corresponds to mass matrix

TO DO (future work)

Work for other PRs

  • Include some new features from the maxwell_ssc branch at least for matching domains
  • Make sure that other branches follow new naming convention
  • When merging single- and multi-patch interfaces, merge examples based on the equation solved and unify the interface
  • Take out obsolete feec/multipatch(/examples) folder
  • Move projections to DiscreteDeRham class
  • Unify the syntax of the creation of multipatch domains

Open questions:

  • what to do with the old not working conforming projections?
  • naming conventions "non_matching_" or "_nc"?

Notes:

@FrederikSchnack FrederikSchnack self-assigned this Jul 14, 2023
@yguclu yguclu added bug Something isn't working FEEC Finite element exterior calculus multi-patch labels Feb 29, 2024
@yguclu yguclu changed the title [merged in the frok psydac_dev] Non Matching Multipatch Non Matching Multipatch Aug 1, 2024
@yguclu yguclu merged commit d3651dd into devel Aug 2, 2024
6 checks passed
@yguclu yguclu deleted the non_matching_multipatch branch August 2, 2024 05:56
yguclu added a commit that referenced this pull request Aug 5, 2024
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 #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 #320

---------

Co-authored-by: e-moral-sanchez <[email protected]>
Co-authored-by: Martin Campos Pinto <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working FEEC Finite element exterior calculus multi-patch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants