# Plotting a contour

I have a 4x4 matrix defined as follows:

σ = Table[PauliMatrix[k], {k, 1, 3}];
τ = Table[PauliMatrix[l], {l, 1, 3}];

Hamiltonian[kx_, ky_, kzd_, v_, λ_, ΔT_, ΔN_, V_] :=
v kx KroneckerProduct[τ[[3]], σ[[2]]] - v ky KroneckerProduct[τ[[3]], σ[[1]]]
+ λ (kx^3 - 3 kx ky^2) KroneckerProduct[τ[[3]], σ[[3]]]
+ V KroneckerProduct[τ[[3]], IdentityMatrix[2]]
+ (ΔT + ΔN Cos[kzd]) KroneckerProduct[τ[[1]], IdentityMatrix[2]]
+ ΔN Sin[kzd] KroneckerProduct[τ[[2]], IdentityMatrix[2]]


I want to make a plot of the eigenvalues in 3D in the $$k_z d = \pi$$ plane which is easy enough:

Energy[kx_, ky_, kzd_, v_, λ_, ΔT_, ΔN_, V_] = Eigenvalues[Hamiltonian[kx, ky, kzd, v, λ, ΔT, ΔN, V]] //FullSimplify;

Plot3D[{Energy[kx, ky, π, 0.05, 0.025, 0.2, 0.2, 0.5]}, {kx, -π, π}, {ky, -π, π}]


From this 3D plot I see that there are twelve points where the middle two "bands" touch at Energy = 0 which I expected. I now want to make a contour plot of these twelve points which I naively thought should be done as

ContourPlot[{Energy[kx, ky, π, 0.05, 0.025, 0.2, 0.2, 0.5]==0}, {kx, -π, π}, {ky, -π, π}]


But to my surprise, none of the twelve points show up, which makes me wonder if I am doing anything incorrectly in making the contour plot of these twelve locations? If this is possible how should I approach this?

More than twelve points, it seems to me that you would have segments along which the two functions are equal to zero (and to each other):

Plot3D[
Evaluate@ Energy[kx, ky, π, 5/100, 25/1000, 2/10, 2/10, 5/10][[1 ;; 2]],
{kx, -π, π}, {ky, -π, π},
PlotLegends -> Range[2], PlotPoints -> 50
]


These regions would be the crescent shaped segments shown in the 3D plot above.

We can highlight those using e.g. RegionPlot:

RegionPlot[
ImplicitRegion[
Equal @@ Energy[kx, ky, π, 5/100, 25/1000, 2/10, 2/10, 5/10][[1 ;; 2]],
{{kx, -π, π}, {ky, -π, π}}
]
]