chakravala / Grassmann.jl

⟨Grassmann-Clifford-Hodge⟩ multilinear differential geometric algebra

Home Page:https://grassmann.crucialflow.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Complement and degenerate metric

chakravala opened this issue · comments

The following is a quote of @enkimute from the discussion in #3

check the way he defined the complement and figure out if this may provide a method that works for degenerate metrics in the same unified fashion..

Opening this issue is meant to track ongoing discussions regarding degenerate metrics and complements

@Orbots and @enkimute just wanted to let you know that this whole time Grassmann already has support for dual numbers built-in along with DirectSum.jl package.

julia> using Grassmann

julia> basis"ϵ+++"
(⟨ϵ+++⟩, v, vϵ, v₁, v₂, v₃, vϵ₁, vϵ₂, vϵ₃, v₁₂, v₁₃, v₂₃, vϵ₁₂, vϵ₁₃, vϵ₂₃, v₁₂₃, vϵ₁₂₃)

julia> v2*-1vϵ₂

julia> ans*0v

As mentioned in #3 and #10 there is some interest in the complement operation and the degenerate metric

The feature already exists, although I don't know enough about degenerate inner products to really know if it is correct or not, so it is up to you to check this.

However, the degenerate metric feature is not fully advertised yet because I wanted to enhance the behavior of the origin and infinity elements of conformal geometric algebra...

This current definition should be sufficient for dual numbers though, as far as I know currently. Please let me know if you try it out and have some feedback.

Did a test on the degenerate metric in Grassmann and compared with @enkimute Ganja Cheat Sheets

julia> using Grassmann

julia> basis"ϵ"
(⟨ϵ⟩, v, vϵ)

julia> (1+2vϵ)+(3+4vϵ)
4 + 6vϵ

julia> (1+2vϵ)-(3+4vϵ)
-2 - 2vϵ

julia> (1+2vϵ)*(3+4vϵ)
3 + 10vϵ

julia> (1+2vϵ)(3+4vϵ)
3 + 10vϵ

julia> (1+2vϵ)(3+4vϵ)
11 + 6vϵ

julia> (1+2vϵ)(3+4vϵ)
10 + 8vϵ

julia> conj(1+2vϵ)
1 - 2vϵ

julia> complementright(1+2vϵ)
2 + 1

This means that all my results are correct so far except for the inner product should be 3 + 10vϵ

That means there is something I might be doing right, but the inner prodocut not yet.

Alright, so if I use the Hodge star (at the moment defined to be complementright) then I do get the correct results for inner product in fact:

julia> ((1+2vϵ)(((3+4vϵ))))
3 + 10

And this is how I techincally defined the inner product in my program too. This means there is a bug in the way I implemented the degenerate metric in the inner product composite method.

I will let you know when I figure out what the bug is, but to answer @enkimute original question, yes it does look like the complementright definition of inner product used should be sound. I should just make sure that my composite implementation also handles the degenerate metric correctly now.

As of right now, this issue is considered resolved and higher-order degenerate metrics are now supported via the tangent bundle capability provided by DirectSum version 0.2.1, documentation comes later ~