# Fermi Surface Contour Plot on the Brillouin zone

I have plotted ContourPlot3D of fermi surface

e2[kx_, ky_, kz_] =
1/3 (2 (Cos[Sqrt[3] kx] + 2 Cos[(Sqrt[3] kx)/2] Cos[(3 ky)/2]) Cos[
3 kz] + Sqrt[
9 Abs[E^(-(1/2) I (Sqrt[3] kx - ky)) + E^(-I ky) + E^(
1/2 I (Sqrt[3] kx + ky))]^2 + (3 +
4 (-Cos[(Sqrt[3] kx)/2] + Cos[(3 ky)/2]) Sin[(Sqrt[3] kx)/
2] Sin[3 kz])^2])
ContourPlot3D[e2[kx, ky, kz] ==
0, {kx, (-4 \[Pi])/(3 Sqrt[3] a), (4 \[Pi])/(
3 Sqrt[3] a)}, {ky, (-2 \[Pi])/(3 a), (2 \[Pi])/(3 a)}, {kz, -\[Pi]/
c, \[Pi]/c}, AxesLabel -> Automatic]


The Brillouin zone looks like the 3D hexagonal lattice

How can I show the Fermi surface on the the above Hexagonal lattice? (Parameters a=1 and c=3)

• You can use this: p = ContourPlot3D[...]; r = \[Pi]/a; h = -\[Pi]/c; \[Phi] = 0; hexP = CirclePoints[{r, \[Phi]}, 6]; hex = ConvexHullRegion[(Append[#, -h] & /@ hexP)~ Join~(Append[#, h] & /@ hexP)]; Show[Graphics3D[{EdgeForm[Black], FaceForm[None], hex}], p] However, you have to adjust r, h and \[Phi] because I don't know how exactly they relate to your parameters a, b and c. Aug 11, 2021 at 15:19
• @Domen I ran the code you sent with appropriate parameters, but its giving an error that "ConvexHullRegion is not a Graphics3D primitive or directive" Aug 11, 2021 at 15:36
• Can you provide us the appropriate parameters, please? Aug 11, 2021 at 15:49
• @Domen I have edited the post with parameters. I hope that should be enough. If you can show me that you are that you are able to make a 3D hexagon. I think that should answer my question. Aug 11, 2021 at 16:03
• I see it now, you are probably using an older version of Mathematica. Replace ConvexHullRegion with ConvexHullMesh in my code. Aug 11, 2021 at 16:05

To generate hexagonal prism, you can CirclePoints[r, \[Phi]}, 6] together with ConvexHullMesh[]. This prism is defined by the radius $$r$$, height $$h$$, and it is rotated around the $$z$$-axis by the angle $$\phi$$.

a = 1;
c = 3;
p = ContourPlot3D[
e2[kx, ky, kz] ==
0, {kx, (-4 \[Pi])/(3 Sqrt[3] a), (4 \[Pi])/(3 Sqrt[
3] a)}, {ky, (-2 \[Pi])/(3 a), (2 \[Pi])/(3 a)}, {kz, -\[Pi]/
c, \[Pi]/c}, AxesLabel -> Automatic];

r = (4 \[Pi])/(3 Sqrt[3] a);
h = \[Pi]/c;
\[Phi] = 0;
hexagon = CirclePoints[{r, \[Phi]}, 6];
prism = ConvexHullMesh[(Append[#, -h/2] & /@ hexagon)~Join~(Append[#, h/2] & /@ hexagon)];
Show[p, Graphics3D[{EdgeForm[Black], FaceForm[None], prism}]]


You should appropriately change the parameters for the prism so that its dimensions match the Brillouin zone (I have forgotten my solid state physics, so I am not sure how exactly should the Fermi surface be positioned relative to the hexagonal lattice).