Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I have a program that calculates Christoffel symbols for a given metric, and the output I'm getting now is such that I have every calculated symbol in one column like this:

enter image description here

I'd like that I could have that in two columns:

  1. \Gamma^1_2,3=... \Gamma^2_1,3= ...
  2. \Gamma^1_3,2=... \Gamma^3_1,3= ...
  3. \Gamma^2_2,2=... \Gamma^3_1,2= ...
  4. ...

I looked at the documentation, and I tried something with that, but all I could do is to widen the spacing between \Gamma and the results -.-"

Here's thee code:

Clear[coord, metric, inversemetric, affine, τ, r, θ, \
φ]

n := 4

coord := {τ, r, θ, φ}

metric := 
 2 G J Ω[θ]^2*{{-(1 + (1 - Λ[\
θ]^2)), 0, 0, 2 r Λ[θ]^2}, {0, 1/(
    1 + r^2), 0, 0}, {0, 0, 1, 0}, {2 r Λ[θ]^2, 
    0, 0, Λ[θ]^2}}

inversemetric := Simplify[Inverse[metric]]

affine := 
 affine = Simplify[
   Table[(1/2) Sum[
      inversemetric[[μ, ρ]] (D[metric[[ρ, ν]], 
          coord[[λ]]] + 
         D[metric[[ρ, λ]], coord[[ν]]] - 
         D[metric[[ν, λ]], coord[[μ]]]), {ρ, 1, 
       n}], {ν, 1, n}, {λ, 1, n}, {μ, 1, n}]]

listaffine := 
 Table[If[UnsameQ[affine[[ν, λ, μ]], 
     0], {Style[
      Subsuperscript[Γ, 
       Row[{coord[[ν]], coord[[λ]]}], coord[[μ]]], 
      18], "=", 
     Style[affine[[ν, λ, μ]], 14]}], {λ, 1, 
    n}, {ν, 1, n}, {μ, 1, n}] // FullSimplify

TableForm[
  Partition[DeleteCases[Flatten[listaffine], Null], 
   3]] // FullSimplify
share|improve this question

1 Answer 1

up vote 5 down vote accepted

Ok, here is the code. Made small changes at the very end. I am sure there is a more elegant way to do it. But I simply added the counter column at the left using Insert[] and added the "=" using a Map. That is pretty much it.

Changes:

  1. changed your listaffine line to remove "=" that you had there.
  2. Partition it to 4 column now.
  3. use Map to format it with "="
  4. insert the counters column

i.e. 1 line changed. 2 new lines. that is it (you can use online diff website to see the difference also)

 (*... every thing from top to here was not changed... *)
 listaffine := 
  Table[If[UnsameQ[affine[[ν, λ, μ]], 
      0], {Style[
       Subsuperscript[Γ, 
        Row[{coord[[ν]], coord[[λ]]}], coord[[μ]]], 
       18], Style[affine[[ν, λ, μ]], 
       14]}], {λ, 1, n}, {ν, 1, n}, {μ, 1, n}] // 
   FullSimplify;

data = {#[[1]], "=", #[[2]], #[[3]], "=", #[[4]]} & /@ 
   Partition[DeleteCases[Flatten[listaffine], Null], 4];

data = Insert[data[[#]], #, 1] & /@ Range[Length[data]];
TableForm[data] (*or Grid[data] or anything else you like *)

enter image description here

share|improve this answer
    
Yes!!!! Like that :D How did you do that? :D –  dingo_d Dec 15 '12 at 12:54

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.