Ask Your Question

Revision history [back]

Question 1: v(f), where v is a tangent vector at a given point on a manifold and f a scalar field on that manifold should work as is. I've opened the ticket #27856 to fix this. Thanks for your report.

Question 2: for any Sage parent (here the tangent space Tp), the method an_element() returns an arbitrary element of it. The end user has no control on which element is returned. For tangent spaces on a manifold of dimension $n$, the element is hard-coded to be the vector of components $(1, 2, \ldots, n)$ in the default basis. Another example is the method an_element of the manifold:

sage: M.an_element()
Point on the 3-dimensional differentiable manifold M
sage: M.an_element().coordinates()
(0, 0, 0)

Actually, the methods an_element are mostly used for test suites in Sage, like

sage: TestSuite(Tp).run(verbose=True)
running ._test_additive_associativity() . . . pass
running ._test_an_element() . . . pass
running ._test_cardinality() . . . pass
running ._test_category() . . . pass
running ._test_elements() . . .
  Running the test suite of self.an_element()
  running ._test_category() . . . pass
  running ._test_eq() . . . pass
  running ._test_new() . . . pass
  running ._test_nonzero_equal() . . . pass
  running ._test_not_implemented_methods() . . . pass
  running ._test_pickling() . . . pass
  pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_pickling() . . . pass
running ._test_some_elements() . . . pass
running ._test_zero() . . . pass

They probably should not be exposed in the tutorial. This is more confusing than useful, as you pointed out.

Question 1: v(f), where v is a tangent vector at a given point on a manifold and f a scalar field on that manifold manifold, should work as is. I've opened the ticket #27856 to fix this. Thanks for your report.

Question 2: for any Sage parent (here the tangent space Tp), the method an_element() returns an arbitrary element of it. The end user has no control on which element is returned. For tangent spaces on a manifold of dimension $n$, the element is hard-coded to be the vector of components $(1, 2, \ldots, n)$ in the default basis. Another example is the method an_element of the manifold:

sage: M.an_element()
Point on the 3-dimensional differentiable manifold M
sage: M.an_element().coordinates()
(0, 0, 0)

Actually, the methods an_element are mostly used for test suites in Sage, like

sage: TestSuite(Tp).run(verbose=True)
running ._test_additive_associativity() . . . pass
running ._test_an_element() . . . pass
running ._test_cardinality() . . . pass
running ._test_category() . . . pass
running ._test_elements() . . .
  Running the test suite of self.an_element()
  running ._test_category() . . . pass
  running ._test_eq() . . . pass
  running ._test_new() . . . pass
  running ._test_nonzero_equal() . . . pass
  running ._test_not_implemented_methods() . . . pass
  running ._test_pickling() . . . pass
  pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_pickling() . . . pass
running ._test_some_elements() . . . pass
running ._test_zero() . . . pass

They probably should not be exposed in the tutorial. This is more confusing than useful, as you pointed out.

Question 1: v(f), where v is a tangent vector at a given point p on a manifold and f a scalar field on that manifold, should work as is. I've opened the ticket #27856 to fix this. Thanks for your report.report. A workaround is

v(f.differential().at(p))

Question 2: for any Sage parent (here the tangent space Tp), the method an_element() returns an arbitrary element of it. The end user has no control on which element is returned. For tangent spaces on a manifold of dimension $n$, the element is hard-coded to be the vector of components $(1, 2, \ldots, n)$ in the default basis. Another example is the method an_element of the manifold:

sage: M.an_element()
Point on the 3-dimensional differentiable manifold M
sage: M.an_element().coordinates()
(0, 0, 0)

Actually, the methods an_element are mostly used for test suites in Sage, like

sage: TestSuite(Tp).run(verbose=True)
running ._test_additive_associativity() . . . pass
running ._test_an_element() . . . pass
running ._test_cardinality() . . . pass
running ._test_category() . . . pass
running ._test_elements() . . .
  Running the test suite of self.an_element()
  running ._test_category() . . . pass
  running ._test_eq() . . . pass
  running ._test_new() . . . pass
  running ._test_nonzero_equal() . . . pass
  running ._test_not_implemented_methods() . . . pass
  running ._test_pickling() . . . pass
  pass
running ._test_elements_eq_reflexive() . . . pass
running ._test_elements_eq_symmetric() . . . pass
running ._test_elements_eq_transitive() . . . pass
running ._test_elements_neq() . . . pass
running ._test_eq() . . . pass
running ._test_new() . . . pass
running ._test_not_implemented_methods() . . . pass
running ._test_pickling() . . . pass
running ._test_some_elements() . . . pass
running ._test_zero() . . . pass

They probably should not be exposed in the tutorial. This is more confusing than useful, as you pointed out.