2
$\begingroup$

I have a doubt about the calculation of the eigenvalue of the graphene Hamiltonian.

$ H = \begin{pmatrix} 0 & \Delta & \\ \Delta^{*} & 0& \\ \end{pmatrix}$

where $\Delta = \exp (-i a k_x) \left(1+2 \exp \left(\frac{1}{2} i 3 a k_x\right) \cos \left(\frac{1}{2} \sqrt{3} a k_y\right)\right)$ and $a=1$.

I can calculate the eigenvalues analytically:

$\lambda_{1,2} = \pm \sqrt{\Delta \Delta^{*}} = \pm\sqrt{4 \cos \left(\frac{3 \text{kx}}{2}\right) \cos \left(\frac{\sqrt{3} \text{ky}}{2}\right)+2 \cos \left(\sqrt{3} \text{ky}\right)+3}$

Using Mathematica I obtain,

$\eta_{1,2} = \pm e^{-\frac{1}{4} (3 i \text{kx})} \sqrt{\left(2 \cos \left(\frac{\sqrt{3} \text{ky}}{2}\right)+e^{\frac{3 i \text{kx}}{2}}\right) \left(1+2 e^{\frac{3 i \text{kx}}{2}} \cos \left(\frac{\sqrt{3} \text{ky}}{2}\right)\right)}$

These results are different. For example, for the positive eigenvalue and for $k_x = \pi$ and $k_y = \pi$ I obtain that $\lambda = 2.08$ and $\eta = -2.08$. Also, in Mathematica there is a jump when I plot the eigenvalue between $[-\pi,\pi]$

a = 1;
\[CapitalDelta]  =  Exp[-I*kx*a]*(1 + 2*Exp[I*3*kx*a/2]*Cos[Sqrt[3]/2*ky*a]);
s = {{0, \[CapitalDelta]}, {Conjugate[\[CapitalDelta]], 0}};
Eigenvalues[s] // Simplify

Plot3D[E^(-((3 I kx)/4))Sqrt[(E^((3 I kx)/2) + 2 Cos[(Sqrt[3] ky)/2]) (1 + 
     2 E^((3 I kx)/2) Cos[(Sqrt[3] ky)/2])], {kx, -Pi, Pi}, {ky, -Pi, 
  Pi}]

How I can fix that,

Thanks

$\endgroup$
2
  • $\begingroup$ Please post the actual Mathematica code in a copy and paste-able form (InputForm) so we can paste it into a notebook. $\endgroup$
    – Bob Hanlon
    Jun 9, 2023 at 2:01
  • $\begingroup$ Sure, I updated the question with the Mathematica code. $\endgroup$
    – F.Mark
    Jun 9, 2023 at 2:26

1 Answer 1

1
$\begingroup$

Too long for comment. Consider

a = 1;
\[CapitalDelta] = 
  Exp[-I*kx*a]*(1 + 2*Exp[I*3*kx*a/2]*Cos[Sqrt[3]/2*ky*a]);
s = {{0, \[CapitalDelta]}, {Conjugate[\[CapitalDelta]], 0}};

Det[s - \[Lambda]*IdentityMatrix[2]] // ComplexExpand;

charEq = Det[s - \[Lambda]*IdentityMatrix[2]] // ComplexExpand;

sols = SolveValues[charEq == 0, \[Lambda]] // FullSimplify

(* the output is your solution $\lambda_{1,2}$ *)

Now simple numerical check yields

autoEigenArg = ComplexExpand[Eigenvalues[s]];

Table[sols - autoEigenArg /. 
   Thread[{kx, ky} -> RandomReal[{-Pi/2, Pi/2}]], {20}] // Chop

(* all {0,0} *)

However if your increase interval

Table[sols - autoEigenArg /. 
   Thread[{kx, ky} -> RandomReal[{-Pi, Pi}]], {20}] // Chop

Then not all differences are zero. Therefore you can't fix it since the symbolic formulas indeed differ.

Your can get the same eigenvalues with

ss = {{0, \[CapitalDelta]}, {ComplexExpand[
     Conjugate[\[CapitalDelta]]], 0}};

autoEigenReImSS = Eigenvalues[ExpToTrig[ss]] // FullSimplify

(* the output is your solution $\lambda_{1,2}$ *)

ExpToTrig[ ] here is essential. Therefore, seems that Eigenvalues[ ] indeed handles both cases in a different way. Can be bug or limitation.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.