4 ms·
I'm not sure I understand how the different types in this library---Manifold, VectorBundle, SubManifold---correspond to the standard definitions of these mathem
by aesthesia 7y ago
I'm not sure I understand how the different types in this library---Manifold, VectorBundle, SubManifold---correspond to the standard definitions of these mathematical objects. How is a manifold represented here? Can arbitrary manifolds be represented?
- dan-robertson 7y agoI think a complication is that there are abstract types and concrete types. The abstract types let you say “give me a tangent bundle where ...” and the concrete types actually implement the thing as eg a vector or a sparse vector or ... An alternative example would be that in Julia you can talk about abstract vector types of which dense and sparse form disjoint subtypes
- DreamScatter 7y agoIndeed, the Manifold{n} type from AbstractTensors.jl (https://github.com/chakravala/AbstractTensors.jl https://github.com/chakravala/AbstractTensors.jl) is defined as an abstract type in Julia. The parameter `n` is used to specify the Manifold dimension, which is locally isomorphic to R^n. A VectorBundle is another abstract type, which standardizes an encoding format for concrete Signature and DiagonalForm types, or more. SubManifold can select subspaces of a VectorBundle or generally an arbitrary Manifold. The design of the type system was optimized for algebra interoperability and adaptive subspace precompilation.
- aesthesia 7y agoOkay, so say I want to do computations with differential forms on some particular manifold, like a torus or RP^n. Maybe I want to evaluate the Hodge Laplacians on some forms. What would I need to do to implement that within this system? I see references to computing Betti numbers and Euler characteristics in the documentation, so I assume something like this is possible. I'm not very familiar with geometric algebra or its computational implementation, so apologies if this is either obvious or not even wrong. This looks very cool and useful, I just don't know how to connect it to the things I understand.