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

Add BasicCallableMapping abstract base class #119

Merged
merged 12 commits into from
Oct 21, 2022
Merged

Conversation

yguclu
Copy link
Member

@yguclu yguclu commented Oct 5, 2022

Add new class to module sympde.topology.mapping:

  • Require methods __call__, jacobian, metric, metric_det, all called with arguments (*eta)
  • Require properties ldim and pdim
  • Require method jacobian_inv, which should raise exception if Jacobian matrix is not invertible (e.g. when ldim < pdim)
  • Make CallableMapping subclass it
  • Spline and NURBS mappings in Psydac will subclass it

Add new method set_callable_mapping to symbolic Mapping class, in order to attach any object of type BasicCallableMapping to it. Psydac will use it to attach spline and NURBS mappings to MappedDomains with undefined Mapping

Further changes:

- CallableMapping subclasses it
- Spline and NURBS mappings in Psydac will subclass it (warning: eta -> *eta, jac_mat -> jacobian)
  - TorusSurfaceMapping
  - TwistedTargetSurfaceMapping
This provides a user-defined implementation to a mapping that has no
symbolic expressions (generic undefined mapping). Used by Psydac to
attach a spline/NURBS mapping to a SymPDE mapping. The mapping F must be
of type BasicCallableMapping.
@yguclu yguclu marked this pull request as ready for review October 17, 2022 16:45
@yguclu yguclu requested a review from saidctb October 17, 2022 16:45
@yguclu yguclu merged commit 1b13c14 into master Oct 21, 2022
@yguclu yguclu deleted the fix-psydac-issue-189 branch October 21, 2022 08:46
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.

Allow for mappings with pdim > ldim
2 participants