Notation:
Aa,b = ∂Aa/∂xb and Ai,j = ∂Ai/∂xj
Aa;b = ∇bAa

The idea here is to write the simplest program to carry out the computation explicit in these equations:
tgab = −2αKab + ∇aβb + ∇bβa
tKab = −∇abα + α(Rab + KabK − 2KacKcb) + βccKab + Kcabβc + Kcbaβc
By simplest I presume to minimize the effort to understand the program and see that it is indeed doing the intended calculation.

We must compute the Christoffel symbols:
Γikl = (1/2)gim(gmk,l + gml,k − gkl,m)
and for that we need gim — the inverse of the metric tensor.

With these values the covariant derivative is:
aβb = βb;a = ∂βb/∂xa − Γcabβc
along with the other familiar equations.

Taking simple derivatives of field values with respect to spacial coordinates is fraught with centering issues. I plan to use the simplest centering, j, k, l < n} schemes and document how each value is centered within the computational zone.


A significant check of code such as this is to use Schwarzschild or even Kerr metrics as initial conditions.

For familiarity I assume calculations on a mesh [0:n]4 = {(i, j, k, l) | 0 ≤ i, j, k, l < n}. Posit: gab values kept for lattice points. Tentatively we keep Kab there too.