Opened 5 years ago

Closed 5 years ago

# Fix treatment of tensor field restrictions on parallelizable manifolds

Reported by: Owned by: egourgoulhon major sage-8.0 geometry tensor field, parallelizable manifold tscrim Eric Gourgoulhon Travis Scrimshaw N/A 9a9ee5b 9a9ee5bf034694acb74a13a0de35c85b0048eaef #22563

### Description

The following is a bug:

```sage: S1 = Manifold(1, 'S^1') # the circle
sage: U = S1.open_subset('U') # the complement of one point
sage: Xt.<t> =  U.chart('t:(0,2*pi)') # the standard angle coordinate
sage: V = S1.open_subset('V') # the complement of the point t=pi
sage: Xu.<u> = V.chart('u:(0,2*pi)') # the angle t-pi
sage: S1.declare_union(U, V)
sage: Xt_to_Xu = Xt.transition_map(Xu, (t-pi,), intersection_name='W',
....:                              restrictions1 = t!=pi, restrictions2 = u!=pi)
sage: Xt_to_Xu.inverse()
sage: W = U.intersection(V)
sage: e = S1.vector_frame('e') # a global vector frame (makes S^1 parallelizable)
sage: R2 = Manifold(2, 'R^2', start_index=1) # Euclidean space R^2
sage: X2.<x,y> = R2.chart() # Cartesian coordinates
sage: F = S1.diff_map(R2, {(Xt,X2): [cos(t), sin(t)],
....:                      (Xu,X2): [-cos(u), -sin(u)]}) # embedding S^1 --> R^2
sage: dx = X2.coframe()[1] # the 1-form dx on R^2
sage: a = F.pullback(dx) ; a
1-form on the 1-dimensional differentiable manifold S^1
sage: a.restrict(U).display()
-sin(t) dt
sage: a.restrict(W).display()
...
ValueError: no basis could be found for computing the components in the Coordinate frame (W, (d/dt))
```

The current ticket fixes this, by trying, if possible, to get the restriction from subdomains (here the restriction to `W` will be obtained from that to `U`, `W` being a subset of `U`)

### comment:1 Changed 5 years ago by egourgoulhon

• Branch set to public/manifolds/bug-tensor-restrictions-22637
• Commit set to 9a9ee5bf034694acb74a13a0de35c85b0048eaef
• Status changed from new to needs_review

New commits:

 ​96f814d `Fix treatment of pullback on parallelizable manifolds` ​6ab5f63 `Change the name of first argument to 'self' in nested method _pullback_chart of DiffMap` ​02add83 `Revert to previous version of nested function _pullback_chart in DiffMap.pullback` ​d0de237 `Merge branch 'public/manifolds/bug-pullback-parallelizable' of git://trac.sagemath.org/sage into Sage 7.6.rc0` ​9a9ee5b `Fix treatment of restrictions of tensor fields with parallelizable domains`

### comment:2 follow-up: ↓ 3 Changed 5 years ago by tscrim

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

LGTM.