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

In this notebook we define a 5-parameter class of mediums:

1) each kappa is algebraically decomposable

2) beta^2 -alpha gamma = 0

3) the Fresnel polynomial always has a linear factor

Define medium

kappa=emMatrixToKappa[(({{1, 1, 0, 1, -1, k16}, {k21, 0, 0, 1, 1, 0}, {0, 0, -1, 0, 0, 0}, {k41, 0, 0, -1, 1, 1}, {k41, 0, 0, 0, 0, 1}, {k41+k62-k16 k41 k62+(1/2) (-1+k21 k64), k62, 1, k64, 0, 1}}))];

(* kappa is invertible *)
FullSimplify[emDet[kappa]]

(* kappa has no axion component *)
Simplify[emTrace[kappa]]

(* Since this does not simplify to {0}, kappa has a skewon component *)
Union[Flatten[kappa-emPoincare[kappa]]]

(* Since this does not simplify to {0}, kappa has a principal component *)
Union[Flatten[kappa+emPoincare[kappa]]]

Kappa depends on 5-variables

Variables[kappa]

Define constants alpha, beta, gamma and bivectors A and B:

alpha= 1;
beta = 1;
gamma=1;
rho=1;
Abivector=(({{0, k41, 0, 0}, {-k41, 0, 1, -1}, {0, -1, 0, 0}, {0, 1, 0, 0}}));
Bbivector=(({{0, ((2+k21)/2), 1, 0}, {-1-(k21/2), 0, (k16/2), 0}, {-1, -(k16/2), 0, 1}, {0, 0, -1, 0}}));

Note these satisfy beta^2-alpha gamma = 0

beta^2-alpha gamma

Verify that is algebraically decomposable

LHS =alpha emIdentityKappa[] + beta (kappa +emPoincare[kappa]) + gamma emCompose[emPoincare[kappa],kappa]; 
RHS=emBiProduct[rho,Abivector,Bbivector]+emBiProduct[rho,Bbivector,Abivector];
Union[Simplify[Flatten[(LHS-RHS)]]]

Compute Fresnel polynomial

coords={xi0,xi1,xi2,xi3};
fresnel=FullSimplify[emKappaToFresnel[kappa,coords]];

Fresnel polynomial is product of linear factor and 3rd order factor

factor1=(1/2) xi3;
factor2=(2 xi1 (xi1+xi2) ((2+k21+k16 k21) xi1+(k16+k21) xi2)+((12+k16+2 k21-2 k16 k62-k16 k21 k64) (xi1^2)-(-4+k16-2 k21+k16 k21 k64) xi1 xi2+2 k16 (k62-k64) (xi2^2)) xi3-2 ((1+k16-2 k62+2 k64) xi1-(k16+2 k62-2 k64) xi2) (xi3^2)+4 (xi3^3)+2 (xi0^2) ((3+k21+k21 k62-k21 k64) xi1+2 xi2-k21 xi3)+2 k41 (-2 (xi0^3)+xi0 xi1 ((-2+k16 (-1+k16 k62)) xi1+k16 (2 k62-k64) xi2)+(xi0^2) ((-2-k16+2 k16 k62) xi1+2 (k62-k64) xi2+2 xi3)-xi1 (k16 xi1-k16 xi2-2 xi3) (xi1+xi2+xi3-k16 k62 xi3))+xi0 ((4+k16+6 k21-2 k16 k62-k16 k21 k64) (xi1^2)+4 (-k62+k64) (xi2^2)-2 (2+k16-k21 k62+k21 k64) xi2 xi3+2 (-2+k21) (xi3^2)+2 xi1 ((3+k21-(2+k16) k62+2 k64) xi2-(k16 (1+k21)-(2+k21) (k62-k64)) xi3)));
Simplify[fresnel-factor1 factor2]

Show that 

   D (kappa + beta Id) = 1/2 trace (rho bar(D) otimes D)  A + B
   
has a solution for D

(*
 * If D=1/2 D^ij d/dx^i /\ d/dx^j is a bivector we represent 
 * the coefficients by the anti-symmetric matrix with coefficients 
 * of (D^ij)_ij. If kappa is an antisymmetric (2,2)-tensor,
 * then this routine returns coefficients of bivector D (kappa).
 *)
contract[biv_,kappa_] := Table[
 1/2 Sum[biv[[i]][[j]]emReadNormal[kappa,a,b,i,j]
      ,
      {i, 1, 4},{j, 1, 4}
    ]
 ,
 {a, 1, 4}, {b, 1, 4}
]

Dbivector=(({{0, (1/2), (1/2), 0}, {-(1/2), 0, 0, 0}, {-(1/2), 0, 0, 0}, {0, 0, 0, 0}}));
dLHS = contract[Dbivector,kappa+beta emIdentityKappa[]];
dRHS = 1/2 emTrace[emBiProduct[rho,Dbivector,Dbivector]]Abivector+Bbivector;
deqs=Union[Flatten[Simplify[dLHS-dRHS]]]

1/2 emTrace[emBiProduct[rho,Dbivector,Dbivector]]