With configurations jo44 and jo43 we have the first real curvature query where I didn’t already know the answer. With jo44 we have 4 4D simplexes arranged around a 2D bone. All of the edge lengths are 1; they are regular simplexes. Part of the confusion is that these are supposed to be rigid rotations but expressed in oblique coordinates.
In this modification of jo44 the ring of edges around the bone each have length 2/√3 which causes the dihedral angle of the zone at the bone to be 90°. This configuration reports the same result. The calculation seems insensitive to the shape of the zone. This is a bug I think I can find!
For jo44 gij for each zone is
[| 1.; 0.5; 0.5; 0.5 |] gd [| 0.5; 1.; 0.5; 0.5 |] gd [| 0.5; 0.5; 1.; 0.5 |] gd [| 0.5; 0.5; 0.5; 1. |] gdwhich is correct for a regular simplex.
For jo44f it is
[| 1.; 0.5; 0.5; 0.57735026919 |] gd [| 0.5; 1.; 0.5; 0.57735026919 |] gd [| 0.5; 0.5; 1.; 0.57735026919 |] gd [| 0.57735026919; 0.57735026919; 0.57735026919; 1.15470053838 |] gdwhich seems plausible.
We add temporary code to zone.ml to compute the angle between the normals to the two facets that share the bone. These facets are locally numbered 3 and 4 in each zone.
dp = −1 for jo44
dp = −1 for jo44f
Not good.
Indeed the dot product of two unit vectors can be −1 only if they are in opposite directions.
Both vectors have length 1 (good) and they are not opposites!
Back to quadratic forms!!