bandu 1.1.0__py3-none-any.whl → 1.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bandu
3
- Version: 1.1.0
3
+ Version: 1.1.1
4
4
  Summary: The BandU program constructs a rank ordered series of crystal orbitals using principal component analysis. These principal orbital components can then be projected on the Fermi surface and visualized
5
5
  Author-email: Patrick Cross <pcross@wisc.edu>
6
6
  Project-URL: Homepage, https://github.com/pcross0405/BandU
@@ -31,6 +31,8 @@ BandU projections, if provided with the necessary k-point and eigenvalue data.</
31
31
  -------------------------------------------------------------------------------------------------------
32
32
  <h1><p align="center">INSTALLATION INSTRUCTIONS</p></h1>
33
33
 
34
+ <h2><p align="center">THROUGH GITHUB</p></h2>
35
+
34
36
  1) Inside that directory type on the command line
35
37
  "git clone https://github.com/pcross0405/BandU.git"
36
38
 
@@ -46,6 +48,10 @@ BandU projections, if provided with the necessary k-point and eigenvalue data.</
46
48
 
47
49
  6) On the command line type
48
50
  "pip install dist/*.whl"
51
+
52
+ <h2><p align="center">THROUGH PIP</p></h2>
53
+
54
+ pip install bandu
49
55
 
50
56
  -------------------------------------------------------------------------------------------------------
51
57
  <h1><p align="center">DEPENDENCIES</p></h1>
@@ -93,9 +99,19 @@ xsf_path = f'path\to\XSF\file\{root_name}_bandu_{xsf_number}'
93
99
  bandu_name = f'{root_name}_bandu'
94
100
 
95
101
  def main(
96
- Band_U:bool, Iso_Surf:bool, Load_Surf:bool
102
+ principal_orbital_components:bool,
103
+ fermi_surface:bool,
104
+ fermi_surface_projection:bool,
105
+ load_fermi_surface:bool
97
106
  )->None:
98
- if Band_U: # create BandU principal orbital components
107
+ # this option will generate the principal orbital components 1 through 10
108
+ # to generate more or less, adjust the range of the "nums" keyword in the ToXSF() function
109
+ # the energy sampled can be set, relative to the Fermi energy, by changing the the "energy_level" global variable
110
+ # states are included in the analysis if they are within +/- 1/2*width of the set energy_level
111
+ # to get fewer or more states, decrease or increase, respectively, the "width" global variable
112
+ # by default, the prinicipal orbital components are generated from an irreducible wedge of the Brillouin Zone
113
+ # to generate from the full BZ, change the "sym" attribute in the BandU class from "False" to "True"
114
+ if principal_orbital_components:
99
115
  wfk_gen = AbinitWFK(wfk_path).ReadWFK(
100
116
  energy_level = energy_level,
101
117
  width=width
@@ -104,13 +120,39 @@ def main(
104
120
  wfks = wfk_gen,
105
121
  energy_level = energy_level,
106
122
  width = width,
107
- sym = True
123
+ sym = False
108
124
  )
109
125
  wfk.ToXSF(
110
126
  xsf_name = bandu_name,
111
127
  nums = [1,10]
112
128
  )
113
- elif Iso_Surf: # construct energy isosurfaces and plot them
129
+ # this option will only generate an energy isosurface and will not project principal component overlap onto the surface
130
+ # the "energy_level" global variable is the energy at which the isosurface will be be generated, relative to the Fermi energy
131
+ # so energy_level = 0.0 will generate the Fermi surface
132
+ # the "width" global variable determines how many states are included in the generation of the isosurface
133
+ # a small width (~10 meV or ~0.5 mHa) is best here as larger widths may introduce bands that do not cross the Fermi energy
134
+ # the color of the surface can be changed to any string compatible with the matplotlib colors
135
+ # see named colors here: https://matplotlib.org/stable/gallery/color/named_colors.html
136
+ # the Plot function has many other keywords to customize the visuals to the users liking, see the docstring for more
137
+ elif fermi_surface:
138
+ contours = Isosurface(
139
+ wfk_name = wfk_path,
140
+ energy_level = energy_level,
141
+ width = width
142
+ )
143
+ contours.Contour() # make contours
144
+ plot = Plotter(
145
+ isosurface = contours,
146
+ save_file=f'{root_name}_bandu_{xsf_number}_fermi_surf.pkl'
147
+ ) # create plotter object
148
+ plot.Plot(
149
+ color = 'silver',
150
+ ) # plot contours
151
+ # this option will generate an energy isosurface as well as project the overlap of a principal orbital component onto the surface
152
+ # everything remains the same as the previous option, except now the principal orbtial component XSF file is needed
153
+ # also the color of the surface is done with the Colors module by default
154
+ # other colors can be made with the Colors module, also any matplotlib colormap works
155
+ elif fermi_surface_projection:
114
156
  contours = Isosurface(
115
157
  wfk_name = wfk_path,
116
158
  energy_level = energy_level,
@@ -129,14 +171,22 @@ def main(
129
171
  surface_vals = overlap_vals,
130
172
  colormap = Colors().blues,
131
173
  ) # plot contours
132
- elif Load_Surf:
174
+ # this option will load a previously generated and saved fermi surface file
175
+ # update the "save_path" keyword to match the path and name of your save file
176
+ elif load_fermi_surface:
133
177
  Plotter().Load(
134
178
  save_path='{root_name}_bandu_{xsf_number}_fermi_surf.pkl',
135
179
  )
180
+ # to run any of the options above, make sure to set that option to "True"
181
+ # also be sure that the other options (or at least all options that come before) are set to "False"
182
+ # the main function will only run which ever option is the first found to be "True" in top to bottom order
183
+ # in other words, the priority follows as most to least in the order:
184
+ # principal_orbital_components -> fermi_surface -> fermi_surface_projection -> load_fermi_surface
136
185
  if __name__ == '__main__':
137
186
  main(
138
- Band_U = False,
139
- Iso_Surf = False,
140
- Load_Surf = False,
187
+ principal_orbital_components=True,
188
+ fermi_surface=True,
189
+ fermi_surface_projection=True,
190
+ load_fermi_surface=True
141
191
  )
142
192
  <pre>
@@ -7,8 +7,8 @@ bandu/plotter.py,sha256=wSIA1TpwhioPUHpBe4_gc14e8K98fv3q0LwwD5NLboo,27725
7
7
  bandu/translate.py,sha256=YGTkwne4bdrw649OjRKBio7IBsCNVoa__rjkFZK6uRI,2217
8
8
  bandu/wfk_class.py,sha256=zsgC17OcWTLan4riaGW2ObBvFHICmZqbizClJV8hsmI,26158
9
9
  bandu/xsf_reader.py,sha256=gfv7LsTofWw4PrcOeqltOREJD6RLDq8CeFSsnlfohEw,4778
10
- bandu-1.1.0.dist-info/licenses/LICENSE,sha256=jk_B-WYDiyH9RtxC45pO6JUtBxmfX5i240dVzv1okCg,1088
11
- bandu-1.1.0.dist-info/METADATA,sha256=RiyKZil80B49SCmAxMNyzdn93TOOZWV9o_XCBRru3QM,5611
12
- bandu-1.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
13
- bandu-1.1.0.dist-info/top_level.txt,sha256=AxbMFU3BRdjCr75K9gAdblwlBMQ3qr9-AaCC-IS8OWs,6
14
- bandu-1.1.0.dist-info/RECORD,,
10
+ bandu-1.1.1.dist-info/licenses/LICENSE,sha256=jk_B-WYDiyH9RtxC45pO6JUtBxmfX5i240dVzv1okCg,1088
11
+ bandu-1.1.1.dist-info/METADATA,sha256=hLKKV7kP7l0lo6CKnUvHxHXH1_MozcRGG7ck98O1NDw,8945
12
+ bandu-1.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
13
+ bandu-1.1.1.dist-info/top_level.txt,sha256=AxbMFU3BRdjCr75K9gAdblwlBMQ3qr9-AaCC-IS8OWs,6
14
+ bandu-1.1.1.dist-info/RECORD,,
File without changes