Copyright | (c) 2019 Tobias Reinhart and Nils Alex |
---|---|
License | MIT |
Maintainer | tobi.reinhart@fau.de, nils.alex@fau.de |
Safe Haskell | None |
Language | Haskell2010 |
Math.Tensor.Examples.Gravity
Contents
Description
This module provides a variety of
s that are currently predefined in the sparse-tensor package.Tensor
Amongst many standard tensor from differential geometry and classical field theories such as Kronecker deltas δab in multiple different dimensions, the Levi-Civita symbol ϵabcd and the Minkowski metric ηab and its inverse ηab, most included tensors were implemented during the initial use of the sparse-tensor package, the perturbative construction of generalized gravity theories. Thus many of the included tensors stem from this area of research.
Additionally to providing basic predefined
s for further computations this module also nicely illustrates how the construction of Tensor
s is achieved.Tensor
The majority of the tensors in this module are defined as type
which describes a tensor that takes the three different index types
ATens
, Ind20
, Ind9
each one appearing in contravariant and covariant position. If in the following expression that are formed from such tensors are additionally
explained via their algebraic expression using appropriate symbols for the individual tensors we label indices of type Ind3
by A,B,C,D,..., indices of type
I,J,K,L,... and spacetime indices of type Ind20
are labeled by a,b,c,d,.... Hence a general such tensor is displayed as TA1...AmI1...Ira1...apB1...BnJ1...Jsb1...bs.
Such a tensor then has the type ind3
.ATens
m n r s p q
Synopsis
- delta3 :: STTens 1 1 (SField Rational)
- delta9 :: ATens 0 0 1 1 0 0 (SField Rational)
- delta20 :: ATens 1 1 0 0 0 0 (SField Rational)
- delta3A :: ATens 0 0 0 0 1 1 (SField Rational)
- eta :: STTens 0 2 (SField Rational)
- invEta :: STTens 2 0 (SField Rational)
- etaA :: ATens 0 0 0 0 0 2 (SField Rational)
- invEtaA :: ATens 0 0 0 0 2 0 (SField Rational)
- etaAbs :: ATens 0 0 0 1 0 0 (SField Rational)
- epsilon :: STTens 0 4 (SField Rational)
- epsilonInv :: STTens 4 0 (SField Rational)
- epsilonA :: ATens 0 0 0 0 0 4 (SField Rational)
- epsilonInvA :: ATens 0 0 0 0 4 0 (SField Rational)
- lorentzJ1 :: ATens 0 0 0 0 1 1 (SField Rational)
- lorentzJ2 :: ATens 0 0 0 0 1 1 (SField Rational)
- lorentzJ3 :: ATens 0 0 0 0 1 1 (SField Rational)
- lorentzK1 :: ATens 0 0 0 0 1 1 (SField Rational)
- lorentzK2 :: ATens 0 0 0 0 1 1 (SField Rational)
- lorentzK3 :: ATens 0 0 0 0 1 1 (SField Rational)
- flatArea :: ATens 0 1 0 0 0 0 (SField Rational)
- interI2 :: ATens 0 0 1 0 0 2 (SField Rational)
- interJ2 :: ATens 0 0 0 1 2 0 (SField Rational)
- interIArea :: ATens 1 0 0 0 0 4 (SField Rational)
- interJArea :: ATens 0 1 0 0 4 0 (SField Rational)
- interArea :: ATens 1 1 0 0 1 1 (SField Rational)
- interMetric :: ATens 0 0 1 1 1 1 (SField Rational)
- flatInterMetric :: ATens 0 0 0 1 1 1 (SField Rational)
- flatInter :: ATens 0 1 0 0 1 1 (SField Rational)
- interEqn2 :: ATens 1 1 0 0 2 2 (SField Rational)
- interEqn3 :: ATens 1 1 1 1 1 1 (SField Rational)
- interEqn4 :: ATens 1 1 0 1 3 1 (SField Rational)
- interEqn5 :: ATens 1 1 0 1 3 1 (SField Rational)
- interEqn2Metric :: ATens 0 0 1 1 2 2 (SField Rational)
- interEqn3Metric :: ATens 0 0 2 2 1 1 (SField Rational)
- interEqn4Metric :: ATens 0 0 1 2 3 1 (SField Rational)
- interEqn5Metric :: ATens 0 0 1 2 3 1 (SField Rational)
- randArea :: IO (ATens 0 1 0 0 0 0 (SField Rational))
- randFlatArea :: IO (ATens 0 1 0 0 0 0 (SField Rational))
- randAreaDerivative1 :: IO (ATens 0 1 0 0 0 1 (SField Rational))
- randAreaDerivative2 :: IO (ATens 0 1 0 1 0 0 (SField Rational))
- randMetric :: IO (ATens 0 0 0 1 0 0 (SField Rational))
- randAxon :: IO (ATens 0 1 0 0 0 0 (SField Rational))
- generic4Ansatz :: ATens 1 0 0 0 0 0 (AnsVar (SField Rational))
- generic5Ansatz :: ATens 1 0 0 0 1 0 (AnsVar (SField Rational))
- generic6Ansatz :: ATens 1 0 1 0 0 0 (AnsVar (SField Rational))
- generic8Ansatz :: ATens 2 0 0 0 0 0 (AnsVar (SField Rational))
- generic9Ansatz :: ATens 2 0 0 0 1 0 (AnsVar (SField Rational))
- generic10_1Ansatz :: ATens 2 0 0 0 2 0 (AnsVar (SField Rational))
- generic10_2Ansatz :: ATens 2 0 1 0 0 0 (AnsVar (SField Rational))
- generic11Ansatz :: ATens 2 0 1 0 1 0 (AnsVar (SField Rational))
- generic12_1Ansatz :: ATens 2 0 2 0 0 0 (AnsVar (SField Rational))
Standard Tensors
Kronecker Delta
Minkowski Metric
invEta :: STTens 2 0 (SField Rational) Source #
Inverse spacetime Minkowski metric ηab as
. The inverse Minkowski metric could
also be defined as ATens
0 0 0 0 2 0 (SField
Rational
)
in similar fashion.STTens
2 0 (SField
Rational
)
invEta = fromListT2 $ map (\(x,y,z) -> ((Append (Ind3 x) $ Append (Ind3 y) Empty,Empty),SField z)) [(0,0,-1),(1,1,1),(2,2,1),(3,3,1)]
etaAbs :: ATens 0 0 0 1 0 0 (SField Rational) Source #
The tensor ηI provides an equivalent version of the Minkowski metric that uses an index of type
to label the Ind9
10
different values of the symmetric spacetime index pair.
Levi-Civita Symbol
epsilonA :: ATens 0 0 0 0 0 4 (SField Rational) Source #
Covariant Levi-Civita symbol lifted to
.ATens
epsilonInvA :: ATens 0 0 0 0 4 0 (SField Rational) Source #
Contravariant Levi-Civita symbol lifted to
.ATens
Generators of the Lorentz Group
The following six tensors are a choice of generators of the Lorentz group SO(3,1), i.e. they constitute a basis of the corresponding Lie algebra so(3,1).
The Lie algebra so(3,1) is isomorphic to the algebra of ηab anti symmetric matrices. Thus the following six tensors (Ki)ab for i=1,...,6 all satisfy (Ki)abηca=−(Ki)acηba.
The six generators are obtained by 2(K1)ab=ηb0δa1−ηb0δa1, and similar for
the remaining 5
independent components of the anti symmetric index pair.
Area Metric
flatArea :: ATens 0 1 0 0 0 0 (SField Rational) Source #
Flat area metric tensor. Can be obtained via the
intertwiner JabcdA as: NA=JabcdA(ηacηbd−ηadηbc−ϵabcd).interJArea
Constructive Gravity Specific Tensors
Intertwiners
The following tensors are used to relate the abstract indices of type
to symmetric pairs of spacetime indices of type Ind9
.Ind3
The following tensors are used to relate the abstract indices of type
to blocks of Ind20
4
spacetime indices (abcd) of type
, that are anti symmetric in
a↔b, anti symmetric in c↔d and further symmetric w.r.t. (ab)↔(cd).Ind3
Infinitesimal Diffeomorphisms
The following two tensors CAmBn and KImJn encode the infinitesimal transformation behavior of tensors of type
and tensors of type
ATens
0 0 0 1 0 0
respectively under spacetime diffeomorphisms. They are related to the Lie derivative via LξGA=∂mGA⋅ξm+CBmAnGB⋅∂mξn.ATens
0 1 0 0 0 0
interArea :: ATens 1 1 0 0 1 1 (SField Rational) Source #
Can be obtained as: CAmBn=−4⋅IAnbcdJmbcdB
interArea = SField (-4 :: Rational) &. contrATens3 (1,1) (contrATens3 (2,2) $ contrATens3 (3,3) $ interIArea &* interJArea
interMetric :: ATens 0 0 1 1 1 1 (SField Rational) Source #
Can be obtained as : KImJn=−2⋅IInbJmbJ
interMetric = SField (-2 :: Rational) &. contrATens3 (0,0) (interI2 &* interJ2)
Further such Tensors
flatInterMetric :: ATens 0 0 0 1 1 1 (SField Rational) Source #
Is given by: KmJn=KImJnηI
flatInterMetric = contrATens2 (0,1) $ interMetric &* etaAbs
flatInter :: ATens 0 1 0 0 1 1 (SField Rational) Source #
Is given by: CmBn=CAmBnNA
flatInter = contrATens1 (0,1) $ interArea &* flatArea
interEqn4Metric :: ATens 0 0 1 2 3 1 (SField Rational) Source #
Is given by: KJ(m|In2J|p)qL−δIJJpmLδqn
Random Tensor
The following tensors are filled with random components. They can for instance be used to test ranks of tensorial equations.
Unknown Tensors
generic4Ansatz :: ATens 1 0 0 0 0 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic4Ansatz = 21
generic5Ansatz :: ATens 1 0 0 0 1 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic5Ansatz = 21*4
generic6Ansatz :: ATens 1 0 1 0 0 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic5Ansatz = 21*10
generic8Ansatz :: ATens 2 0 0 0 0 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic8Ansatz = 21*22/2
generic9Ansatz :: ATens 2 0 0 0 1 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic21Ansatz = 21*21*4
generic10_1Ansatz :: ATens 2 0 0 0 2 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic5Ansatz = 84*85/2
generic10_2Ansatz :: ATens 2 0 1 0 0 0 (AnsVar (SField Rational)) Source #
tensorRank6' generic5Ansatz = 21*21*10