Skip to content

Drawing three dimensional bulk and surface Brillouin Zones.

License

Notifications You must be signed in to change notification settings

Zijia-Cheng/DrawBZ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Draw Brillouin Zones

Please add a star if you like this program!

Welcome to use this small program for drawing three-dimensional Bulk and Surface Brillouin Zones.

Directly download the Jupyter notebook/Python file and use it! Require numpy and matplotlib

Class: BZ

Initial input: Vectors of bulk Brillouin zone, with unit A^-1 and written in the Cartesian coordinates. eg: np.array([[1,0,0],[0,1,0],[0,0,1]]).

*To calculate the Bulk BZ, just run method self.bulkBZ(), then you can get attributes: self.hs_lines_f: sides of the bulk BZ; self.hs_points: corner of the bulk BZ.

*Similarly, for obtaining surface BZ, run method self.surfaceBZ(dis,direc), where dis = an arbitrary positive number repsenting the distance between Bulk BZ center and surface BZ canter for plotting purpose, direc: surface normal direction written in Fractional coordinates with BZ vectors as basis. Then you can get attributes: self.hs_lines_pro_f and self.hs_pro_points.

!Make sure call bulkbZ before calling surfaceBz.

Example:

Screen Shot 2022-07-17 at 10 12 48 PM

Screen Shot 2022-07-17 at 10 13 15 PM

Screen Shot 2022-07-17 at 10 14 05 PM

Screen Shot 2022-07-17 at 10 15 56 PM

Screen Shot 2022-07-17 at 10 16 25 PM

About

Drawing three dimensional bulk and surface Brillouin Zones.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published