the Parallel Tensor Analysis Hybrid
Ken Koehler
Department of Mathematics, Physics and Computer Science
Raymond Walters College
University of Cincinnati
Spacetime is defined by a metric; ie.,
the Kerr-Newman metric in D = 4:g 0, 0 = (-A 2 - e 2 + 2 M r - r 2 + A 2 Sin[th] 2) /
(r 2 + A 2 Cos[th] 2)g 0, 3 = -A (- e 2 + 2 M r) Sin[th] 2 / (r 2 + A 2 Cos[th] 2)
g 1, 1 = (r 2 + A 2 Cos[th] 2) / (A 2 + e 2 - 2 M r + r 2)
g 2, 2 = r 2 + A 2 Cos[th] 2
g 3, 3 = ((A 2 + r 2) 2 - A 2(A 2 + e 2 - 2 M r + r 2) Sin[th] 2)
Sin[th] 2 / (r 2 + A 2 Cos[th] 2)
or its special cases:
- e = 0 ~ the Kerr metric
- A = 0 ~ the Reissner-Nordstrom metric
- e = 0 and A = 0 ~ the Schwarzschild metric
Quantities of interest are the Christoffel Connection:
G a b c = g a d ( d b g c d + d c g b d - d d g b c ) / 2
R a b c d = d b G d a c - d a G d b c + G f a c G d f b - G f b c G d f a
D a R b c d e = d a R b c d e - G f a b R f c d e -
G f a c R b f d e - G f a d R b c f e - G f a e R b c d f
the Ricci tensor:
R a b = R a c b c
and the scalar curvature:
R = g a b R a b
which are always zero for vacuum solutions of Einstein's Equations:
R a b - g a b R / 2 = T a b = 0
Consider the Schwarzschild solution in { r , q , f , t } coordinates:
g 0, 0 = 2 M / r - 1g 1, 1 = 1 / ( 1 - 2 M / r )
g 2, 2 = r 2
g 3, 3 = r 2 Sin ( q ) 2
( the Schwarzschild solution is known for all D;The curvature tensor, for example, depends greatly on the coordinate system:
Kerr and Kerr-Newman are only known in D = 4 )
R a b c d | { r , q , f , t } | { r , q , f - 2 t , t } |
---|---|---|
------ | ---------- | -------------- |
1 3 1 4 | 0 | 2 M Sin ( q ) 2 / ( r - 2 M ) |
1 4 1 4 | - 2 M / r 3 | 2 M ( - 2 M + r + 2 r 3 Sin ( q ) 2 ) / |
(( 2 M - r ) r 3 ) | ||
2 3 2 4 | 0 | - 4 M r Sin ( q ) 2 |
2 4 2 4 | M ( r - 2 M ) / | M ( - 2 M + r + 8 r 3 Sin ( q ) 2 ) / |
r 2 | r 2 |
In general, a tensor transforms under the following rule:
T ' b' ( x ' ) = T a ( x ' ) d x a ( x ' ) / d x ' b '
We would like to compute quantities whose form does not depend on the coordinate system:
scalars constructed from the curvature tensor
R . R = R a b c d R a b c d
used to identify curvature singularities
*R . R =e a b c d R a b e f
R c d e f
in D = 4, ~ angular momentum of the spacetime(I. Ciufolini & J. A. Wheeler, "Gravitation and Inertia", 1995)
D R . D R = D a R b c d e D a
R b c d e
for some metrics, ~ norm of the timelike Killing vector(R. G. Gass, F. P. Esposito, L. C. R. Wijewardhana & L. Witten, gr-qc/9808055)
D D R . D D R . D D R . D D R =
D a D b R c d e f D g D h R i j k l D a D b R c j e l D g D h R i d k f
which does not vanish identically for an expanding type-N spacetime(J. Bicak & V. Pravda, gr-qc/9804005)
and many others: the number of curvature invariants of order 0 (no covariant derivatives) in
D ( > 2 ) dimensions is
( D - 2 ) ( D - 1 ) D ( D + 3 ) / 12
which is 14 for D = 4; for order k there are:
D ( k + 1 ) ( D + k + 1 ) ! / ( 2 ( D - 2 ) ! ( k + 3 ) ! )(C. N. Haskins, Transactions of the American Mathematical Society 3, 71, 1902)
which is 60 for k = 1 and 126 for k = 2
Using the coordinate transformation c = Cos(q), the Kerr-Newman metric can be written as
g 0, 0 = -(A 2 c 2 + e 2 + r (-2 M + r)) / (A 2 c 2 + r 2 )g 0, 3 = -A (-1 + c 2 )(e 2 - 2 M r) / (A 2 c 2 + r 2 )
g 1, 1 = (A 2 c 2 + r 2 ) / (A 2 + e 2 - 2 M r + r 2 )
g 2, 2 = (A 2 c 2 + r 2 ) / (1 - c 2 )
g 3, 3 = (1 - c 2 )((A 2 + r 2 ) 2 +
A 2 (-1 + c 2 )(A 2 + e 2 + r (-2 M + r))) /
(A 2 c 2 + r 2 )
R a b c d = - R b a c dR a b c d = - R a b d c
R a b c d = R c d a b
Ways to increase Mathematica efficiency:
R . R = 4 S a = 03 Sb = 0a - 1 S c = 03 Sd = 0c - 1 R a b c d R a b c d
Problems which exceed Mathematica's capabilities almost always die thrashing
Metric | Dimension | R . R | *R . R | D R . D R |
---|---|---|---|---|
best time | best time | best time | ||
Schwarzschild | 4 | 0:02 | 0:01 | 0:07 |
Schwarzschild | 5 | 0:07 | 0:31 | |
Schwarzschild | 6 | 2:33 | 2:00 * | |
Reissner-Nordstrom | 4 | 0:03 | 0:01 | 0:10 |
Kerr | 4 | 0:18 | 0:02 | 1:06 |
Kerr-Newman | 4 | 0:38 | 0:04 | 3:13 |
* used Factor[ ] instead of Simplify[PowerExpand[ ]]All times using Mathematica 4.0, sugra.m functions and the above coordinate system on a 450 MHz Pentium II with 128 MB RAM.
The metric is "replaced" by the vielbein:
g m, n = h a b e m a e n b
which is used to move between spacetime and the flat tangent space
Y m a is the spin 3/2 gravitino
spinors are 32-dimensional
G denote the gamma matrices:
{ G a , G b } = 2 h a bwhich also are used in totally antisymmetrized products:
G a b , G a b c , etc.
w m a b is the spin connection, giving the
covariant spinor derivative
d a b d m + w m a b G a b a b / 4
d Y m a = ( d a b d m + w m a b G a b a b / 4 +
f n r s t e m a e n b e r c e s d e t eG a b c d e a b / 144 -
f m n r s e n a e r b e s c G a b c a b / 18 ) e b
D m f m n r s = - e n r s a b c d e f g hf a b c d f e f g h / 576
R m n - R g m n / 2 = f m r s t f n r s t / 3 - g m n f 2 / 24
Mosty approaches use highly specific ansatze, ie.:
f m n r s = e m n r s f ( r ),
where e m n r s is the volume form for a sub-manifold and r is a radial coordinate on the complementary submanifold
But, one could start with a geometric solution and attempt to find a self-dual gauge field which satisfies the field equations
using symmetries has
D 3 ( D 2 - 1 ) / 12 ~ D 3 to D 4
for D = 11, D ! = 39,916,800
*R R*R R R R
with a maximum of ( D ! ) ( D ( D - 1 ) / 2 ) ( D / 4 ) products
and in D mod 2 = 0:
*R *R R*R *R R R R
with a maximum of ( D ! )^2 products
D | number of products |
---|---|
4 | 144 |
6 | 518,400 |
8 | 31,610,880 |
10 | 13,168,189,440,000 |
The Kerr-Newman metric can be parameterized as
g 0, 0 = -A 2 c 2 / f - e 2 / f + 2 M r / f - r 2 / fwithg 0, 3 = -A e 2 q / f + 2 A M q r / f
g 1, 1 = -f / (2 h r)
g 2, 2 = -f / q
g 3, 3 = -A 4 q / f + 2 A 2 h q 2 r / f -
2 A 2 q r 2 / f - q r 4 / f
f = A 2 c 2 + r 2h = (A 2 + e 2 + r (-2 M + r)) / (-2 r)
q = c 2 - 1
Representation as polynomials with real coefficients, integer exponents:
lists are doubly-linked to facilitate insertion and removal
Potential Problems:
1 / ( 1 + k / r 3 ) ( 1 / n ) = 1 / q ->q n = 1 + k / r 3
so that, for instance,
n q ( n - 1 ) dq / dr = - 3 k / r 4and
dq / dr = - 3 k / ( n q ( n - 1 ) r 4 )
A, M, e, I need to have zero derivatives
to reduce floating point representational error
If u(r) is not known at computation time, neither are its derivatives - so we parametrize them:
u'(r) = v(r) andu''(r) = w(r)
double coefficient
array of integer powers (coordinates, parameterization functions, ansatze, constants, rationals)
subclass of element (linked list traversal, insertion, removal)
linked list of terms
2 r 3 a + 3 r 3 a should be stored as 5 r 3 a
-> exponents of terms must be unique, so lists must be searched
List is split into an array of lists:
exponents are hashed to select listlist is then searched linearly
subclass of hash (the array of linked lists)
simplification:
if p = r 2 + a 2, we would like( r 4 + 2 a 2 r 2 + a 4 ) / p 3 -> 1 / p
zero, assign, search, add, multiply,take partial derivatives, simplify, output
subclass of element
indices are packed into 64 bit quantity for faster comparison
(currently limited to D = 12, index values 0 to 62)
contains pointer to a sum
subclass of hash, with components as elements
specifies tensor rank
flags for upper, antisymmetric, symmetric, spinor indices
methods for sum-type operations plus
raise and lower indices, contract indices,transpose indices, use symmetry to add components,
take covariant derivative, take dual
SIMD:
MIMD:
Symmetric Multiprocessors (SMP)Clusters (with network connections)
ideally n processors -> factor of n speedupin practice, between log 2 n and n / ln n due to internal waits for synchronization
make list of "atomic" operationswhere "there_is_more_to_be_done ()" points to next atomic operation
while ( there_is_more_to_be_done () )do one atomic operation
replace it with "parallelize ()":
if ( starting computation )break up computation into parcelselse
start scheduler process
get first parcel to work onpoint to next calculation in parcel
if ( done with parcel )if ( done with computation )send resultselse
synchronize with other tasksget next parcel from scheduler
lists of free indices and sum components are generated on all processorsie., for R a b = R a c b c
free indices summed indices 0 0 0 1 0 1 0 2 0 2 0 3 0 3 0 1 0 2 1 2 0 3 1 3 0 2 0 1 2 1 0 3 2 3 0 3 0 1 3 1 0 2 3 2 etc. etc. each processor is given a subset of the lists to process
resultant terms or components are sent to all processors so that intermediate results are known to all
all processors wait for all results in a given computationperform simplification themselves
processors may fail, so work must be reassignablePVM (Parallel Virtual Machine) does not guarantee message ordering
timings, number of entries into proceduresdepths of linked-lists
magic numbers
work scheduling
PVM message tracing
exportation of tensors and parametersC++ procedures to build sums and ntuples from the header files
easy importation into Mathematica for further analysis
R ,
C . C ,
* C . C ,
C . C . C ,
* C . C . C ,
S . S,
S . S . S ,
S . S . S . S ,
C . E . E ,
* C . E . E ,
C . E . E . C . E . E ,
* C . E . E . C . E . E ,
C . E . E . C . E . E . C . E . E ,
* C . E . E . C . E . E . C . E . E
(P. J. Greenberg, Studies in Applied Mathematics, 51, 277-308, 1972)
h i j = g i j - k i k j / | k |
h i j = g i k h k j
k i j = I i j - h i jn = h e i h f j h g k h h l R e f g h R i j k l
(geodesic deviation within the normal hypersurface)h = 4 h f j h h l k e i k g k R e f g h R i j k l
(geodesic deviation which does not cross hypersurfaces)x = 4 h f j h g k h h l k e i R e f g h R i j k l +
4 h e i k f j k g k k h l R e f g h R i j k l(geodesic deviation which crosses hypersurfaces)
z = 2 h e i h f j k g k k h l R e f g h R i j k l
(does not contribute to geodesic deviation)k = k e i k f j k g k k h l R e f g h R i j k l
(geodesic deviation within the Killing hypersurface)
Kerr x M 7
e , G a , G a b , etc.