Opened 3 years ago
Last modified 14 months ago
#29581 closed enhancement
New Algorithm for Characteristic Classes — at Version 38
Reported by:  Michael Jung  Owned by:  

Priority:  major  Milestone:  sage9.5 
Component:  manifolds  Keywords:  characteristic_classes, manifolds 
Cc:  Samuel Lelièvre, Eric Gourgoulhon, Travis Scrimshaw, Matthias Köppe, Tobias Diez  Merged in:  
Authors:  Michael Jung  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/ghmjungmath/new_algorithm (Commits, GitHub, GitLab)  Commit:  2cabd839d55e5c0f3ba2f8d0194bcae6ce31397c 
Dependencies:  #32270, #32272, #32396  Stopgaps: 
Description (last modified by )
The current algorithm for characteristic forms is comparably slow. 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 idea is that characteristic (cohomology) classes are generated by Chern/Pontryagin/Euler? classes. The generators can be computed by an FaddeevLeVerrier?like algorithm (cf. #30681).
Change History (38)
comment:1 Changed 3 years ago by
Branch:  → u/ghmjungmath/new_algorithm 

comment:2 Changed 3 years ago by
Commit:  → 1a803eba5b9724ebfa93e726a474d957fd6915b4 

Milestone:  sage9.1 → sage9.2 
comment:3 Changed 3 years ago by
Cc:  Samuel Lelièvre added 

Component:  PLEASE CHANGE → geometry 
comment:4 Changed 3 years 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 3 years ago by
Commit:  1a803eba5b9724ebfa93e726a474d957fd6915b4 → 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 3 years ago by
Commit:  cb442eb8919ca33a5db63a17bac52f99f55553dd → 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 3 years ago by
Authors:  → Michael Jung 

Cc:  Eric Gourgoulhon added 
Description:  modified (diff) 
Keywords:  characteristic_classes manifolds added 
Type:  PLEASE CHANGE → enhancement 
comment:9 Changed 3 years 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 3 years 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:12 Changed 3 years ago by
Commit:  15c7341d071327a04fd229c3d2f78d583564f476 → d37229341effff46ea2fa4b3287e32997c8422b0 

Branch pushed to git repo; I updated commit sha1. New commits:
d372293  Trac #29581: Strange typos reverted

comment:13 Changed 3 years ago by
Status:  new → needs_review 

comment:14 Changed 3 years ago by
Status:  needs_review → needs_info 

comment:15 Changed 3 years 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 3 years ago by
Commit:  d37229341effff46ea2fa4b3287e32997c8422b0 → 19815c4257cee7dcf503d94e3b9bb651150bef5f 

comment:17 Changed 2 years ago by
Component:  geometry → manifolds 

Dependencies:  → #30211 
comment:18 Changed 2 years ago by
Milestone:  sage9.2 → sage9.3 

comment:19 Changed 21 months ago by
Milestone:  sage9.3 → sage9.4 

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
comment:20 Changed 17 months ago by
Milestone:  sage9.4 → sage9.5 

Setting a new milestone for this ticket based on a cursory review.
comment:21 Changed 16 months ago by
Cc:  Travis Scrimshaw Matthias Köppe added 

Dependencies:  #30211 
Description:  modified (diff) 
Status:  needs_info → needs_work 
comment:22 Changed 16 months ago by
Commit:  19815c4257cee7dcf503d94e3b9bb651150bef5f → 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 16 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 16 months ago by
Description:  modified (diff) 

comment:25 Changed 16 months ago by
Status:  needs_work → needs_info 

comment:26 Changed 16 months ago by
Description:  modified (diff) 

comment:27 Changed 16 months ago by
Commit:  3c9b80a2551994493f23640344e9ade63240cb01 → 03529f8919357f98b65ee033e8dc5c7d48b2fa42 

Branch pushed to git repo; I updated commit sha1. New commits:
03529f8  Trac #29581: return mixed form

comment:28 Changed 16 months ago by
Commit:  03529f8919357f98b65ee033e8dc5c7d48b2fa42 → ab288d62786a40b9f314d40ca932506d7b6932d9 

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:
fb9c661  #32270: de rham cohomology as algebra

de5863a  Merge branch 't/32270/turn_de_rham_cohomology_into_algebra' into t/29581/new_algorithm

d22ee9a  Trac #32315: support iteration and enumerated sets

16c4737  Trac #32272: allow infinite max degree

6a320a0  Trac #32272: fix docstring

c1d4fce  Trac #32272: fix rst file + rename module

25e6b1d  Trac #32272: fix doctest

5a4c7ac  Trac #32272: narrow to finite dimensions

3b81085  Merge branch 't/32272/finitely_generated_graded_algebras_with_finite_degree' into t/29581/new_algorithm

ab288d6  Trac #29581: algorithm for complex vbundles

comment:29 Changed 16 months ago by
Dependencies:  → #32270, #32272 

comment:30 Changed 16 months ago by
Commit:  ab288d62786a40b9f314d40ca932506d7b6932d9 → 6688740017097a79d7995101889cea097ee5c653 

comment:31 Changed 16 months ago by
Commit:  6688740017097a79d7995101889cea097ee5c653 → 61291f406b886abb9a509955355da749fc99a8d6 

Branch pushed to git repo; I updated commit sha1. New commits:
61291f4  Trac #29581: minor fixes

comment:32 Changed 16 months ago by
Commit:  61291f406b886abb9a509955355da749fc99a8d6 → 60318775e9c530c32280ba1bfa819cb9ac978bd1 

Branch pushed to git repo; I updated commit sha1. New commits:
6031877  Trac #29581: return only list of generators

comment:33 Changed 16 months ago by
Commit:  60318775e9c530c32280ba1bfa819cb9ac978bd1 → 0c7587f759b9555404fd417ee042e99fbb4ae02d 

Branch pushed to git repo; I updated commit sha1. New commits:
0c7587f  Trac #29581: parent deals with different cases, element stays generic

comment:34 Changed 16 months ago by
Commit:  0c7587f759b9555404fd417ee042e99fbb4ae02d → 28d2d84271a3e1516556a8364b1114dd6edaa992 

Branch pushed to git repo; I updated commit sha1. New commits:
28d2d84  Trac #29581: revert mistaken merge

comment:35 Changed 16 months ago by
The ticket is not ready for review yet; the structure should be fixed though. Feedback at this stage is very much appreciated. :)
comment:36 Changed 16 months ago by
Commit:  28d2d84271a3e1516556a8364b1114dd6edaa992 → 2cabd839d55e5c0f3ba2f8d0194bcae6ce31397c 

Branch pushed to git repo; I updated commit sha1. New commits:
2cabd83  Trac #29581: add some comments

comment:37 Changed 16 months ago by
Dependencies:  #32270, #32272 → #32270, #32272, #32396 

comment:38 Changed 16 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