Opened 4 months ago

Closed 4 months ago

#29953 closed enhancement (fixed)

Let diff() act on chart functions and differentiable forms

Reported by: egourgoulhon Owned by:
Priority: major Milestone: sage-9.2
Component: geometry Keywords:
Cc: tscrim Merged in:
Authors: Eric Gourgoulhon Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: f5b9831 (Commits) Commit: f5b983168993909a0ba713d4b72a8c33fc23dcc2
Dependencies: Stopgaps:

Description (last modified by egourgoulhon)

In Sage 9.1, we have

sage: M = Manifold(2, 'M')
sage: X.<x,y> = M.chart()
sage: f = X.function(x^2*y)
sage: f.diff(x)
2*x*y
sage: diff(f, x)
...
NotImplementedError:

Similarly, if one tries to apply diff to get the exterior derivative of a differentiable form, one gets an error:

sage: a = M.one_form(-y, x)
sage: a.display()
-y dx + x dy
sage: diff(a)
...
TypeError: unable to convert 1-form on the 2-dimensional differentiable manifold M to a symbolic expression

With the code implemented in this ticket, we get

sage: diff(f, x)
2*x*y
sage: type(diff(f,x))
<class 'sage.manifolds.chart_func.ChartFunctionRing_with_category.element_class'>

and

sage: diff(a)
2-form on the 2-dimensional differentiable manifold M
sage: diff(a).display()
2 dx/\dy
sage: diff(a) is a.exterior_derivative()
True

To achieve this, the modification of the code reduces to

  • rename ChartFunction.diff to ChartFunction.derivative, making diff an alias for the method derivative
  • add the alias derivative for the method DiffForm.exterior_derivative
  • add the alias derivative for the method DiffScalarField.differential

Change History (5)

comment:1 Changed 4 months ago by egourgoulhon

  • Branch set to public/manifolds/diff_functions_forms
  • Cc tscrim added
  • Commit set to f5b983168993909a0ba713d4b72a8c33fc23dcc2
  • Status changed from new to needs_review

New commits:

f5b9831diff() acting on chart functions and differentiable forms

comment:2 Changed 4 months ago by egourgoulhon

  • Description modified (diff)

comment:3 Changed 4 months ago by tscrim

  • Reviewers set to Travis Scrimshaw
  • Status changed from needs_review to positive_review

LGTM.

comment:4 Changed 4 months ago by egourgoulhon

Thank you for the review!

comment:5 Changed 4 months ago by vbraun

  • Branch changed from public/manifolds/diff_functions_forms to f5b983168993909a0ba713d4b72a8c33fc23dcc2
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.