Opened 21 months ago
Last modified 3 months ago
#29581 closed enhancement
New Algorithm for Characteristic Classes — at Version 26
Reported by:  ghmjungmath  Owned by:  

Priority:  major  Milestone:  sage9.5 
Component:  manifolds  Keywords:  characteristic_classes, manifolds 
Cc:  slelievre, egourgoulhon, tscrim, mkoeppe, ghtobiasdiez  Merged in:  
Authors:  Michael Jung  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/ghmjungmath/new_algorithm (Commits, GitHub, GitLab)  Commit:  3c9b80a2551994493f23640344e9ade63240cb01 
Dependencies:  Stopgaps: 
Description (last modified by )
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 subring of the de Rham cohomology ring (cf. #31691).
The algorithms are based on the FaddeevLeVerrier? 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 21 months ago by
 Branch set to u/ghmjungmath/new_algorithm
comment:2 Changed 21 months ago by
 Commit set to 1a803eba5b9724ebfa93e726a474d957fd6915b4
 Milestone changed from sage9.1 to sage9.2
comment:3 Changed 21 months ago by
 Cc slelievre added
 Component changed from PLEASE CHANGE to geometry
comment:4 Changed 21 months ago by
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 21 months ago by
 Commit changed from 1a803eba5b9724ebfa93e726a474d957fd6915b4 to cb442eb8919ca33a5db63a17bac52f99f55553dd
Branch pushed to git repo; I updated commit sha1. New commits:
730046c  Merge branch 'develop' into t/29570/diff_form_bug

130ae3f  Trac #29570: NotImplementedError for nongeneric ring elements

bba21e1  Trac #29570: Strange typo fixed...

ba3b4b9  Trac #29570: correct parent, vectorfield_module changes reverted

841e1bf  Merge branch 't/29570/diff_form_bug' into t/29581/new_algorithm

cb442eb  Trac #29570: new algorithm added and code cleaned

comment:6 Changed 21 months ago by
 Commit changed from cb442eb8919ca33a5db63a17bac52f99f55553dd to 15c7341d071327a04fd229c3d2f78d583564f476
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
15c7341  Trac #29581: new algorithm added and code cleaned

comment:7 Changed 21 months ago by
 Cc egourgoulhon added
 Description modified (diff)
 Keywords characteristic_classes manifolds added
 Type changed from PLEASE CHANGE to enhancement
comment:8 Changed 21 months ago by
Correct syntax for crosslinks is
.. SEEALSO::
comment:9 Changed 21 months ago by
 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 21 months ago by
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 21 months ago by
Thanks for your advice. :)
comment:12 Changed 21 months ago by
 Commit changed from 15c7341d071327a04fd229c3d2f78d583564f476 to d37229341effff46ea2fa4b3287e32997c8422b0
Branch pushed to git repo; I updated commit sha1. New commits:
d372293  Trac #29581: Strange typos reverted

comment:13 Changed 21 months ago by
 Status changed from new to needs_review
comment:14 Changed 21 months ago by
 Status changed from needs_review to needs_info
comment:15 Changed 21 months ago by
An example for the application of the new algorithm would be really nice. For instance a Todd class or AHat 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 21 months ago by
 Commit changed from d37229341effff46ea2fa4b3287e32997c8422b0 to 19815c4257cee7dcf503d94e3b9bb651150bef5f
comment:17 Changed 18 months ago by
 Component changed from geometry to manifolds
 Dependencies set to #30211
comment:18 Changed 15 months ago by
 Milestone changed from sage9.2 to sage9.3
comment:19 Changed 10 months ago by
 Milestone changed from sage9.3 to sage9.4
Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
comment:20 Changed 6 months ago by
 Milestone changed from sage9.4 to sage9.5
Setting a new milestone for this ticket based on a cursory review.
comment:21 Changed 6 months ago by
 Cc tscrim mkoeppe added
 Dependencies #30211 deleted
 Description modified (diff)
 Status changed from needs_info to needs_work
comment:22 Changed 6 months ago by
 Commit changed from 19815c4257cee7dcf503d94e3b9bb651150bef5f to 3c9b80a2551994493f23640344e9ade63240cb01
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
3c9b80a  Trac #29581: implement algorithms for chern, pontryagin and euler

comment:23 Changed 6 months ago by
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 6 months ago by
 Description modified (diff)
comment:25 Changed 6 months ago by
 Status changed from needs_work to needs_info
comment:26 Changed 6 months ago by
 Description modified (diff)
New commits:
Trac #29570: alternating_form returns correct element
Trac #29570: Typo fixed, doctest added, returned element preferably nonzero
Trac #29581: New Algorithm for Char Classes