SetDirectory["~/KappaLib/"];
<<kappaLib-1.1.m
<<helper.m

Do coordinate transformation in Metaclass II

vars={x0,x1,x2,x3};
kappa=emMatrixToKappa[(({{a1, -b1, 0, 0, 0, 0}, {b1, a1, 0, 0, 0, 0}, {0, 0, a2, 0, 0, -b2}, {0, 1, 0, a1, b1, 0}, {1, 0, 0, -b1, a1, 0}, {0, 0, b2, 0, 0, a2}}))];

When Theorem 2.1 holds, we have 

          a1 = a2       b1 = b2.
          
We also assume that a1 = 0, that is, we exclude any axion component. 

We also assume b1>0.

sub={a2->a1,b2->b1,a1->0};
kappa=kappa//.sub;

Find coordinate transformation that diagonalises g_+^{-1}

AA=(({{1, 0, 0, b1}, {0, -b1, 0, 0}, {0, 0, -b1, 0}, {b1, 0, 0, 0}}));         (* = gPlus^(-1) *)
BB=(({{-1, 0, 0, b1}, {0, -b1, 0, 0}, {0, 0, -b1, 0}, {b1, 0, 0, 0}}));       (*  = gMinus^(-1) *)

Lalt = matrix that diagonalise AA (=eigenvectors of AA)

subW={ww->(Sqrt[1+4 (b1^2)])};
Lalt=(({{0, 0, (1-ww)/(2b1), (1+ww)/(2 b1)}, {0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 1, 1}}));

FullSimplify[Transpose[Lalt].AA.Lalt//.subW]//MatrixForm

Define coordinate transformation
Motivation:

   3rd matrix (from left) -- diagonalise g+
   2nd matrix -- permutate coordinates so that x0 is time for g+
   1st matrix -- diagonalise epsilon and mu matrices in kappa

trans=FullSimplify[(({{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1/Sqrt[2], 1/Sqrt[2]}, {0, 0, -1/Sqrt[2], 1/Sqrt[2]}})).(({{0, 0, 0, 1}, {0, 0, 1, 0}, {0, 1, 0, 0}, {1, 0, 0, 0}})).Inverse[Lalt]];
trans//MatrixForm

(* Check that the transformation is orientation preserving *)
FullSimplify[Det[trans]]

kappaTrans=emCoordinateChange[kappa,trans];
Simplify[ww/b1 emKappaToMatrix[kappaTrans]]//MatrixForm

Compute ABCD matrices

{Amat,Bmat,Cmat,Dmat}=emKappaToABCD[kappaTrans];

epsilon=-FullSimplify[Transpose[Amat]];
epsilon//MatrixForm
mu=FullSimplify[Transpose[Inverse[Bmat]]];
mu//MatrixForm

Check that the Fresnel surface still decomposes

frTrans=emKappaToFresnel[kappaTrans,vars];
FullSimplify[frTrans]

AAtrans=(({{((b1^2)/ww), 0, 0, 0}, {0, -((b1^2)/ww), 0, 0}, {0, 0, - b1, 0}, {0, 0, 0, -b1}}));
BBtrans=(({{(((b1^2) (-2+ww))/(ww^2)), ((2 (b1^2))/(ww^2)), 0, 0}, {((2 (b1^2))/(ww^2)), -(((b1^2) (2+ww))/(ww^2)), 0, 0}, {0, 0, - b1, 0}, {0, 0, 0, -b1}}));
delta=frTrans-ww (vars.AAtrans.vars)(vars.BBtrans.vars);
delta=Flatten[CoefficientList[delta,vars]];
delta=simp[delta]

Check

FullSimplify[AAtrans-trans.AA.Transpose[trans]]
FullSimplify[BBtrans-trans.BB.Transpose[trans]]