Opened 2 years ago

Last modified 10 months ago

#29581 closed enhancement

New Algorithm for Characteristic Classes — at Version 26

Reported by: gh-mjungmath Owned by:
Priority: major Milestone: sage-9.5
Component: manifolds Keywords: characteristic_classes, manifolds
Cc: slelievre, egourgoulhon, tscrim, mkoeppe, gh-tobiasdiez Merged in:
Authors: Michael Jung Reviewers:
Report Upstream: N/A Work issues:
Branch: u/gh-mjungmath/new_algorithm (Commits, GitHub, GitLab) Commit: 3c9b80a2551994493f23640344e9ade63240cb01
Dependencies: Stopgaps:

Status badges

Description (last modified by gh-mjungmath)

The current algorithm for characteristic forms is comparably low. The worst case scenario showed computations times about 1h in dimension four.

With this ticket, we want to replace the current algorithm and implement characteristic cohomology classes as sub-ring of the de Rham cohomology ring (cf. #31691).

The algorithms are based on the Faddeev-LeVerrier? algorithm (cf. #30681). The idea is that characteristic cohomology classes are determined by an element of the polynomial ring over Chern classes, Pontryagin classes and/or Euler classes.

Change History (26)

comment:1 Changed 2 years ago by gh-mjungmath

  • Branch set to u/gh-mjungmath/new_algorithm

comment:2 Changed 2 years ago by mkoeppe

  • Commit set to 1a803eba5b9724ebfa93e726a474d957fd6915b4
  • Milestone changed from sage-9.1 to sage-9.2

New commits:

3b36f0dTrac #29570: alternating_form returns correct element
85e7970Trac #29570: Typo fixed, doctest added, returned element preferably non-zero
1a803ebTrac #29581: New Algorithm for Char Classes

comment:3 Changed 2 years ago by slelievre

  • Cc slelievre added
  • Component changed from PLEASE CHANGE to geometry

comment:4 Changed 2 years ago by slelievre

Please add a short description in the "Description" field of the ticket, and the author's full name in the "Authors" field of the ticket. Don't forget to set to needs_review when this is ready for review.

comment:5 Changed 2 years ago by git

  • Commit changed from 1a803eba5b9724ebfa93e726a474d957fd6915b4 to cb442eb8919ca33a5db63a17bac52f99f55553dd

Branch pushed to git repo; I updated commit sha1. New commits:

730046cMerge branch 'develop' into t/29570/diff_form_bug
130ae3fTrac #29570: NotImplementedError for non-generic ring elements
bba21e1Trac #29570: Strange typo fixed...
ba3b4b9Trac #29570: correct parent, vectorfield_module changes reverted
841e1bfMerge branch 't/29570/diff_form_bug' into t/29581/new_algorithm
cb442ebTrac #29570: new algorithm added and code cleaned

comment:6 Changed 2 years ago by git

  • Commit changed from cb442eb8919ca33a5db63a17bac52f99f55553dd to 15c7341d071327a04fd229c3d2f78d583564f476

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

15c7341Trac #29581: new algorithm added and code cleaned

comment:7 Changed 2 years ago by gh-mjungmath

  • Authors set to Michael Jung
  • Cc egourgoulhon added
  • Description modified (diff)
  • Keywords characteristic_classes manifolds added
  • Type changed from PLEASE CHANGE to enhancement

comment:8 Changed 2 years ago by chapoton

Correct syntax for crosslinks is

.. SEEALSO::

comment:9 Changed 2 years ago by chapoton

  • do not use this:
    if distinct_real == False
    

but

if not distinct_real

(at least in two places)

  • The following change is wrong:
    -        - ``cmatrix`` -- curvature matrix
    -
    +            - ``cmatrix`` -- curvature matrix
             OUTPUT:
     
    -        - ``I/(2*pi)*cmatrix``
    +            - ``I/(2*pi)*cmatrix``
    

as one should not indent inside INPUT or OUTPUT blocks (because they end with only one colon). And moreover, one does want empty lines to separate these things.

This is also incorrect:

-            self._dual_exterior_powers[p] = ExtPowerDualFreeModule(self, p)
+                self._dual_exterior_powers[p] = ExtPowerDualFreeModule(self, p)

Why did you change the indentation ? it was ok.

comment:10 Changed 2 years ago by gh-mjungmath

I am sorry. At this stage, this is just a draft. The indentations are typos coming from using alt+tab (at least I guess so). I will fix this soon.

comment:11 Changed 2 years ago by gh-mjungmath

Thanks for your advice. :)

comment:12 Changed 2 years ago by git

  • Commit changed from 15c7341d071327a04fd229c3d2f78d583564f476 to d37229341effff46ea2fa4b3287e32997c8422b0

Branch pushed to git repo; I updated commit sha1. New commits:

d372293Trac #29581: Strange typos reverted

comment:13 Changed 2 years ago by gh-mjungmath

  • Status changed from new to needs_review

comment:14 Changed 2 years ago by gh-mjungmath

  • Status changed from needs_review to needs_info

comment:15 Changed 2 years ago by gh-mjungmath

An example for the application of the new algorithm would be really nice. For instance a Todd class or A-Hat class. But I have no idea for a suitable one. If anyone does, or at least knows someone who does, I would really appreciate it. Thanks! :)

comment:16 Changed 2 years ago by git

  • Commit changed from d37229341effff46ea2fa4b3287e32997c8422b0 to 19815c4257cee7dcf503d94e3b9bb651150bef5f

Branch pushed to git repo; I updated commit sha1. New commits:

c975bd2Merge branch 'develop' into t/29581/new_algorithm
19815c4Trac #29581: Readability of one line

comment:17 Changed 2 years ago by gh-mjungmath

  • Component changed from geometry to manifolds
  • Dependencies set to #30211

comment:18 Changed 22 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:19 Changed 17 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

comment:20 Changed 13 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

Setting a new milestone for this ticket based on a cursory review.

comment:21 Changed 13 months ago by gh-mjungmath

  • Cc tscrim mkoeppe added
  • Dependencies #30211 deleted
  • Description modified (diff)
  • Status changed from needs_info to needs_work

comment:22 Changed 13 months ago by git

  • Commit changed from 19815c4257cee7dcf503d94e3b9bb651150bef5f to 3c9b80a2551994493f23640344e9ade63240cb01

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

3c9b80aTrac #29581: implement algorithms for chern, pontryagin and euler

comment:23 Changed 13 months ago by gh-mjungmath

Do you think it is necessary to give those cohomology classes an own parent or would DeRhamCohomologyRing as parent suffice?

The point is that addition and multiplication is performed differently among those elements. Moreover, it is possible to compare them.

comment:24 Changed 13 months ago by gh-mjungmath

  • Description modified (diff)

comment:25 Changed 13 months ago by gh-mjungmath

  • Status changed from needs_work to needs_info

comment:26 Changed 13 months ago by gh-mjungmath

  • Description modified (diff)
Note: See TracTickets for help on using tickets.