Opened 2 years ago

Closed 2 years ago

# Let diff() act on chart functions and differentiable forms

Reported by: Owned by: Eric Gourgoulhon major sage-9.2 geometry Travis Scrimshaw Eric Gourgoulhon Travis Scrimshaw N/A f5b9831 f5b983168993909a0ba713d4b72a8c33fc23dcc2

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`

### comment:1 Changed 2 years ago by Eric Gourgoulhon

Branch: → public/manifolds/diff_functions_forms Travis Scrimshaw added → f5b983168993909a0ba713d4b72a8c33fc23dcc2 new → needs_review

New commits:

 ​f5b9831 `diff() acting on chart functions and differentiable forms`

### comment:2 Changed 2 years ago by Eric Gourgoulhon

Description: modified (diff)

### comment:3 Changed 2 years ago by Travis Scrimshaw

Reviewers: → Travis Scrimshaw needs_review → positive_review

LGTM.

### comment:4 Changed 2 years ago by Eric Gourgoulhon

Thank you for the review!

### comment:5 Changed 2 years ago by Volker Braun

Branch: public/manifolds/diff_functions_forms → f5b983168993909a0ba713d4b72a8c33fc23dcc2 → fixed positive_review → closed
Note: See TracTickets for help on using tickets.