I am taking a course in general relativity, and I was planing to use sage for doing calculations.
I have
from sage.tensor.modules.tensor_with_indices import TensorWithIndices
M = FiniteRankFreeModule(QQ, 4, name='M')
e = M.basis('e')
a = M.tensor((2,0), name='a')
a[:] = [[2,0,1,-1], [1,0,3,2], [-1,1,0,0], [-2,1,1,-2]]
g = M.tensor((0,2), name='g')
g[:] = [[1,0,0,0], [0,1,0,0], [0,0,1,0],[0,0,0,1]]
I wanted to calculate $a^{^i,^j}$ Is there some way to tell Sage what is the metric, and do the index lowering automatically? I did it manually, but it's cumbersome for more complicated calculations. A=a['^ik']*g['_jk'];A[:]
Apart from that, I would like to know if there is a way to do this kind of computations with tensor fields and index notation, including derivatives, etc.