DirectSum.Basis
— TypeDirectSum.Basis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis container with cache of Submanifold
elements and their Symbol
names.
DirectSum.ExtendedBasis
— TypeDirectSum.ExtendedBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis container without a dedicated Submanifold
cache (only lazy caching).
DirectSum.Infinity
— TypeInfinity{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Infinite quantity Infinity
of the Grassmann
algebra over V
.
DirectSum.One
— TypeOne{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Unit quantity One
of the Grassmann
algebra over V
.
DirectSum.Single
— TypeSingle{V,G,B,T} <: TensorTerm{V,G,T} <: TensorGraded{V,G,T}
Single type with pseudoscalar V::Manifold
, grade/rank G::Int
, B::Submanifold{V,G}
, field T::Type
.
DirectSum.SparseBasis
— TypeDirectSum.SparseBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis with sparse cache of Submanifold{G,V}
elements and their Symbol
names.
DirectSum.Submanifold
— TypeSubmanifold{V,G,B} <: TensorGraded{V,G} <: Manifold{G}
Basis type with pseudoscalar V::Manifold
, grade/rank G::Int
, bits B::UInt64
.
DirectSum.TensorBundle
— TypeTensorBundle{n,ℙ,g,ν,μ} <: Manifold{n}
Let n
be the rank of a Manifold{n}
. The type TensorBundle{n,ℙ,g,ν,μ}
uses byte-encoded data available at pre-compilation, where ℙ
specifies the basis for up and down projection, g
is a bilinear form that specifies the metric of the space, and μ
is an integer specifying the order of the tangent bundle (i.e. multiplicity limit of Leibniz-Taylor monomials). Lastly, ν
is the number of tangent variables.
DirectSum.Zero
— TypeZero{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Null quantity Zero
of the Grassmann
algebra over V
.
AbstractTensors.clifford
— Functionclifford(ω::TensorAlgebra)
Clifford conjugate of an element: clifford(ω) = involute(reverse(ω))
AbstractTensors.involute
— Functioninvolute(ω::TensorAlgebra)
Involute of an element: ~ω = (-1)^grade(ω)*ω
Base.:~
— Methodreverse(ω::TensorAlgebra)
Reverse of an element: ~ω = (-1)^(grade(ω)(grade(ω)-1)/2)ω
Base.conj
— Function~(ω::TensorAlgebra)
Reverse of an element: ~ω = (-1)^(grade(ω)(grade(ω)-1)/2)ω
Base.imag
— Methodimag(ω::TensorAlgebra)
The imag
part (ω-(~ω))/2
is defined by abs2(imag(ω)) == -(imag(ω)^2)
.
Base.real
— Methodreal(ω::TensorAlgebra)
The real
part (ω+(~ω))/2
is defined by abs2(real(ω)) == real(ω)^2
.
DirectSum.alloc
— Functionalloc(V::Manifold,:V,"v","w","∂","ϵ")
Generates Basis
declaration having Manifold
specified by V
. The first argument provides pseudoscalar specifications, the second argument is the variable name for the Manifold
, and the third and fourth argument are variable prefixes of the Submanifold
vector names (and covector basis names).
DirectSum.getbasis
— Methodgetbasis(V::Manifold,v)
Fetch a specific Submanifold{G,V}
element from an optimal SubAlgebra{V}
selection.
DirectSum.pseudoclifford
— Functionpseudoclifford(ω::TensorAlgebra)
Pseudo-clifford conjugate element: pseudoclifford(ω) = pseudoinvolute(pseudoreverse(ω))
DirectSum.pseudoinvolute
— Functionpseudoinvolute(ω::TensorAlgebra)
Anti-involute of an element: ~ω = (-1)^pseudograde(ω)*ω
DirectSum.pseudoreverse
— Functionpseudoreverse(ω::TensorAlgebra)
Anti-reverse of an element: ~ω = (-1)^(pseudograde(ω)(pseudograde(ω)-1)/2)ω
DirectSum.@basis
— Macro@basis
Generates Submanifold
elements having Manifold
specified by V
. As a result of this macro, all of the Submanifold{V,G}
elements generated by that TensorBundle
become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the Manifold
, and the third and fourth argument are variable prefixes of the Submanifold
vector names (and covector basis names). Default for @basis M
is @basis M V v w ∂ ϵ
.
DirectSum.@dualbasis
— Macro@dualbasis
Generates Submanifold
elements having Manifold
specified by V'
. As a result of this macro, all of the Submanifold{V',G}
elements generated by that TensorBundle
become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the dual Manifold
, and the third and fourth argument are variable prefixes of the Submanifold
covector names (and tensor field basis names). Default for @dualbasis M
is @dualbasis M VV w ϵ
.
DirectSum.@mixedbasis
— Macro@mixedbasis
Generates Submanifold
elements having Manifold
specified by V⊕V'
. As a result of this macro, all of the Submanifold{V⊕V',G}
elements generated by that TensorBundle
become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the Manifold
, and the third and fourth argument are variable prefixes of the Submanifold
vector names (and covector basis names). Default for @mixedbasis M
is @mixedbasis M V v w ∂ ϵ
.