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

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

1) each kappa is algebraically decomposable

2) beta^2 -alpha gamma = 0

3) the Fresnel polynomial always has four linear factors

Define medium

kappa=emMatrixToKappa[(({{1, 1, 1, 0, 0, 0}, {1, 0, 0, 0, 0, 0}, {2, 1, 0, 0, 0, 0}, {0, 0, 0, 0, -k65, -1}, {1, 1, 0, 0, -1, 0}, {0, 0, 0, -1, k65, 0}}))];

(* 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 1-variable

Variables[kappa]

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

alpha= 1;
beta = 1;
gamma=1;
rho=1;
Abivector=(({{0, -(1/(Sqrt[2])), -(1/(Sqrt[2])), 0}, {(1/(Sqrt[2])), 0, 0, 0}, {(1/(Sqrt[2])), 0, 0, 0}, {0, 0, 0, 0}}));
Bbivector=Abivector;

Note these satisfy beta^2-alpha gamma = 0

beta^2-alpha gamma

Verify that kappa 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

fresnel

Note: 
  - The Fresnel polynomial has four linear factors
  - When k65 = 1, the Fresnel polynomial is the zero polynomial

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, 0, -(1/(Sqrt[2])), 0}, {0, 0, 0, 0}, {(1/(Sqrt[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]]]