#23623 closed enhancement (fixed)

Add is_trivial_zero() to coordinate functions and scalar fields on manifolds

Reported by: egourgoulhon Owned by:
Priority: major Milestone: sage-8.1
Component: geometry Keywords: coordinate function, scalar field, tensor calculus
Cc: roed, tscrim Merged in:
Authors: Eric Gourgoulhon Reviewers: Richard L Lozes
Report Upstream: N/A Work issues:
Branch: 169afc2 (Commits) Commit: 169afc24cfc83d2e86771305eb59d96192d99f14
Dependencies: Stopgaps:

Description

This ticket implements the fast method is_trivial_zero in coordinate functions (classes sage.manifolds.coord_func.CoordFunction and sage.manifolds.coord_func_symb.CoordFunctionSymb) and scalar fields (class sage.manifolds.scalarfield.ScalarField). The method is_trivial_zero is then used instead of == 0 in tensor calculus, especially in tensor assignement, where the check for zero is performed because only nonzero components of a tensor are stored. This avoids the call to Maxima, which can be problematic in some cases, as reported in this sage-devel post. Moreover, this results in a significant speed-up factor. For instance, the computation time of the coefficients of the Levi-Civita connection of the Kerr-Newman metric, as performed in cell 20 of this example notebook, is reduced from 5.37 s to 4.11 s (this is on a Intel Core i7-6700HQ computer).

Change History (5)

comment:1 Changed 16 months ago by egourgoulhon

  • Branch set to public/manifolds/is_trivial_zero
  • Commit set to 169afc24cfc83d2e86771305eb59d96192d99f14
  • Status changed from new to needs_review

New commits:

169afc2Add is_trivial_zero() to coordinate functions and scalar fields and use it in tensor calculus

comment:2 Changed 16 months ago by egourgoulhon

  • Cc roed tscrim added

comment:3 Changed 16 months ago by rllozes

  • Reviewers set to Richard L Lozes
  • Status changed from needs_review to positive_review

Built against 8.1 beta 3. No test failures, including the original sage-devel post and other, more elaborate tests.

comment:4 Changed 16 months ago by egourgoulhon

Thank you for the review!

comment:5 Changed 16 months ago by vbraun

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