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.DiffeoSymEqns
Description
This module collects several tensorial equations. These equations arise in the research topic of perturbative constructive gravity and are used there to encode perturbative diffeomorphism invariance.
Providing further usage examples of the sparse-tensor package the equations included here nicely illustrate the syntax that is used when entering tensors. They also show how the sparse-tensor package can be used to manipulate not only tenors but linear tensorial equations. The sparse-tensor package can for instance be used to extract the information that is contained in such a tensorial equation in matrix form. This then obviously allows one to computate the rank of the linear tensorial equation or even explicitly solve it.
All equations that are contained in this module are functions that take possibly several tensors of type
as input. These tensors then represent
the individual unknown tensors in the equation. The output that is computed by the functions is also of this type.ATens
AnsVarR
When illustrating how the individual such equations that are included in this module are defined we will use again the same convention as in the Math.Tensor.Examples.Gravity module, i.e. we label indices of type
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
- ansatzA :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR
- ansatzAI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR
- ansatzAB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
- ansatzAaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
- ansatzABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
- ansatzAIBJ :: ATens 2 0 2 0 0 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
- ansatzABC :: ATens 3 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
- ansatzABCI :: ATens 3 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
- ansatzABbCc :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
- ansatzAaBbCI :: ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
- ansatzABICJ :: ATens 3 0 2 0 0 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
- ansatzAIBJCK :: ATens 3 0 3 0 0 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
- ansatzABCD :: ATens 4 0 0 0 0 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
- ansatzABCDJ :: ATens 4 0 1 0 0 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
- ansatzABCcDd :: ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
- eqn1 :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
- eqn3 :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
- eqn1A :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
- eqn1AI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR
- eqn2Aa :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
- eqn3A :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
- eqn1AB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
- eqn1ABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
- eqn1AaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
- eqn2ABb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
- eqn3AB :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
- eqn1Met :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
- eqn3Met :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
- eqn2AaMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
- eqn3AMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
- eqn1AMet :: ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
- eqn1AIMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
- eqn1ABMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
- eqn1ABIMet :: ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
- eqn1AaBbMet :: ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
- eqn2ABbMet :: ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
- eqn3ABMet :: ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
Lorentz Invariance
Area Metric
The following equations encode the requirement that the input tensors are Lorentz invariant. They can be used to verify the Lorentz invariant tensors that are obtained by
the Math.Tensor.LorentzGenerator module. If the input tensor is Lorentz invariant the functions return a tensor with all values being zero, and thus for instance applying
to these
returns zero.tensorRank6'
Perturbative Diffeomorphism Equivariance
Area Metric
The following equations can be used with the Lorentz invariant ansätze for the area metric GA=JabcdAGabcd with the symmetries Gabcd=Gcdab=−Gbacd as input tensors. In the following documentation these input tensors are labeled as a0,aA,aAI,aAB, etc. For the definition of the further included tensors see Math.Tensor.Examples.Gravity.
eqn1 :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR Source #
The equation is given by: 0=aACBmAnNB+a0δmn.
eqn3 :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=aAICB(m|AnNBJ|pq)I.
eqn1A :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR Source #
The equation is given by: 0=aACBmAn+2aABCCmAnNC+aBδmn.
eqn1AI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR Source #
The equation is given by: 0=aAI[CBmAnδJI−2δBAJpmIIJpn]+aABJCCmAnNC+aBJδmn.
eqn2Aa :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=2aA(p|BqCC|m)AnNC+aAI[CB(m|An2J|p)qI−δBAJpmIδqn].
eqn3A :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=aBAICC(m|AnNCJ|pq)I+aAICB(m|AnJ|pq)I.
eqn1AB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR Source #
The equation is given by: 0=2aACCBmAn+2aABCCmAn+6aABCCDmAnND+2aBCδmn
eqn1ABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR Source #
The equation is given by: 0=aCAI[CBmAnδJI−2δBAJpmIIJpn]+2aACBJCDmAnND+aCBJδmn.
eqn1AaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=2aApCr[CBmAnδqp−δBAδmpδqn]+2aABqCrCDmAnND+2aBqCrδmn.
eqn2ABb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=2aCA(p|BqCD|m)AnND+aCAI[CB(m|An2J|p)qI−δBAJpmIδqn].
eqn3AB :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=2aBCAICD(m|AnNDJ|pq)I+aCAICB(m|AnJ|pq)I.
Metric
The following equations can be used with the Lorentz invariant ansätze for the a traditional metric gI=JabIgab as input.
In the following documentation these input tensors are labeled as a0,aA,aAJ,aAB, etc. Care must be taken as for the case of the metric equations all indices that are labeled by A,B,C,D,... are also of type
,
but are distinguished from the indices labeled by I,J,K,L,... as they describe the metric components and the latter ones describe symmetric spacetime derivative pairs.
For the definition of the further included tensors see Math.Tensor.Examples.Gravity.Ind9
eqn1Met :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR Source #
The equation is given by: 0=aAKBmAnηB+a0δmn.
eqn3Met :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR Source #
The equation is given by: 0=aAIKB(m|AnηBJ|pq)I.
eqn2AaMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR Source #
The equation is given by: 0=2aA(p|BqKC|m)AnηC+aAI[KB(m|An2J|p)qI−δBAJpmIδqn].
eqn3AMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR Source #
The equation is given by: 0=aBAIKC(m|AnηCJ|pq)I+aAIKB(m|AnJ|pq)I.
eqn1AMet :: ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR Source #
The equation is given by: 0=aAKBmAn+2aABKCmAnηC+aBδmn.
eqn1AIMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR Source #
The equation is given by: 0=aAI[KBmAnδJI−2δBAJpmIIJpn]+aABJKCmAnηC+aBJδmn.
eqn1ABMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR Source #
The equation is given by: 0=2aACKBmAn+2aABKCmAn+6aABCKDmAnηD+2aBCδmn
eqn1ABIMet :: ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR Source #
The equation is given by: 0=aCAI[KBmAnδJI−2δBAJpmIIJpn]+2aACBJKDmAnηD+aCBJδmn.
eqn1AaBbMet :: ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR Source #
The equation is given by: 0=2aApCr[KBmAnδqp−δBAδmn]+2aABqCrKDmAnηD+2aBqCrδmn.