bandu 1.1.0__py3-none-any.whl → 1.2.0__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.
- bandu/bandu.py +1 -1
- bandu/isosurface_class.py +32 -25
- bandu/wfk_class.py +27 -27
- {bandu-1.1.0.dist-info → bandu-1.2.0.dist-info}/METADATA +59 -9
- bandu-1.2.0.dist-info/RECORD +14 -0
- bandu-1.1.0.dist-info/RECORD +0 -14
- {bandu-1.1.0.dist-info → bandu-1.2.0.dist-info}/WHEEL +0 -0
- {bandu-1.1.0.dist-info → bandu-1.2.0.dist-info}/licenses/LICENSE +0 -0
- {bandu-1.1.0.dist-info → bandu-1.2.0.dist-info}/top_level.txt +0 -0
bandu/bandu.py
CHANGED
|
@@ -268,6 +268,6 @@ class BandU():
|
|
|
268
268
|
for i in range(nums[0]-1, nums[1]):
|
|
269
269
|
file_name = xsf_name + f'_{i+1}'
|
|
270
270
|
wfk = copy(self.bandu_fxns[i])
|
|
271
|
-
wfk.wfk_coeffs = wfk.wfk_coeffs.reshape((z,x
|
|
271
|
+
wfk.wfk_coeffs = wfk.wfk_coeffs.reshape((z,y,x))
|
|
272
272
|
wfk = wfk.XSFFormat()
|
|
273
273
|
wfk.WriteXSF(xsf_file=file_name)
|
bandu/isosurface_class.py
CHANGED
|
@@ -42,6 +42,10 @@ class Isosurface():
|
|
|
42
42
|
Default 0.05, this scales inversely with kpoint grid size (larger grids require smaller radius)
|
|
43
43
|
sym_ops : np.ndarray
|
|
44
44
|
Array of symmetry operations for generating points in Brillouin Zone
|
|
45
|
+
grid_stretch : float
|
|
46
|
+
Value that stretches grid that is used to interpolate bands
|
|
47
|
+
If portions of Brillouin Zone are cropped off, increase this value
|
|
48
|
+
Default is 0.15
|
|
45
49
|
|
|
46
50
|
Methods
|
|
47
51
|
-------
|
|
@@ -51,7 +55,8 @@ class Isosurface():
|
|
|
51
55
|
def __init__(
|
|
52
56
|
self, points:np.ndarray=np.zeros(1), values:np.ndarray=np.zeros(1), rec_latt:np.ndarray=np.zeros(1),
|
|
53
57
|
wfk_name:str='', grid_steps:tuple=(50,50,50), fermi_energy:float=0.0, energy_level:float=0.0,
|
|
54
|
-
width:float=0.005, radius:float=0.05, nbands:list[int]=[], sym_ops:np.ndarray=np.zeros(1),
|
|
58
|
+
width:float=0.005, radius:float=0.05, nbands:list[int]=[], sym_ops:np.ndarray=np.zeros(1),
|
|
59
|
+
grid_stretch:float=0.15
|
|
55
60
|
)->None:
|
|
56
61
|
# define attributes
|
|
57
62
|
self.points=points
|
|
@@ -64,9 +69,9 @@ class Isosurface():
|
|
|
64
69
|
self.radius=radius
|
|
65
70
|
self.nbands=nbands
|
|
66
71
|
self.sym_ops=sym_ops
|
|
67
|
-
self.
|
|
72
|
+
self.grid_stretch=grid_stretch
|
|
68
73
|
# check if enough information is provided to class to construct isosurfaces
|
|
69
|
-
if self.points.
|
|
74
|
+
if self.points.shape == (1,) and self.values.shape == (1,):
|
|
70
75
|
if wfk_name == '':
|
|
71
76
|
raise ValueError((
|
|
72
77
|
'Either the points and the values attributes must be defined or the wfk_name attribute '
|
|
@@ -126,8 +131,18 @@ class Isosurface():
|
|
|
126
131
|
dimy = self.grid_steps[1]
|
|
127
132
|
dimz = self.grid_steps[2]
|
|
128
133
|
grid = pv.ImageData()
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
stretch_factor = self.grid_stretch
|
|
135
|
+
dim_stretch = [2*stretch_factor/dim for dim in self.grid_steps]
|
|
136
|
+
grid.origin = (
|
|
137
|
+
xmin - 0.5*stretch_factor,
|
|
138
|
+
ymin - 0.5*stretch_factor,
|
|
139
|
+
zmin - 0.5*stretch_factor
|
|
140
|
+
)
|
|
141
|
+
grid.spacing = (
|
|
142
|
+
2*xmax/dimx + dim_stretch[0],
|
|
143
|
+
2*ymax/dimy + dim_stretch[1],
|
|
144
|
+
2*zmax/dimz + dim_stretch[2]
|
|
145
|
+
)
|
|
131
146
|
grid.dimensions = (dimx, dimy, dimz)
|
|
132
147
|
return grid
|
|
133
148
|
#-----------------------------------------------------------------------------------------------------------------#
|
|
@@ -185,22 +200,18 @@ class Isosurface():
|
|
|
185
200
|
nkpt = wfk.nkpt
|
|
186
201
|
self.fermi_energy = wfk.fermi
|
|
187
202
|
self.rec_latt = wc.WFK(lattice=wfk.real_lattice).Real2Reciprocal()
|
|
188
|
-
|
|
189
|
-
eigs
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
for eigval in eigs[:,i]:
|
|
201
|
-
if min_val <= eigval <= max_val:
|
|
202
|
-
band_num.append(i)
|
|
203
|
-
break
|
|
203
|
+
for wfk_obj in wfk.ReadEigenvalues():
|
|
204
|
+
eigs.append(wfk_obj.eigenvalues)
|
|
205
|
+
eigs = np.array(eigs).reshape((nkpt,nbands))
|
|
206
|
+
# look through eigenvalues to find which bands to contour
|
|
207
|
+
min_val = self.fermi_energy + self.energy_level - self.width/2
|
|
208
|
+
max_val = self.fermi_energy + self.energy_level + self.width/2
|
|
209
|
+
band_num = []
|
|
210
|
+
for i in range(nbands):
|
|
211
|
+
for eigval in eigs[:,i]:
|
|
212
|
+
if min_val <= eigval <= max_val:
|
|
213
|
+
band_num.append(i)
|
|
214
|
+
break
|
|
204
215
|
# return kpoints and bands of interest
|
|
205
216
|
bands = np.take(eigs, band_num, axis=1)
|
|
206
217
|
shifts = brlzn.BZ(self.rec_latt).GetShifts(kpoints)
|
|
@@ -222,8 +233,4 @@ class Isosurface():
|
|
|
222
233
|
kpoints = np.delete(all_kpts, 0, axis=0)
|
|
223
234
|
bands = np.delete(all_eigs, 0, axis=0)
|
|
224
235
|
kpoints = np.matmul(kpoints, self.rec_latt)
|
|
225
|
-
if self._debug:
|
|
226
|
-
print(kpoints.shape)
|
|
227
|
-
print(bands.shape)
|
|
228
|
-
raise SystemExit()
|
|
229
236
|
return kpoints, bands, band_num, ir_kpts
|
bandu/wfk_class.py
CHANGED
|
@@ -138,16 +138,16 @@ class WFK():
|
|
|
138
138
|
If nothing is passed, it is assumed the coefficients of a single band are supplied.
|
|
139
139
|
'''
|
|
140
140
|
# initialize 3D grid
|
|
141
|
-
gridded_wfk = np.zeros((self.ngfftz, self.
|
|
141
|
+
gridded_wfk = np.zeros((self.ngfftz, self.ngffty, self.ngfftx), dtype=complex)
|
|
142
142
|
# update grid with wfk coefficients
|
|
143
143
|
for k, kpt in enumerate(self.pw_indices):
|
|
144
144
|
kx = kpt[0]
|
|
145
145
|
ky = kpt[1]
|
|
146
146
|
kz = kpt[2]
|
|
147
147
|
if band_index >= 0:
|
|
148
|
-
gridded_wfk[kz,
|
|
148
|
+
gridded_wfk[kz, ky, kx] = self.wfk_coeffs[band_index][k]
|
|
149
149
|
else:
|
|
150
|
-
gridded_wfk[kz,
|
|
150
|
+
gridded_wfk[kz, ky, kx] = self.wfk_coeffs[k]
|
|
151
151
|
new_WFK = copy(self)
|
|
152
152
|
new_WFK.wfk_coeffs = gridded_wfk
|
|
153
153
|
return new_WFK
|
|
@@ -166,9 +166,9 @@ class WFK():
|
|
|
166
166
|
If nothing is passed, it is assumed the coefficients of a single band are supplied.
|
|
167
167
|
'''
|
|
168
168
|
# check if coefficients are gridded before undoing grid format
|
|
169
|
-
if self.wfk_coeffs.shape != (self.ngfftz,self.
|
|
169
|
+
if self.wfk_coeffs.shape != (self.ngfftz,self.ngffty,self.ngfftx):
|
|
170
170
|
raise ValueError((
|
|
171
|
-
f'Plane wave coefficients must be in 3D grid with shape ({self.ngfftz}, {self.
|
|
171
|
+
f'Plane wave coefficients must be in 3D grid with shape ({self.ngfftz}, {self.ngffty}, {self.ngfftx})'
|
|
172
172
|
' in order to remove the gridded format'
|
|
173
173
|
))
|
|
174
174
|
if band_index >= 0:
|
|
@@ -192,7 +192,7 @@ class WFK():
|
|
|
192
192
|
# Fourier transform reciprocal grid to real space grid
|
|
193
193
|
real_coeffs = fftn(self.wfk_coeffs, norm='ortho')
|
|
194
194
|
new_WFK = copy(self)
|
|
195
|
-
new_WFK.wfk_coeffs = np.array(real_coeffs).reshape((self.ngfftz, self.
|
|
195
|
+
new_WFK.wfk_coeffs = np.array(real_coeffs).reshape((self.ngfftz, self.ngffty, self.ngfftx))
|
|
196
196
|
return new_WFK
|
|
197
197
|
#-----------------------------------------------------------------------------------------------------------------#
|
|
198
198
|
# method transforming real space wfks to reciprocal space
|
|
@@ -206,7 +206,7 @@ class WFK():
|
|
|
206
206
|
# Fourier transform real space grid to reciprocal space grid
|
|
207
207
|
reciprocal_coeffs = ifftn(self.wfk_coeffs, norm='ortho')
|
|
208
208
|
new_WFK = copy(self)
|
|
209
|
-
new_WFK.wfk_coeffs = reciprocal_coeffs
|
|
209
|
+
new_WFK.wfk_coeffs = np.array(reciprocal_coeffs).reshape((self.ngfftz,self.ngffty,self.ngfftx))
|
|
210
210
|
return new_WFK
|
|
211
211
|
#-----------------------------------------------------------------------------------------------------------------#
|
|
212
212
|
# method for normalizing wfks
|
|
@@ -430,34 +430,34 @@ class WFK():
|
|
|
430
430
|
# append zeros to ends of all axes in grid_wfk
|
|
431
431
|
# zeros get replaced by values at beginning of each axis
|
|
432
432
|
# this repetition is required by XSF format
|
|
433
|
-
if np.shape(self.wfk_coeffs) != (self.ngfftz, self.
|
|
433
|
+
if np.shape(self.wfk_coeffs) != (self.ngfftz, self.ngffty, self.ngfftx):
|
|
434
434
|
raise ValueError(
|
|
435
435
|
f'''Passed array is not the correct shape:
|
|
436
|
-
Expected: ({self.ngfftz}, {self.
|
|
436
|
+
Expected: ({self.ngfftz}, {self.ngffty}, {self.ngfftx}),
|
|
437
437
|
Received: {np.shape(self.wfk_coeffs)}
|
|
438
438
|
''')
|
|
439
439
|
else:
|
|
440
440
|
grid_wfk = self.wfk_coeffs
|
|
441
|
-
grid_wfk = np.append(grid_wfk, np.zeros((1, self.
|
|
442
|
-
grid_wfk = np.append(grid_wfk, np.zeros((self.ngfftz+1, 1, self.
|
|
443
|
-
grid_wfk = np.append(grid_wfk, np.zeros((self.ngfftz+1, self.
|
|
441
|
+
grid_wfk = np.append(grid_wfk, np.zeros((1, self.ngffty, self.ngfftx)), axis=0)
|
|
442
|
+
grid_wfk = np.append(grid_wfk, np.zeros((self.ngfftz+1, 1, self.ngfftx)), axis=1)
|
|
443
|
+
grid_wfk = np.append(grid_wfk, np.zeros((self.ngfftz+1, self.ngffty+1, 1)), axis=2)
|
|
444
444
|
for x in range(self.ngfftx+1):
|
|
445
445
|
for y in range(self.ngffty+1):
|
|
446
446
|
for z in range(self.ngfftz+1):
|
|
447
447
|
if x == self.ngfftx:
|
|
448
|
-
grid_wfk[z][
|
|
448
|
+
grid_wfk[z][y][x] = grid_wfk[z][y][0]
|
|
449
449
|
if y == self.ngffty:
|
|
450
|
-
grid_wfk[z][
|
|
450
|
+
grid_wfk[z][y][x] = grid_wfk[z][0][x]
|
|
451
451
|
if z == self.ngfftz:
|
|
452
|
-
grid_wfk[z][
|
|
452
|
+
grid_wfk[z][y][x] = grid_wfk[0][x][y]
|
|
453
453
|
if x == self.ngfftx and y == self.ngffty:
|
|
454
|
-
grid_wfk[z][
|
|
454
|
+
grid_wfk[z][y][x] = grid_wfk[z][0][0]
|
|
455
455
|
if x == self.ngfftx and z == self.ngfftz:
|
|
456
|
-
grid_wfk[z][
|
|
456
|
+
grid_wfk[z][y][x] = grid_wfk[0][y][0]
|
|
457
457
|
if z == self.ngfftz and y == self.ngffty:
|
|
458
|
-
grid_wfk[z][
|
|
458
|
+
grid_wfk[z][y][x] = grid_wfk[0][0][x]
|
|
459
459
|
if x == self.ngfftx and y == self.ngffty and z == self.ngfftz:
|
|
460
|
-
grid_wfk[z][
|
|
460
|
+
grid_wfk[z][y][x] = grid_wfk[0][0][0]
|
|
461
461
|
new_WFK = copy(self)
|
|
462
462
|
new_WFK.wfk_coeffs = grid_wfk
|
|
463
463
|
new_WFK.ngfftx += 1
|
|
@@ -476,16 +476,16 @@ class WFK():
|
|
|
476
476
|
# to_be_del will be used to remove all extra data points added for XSF formatting
|
|
477
477
|
to_be_del = np.ones((self.ngfftz, self.ngfftx, self.ngffty), dtype=bool)
|
|
478
478
|
for z in range(self.ngfftz):
|
|
479
|
-
for x in range(self.
|
|
480
|
-
for y in range(self.
|
|
479
|
+
for x in range(self.ngffty):
|
|
480
|
+
for y in range(self.ngfftx):
|
|
481
481
|
# any time you reach the last density point it is a repeat of the first point
|
|
482
482
|
# remove the end points along each axis
|
|
483
483
|
if y == self.ngffty - 1 or x == self.ngfftx - 1 or z == self.ngfftz - 1:
|
|
484
|
-
to_be_del[z,x
|
|
484
|
+
to_be_del[z,y,x] = False
|
|
485
485
|
# remove xsf entries from array
|
|
486
486
|
grid = grid[to_be_del]
|
|
487
487
|
# restore grid shape
|
|
488
|
-
grid = grid.reshape((self.ngfftz-1, self.
|
|
488
|
+
grid = grid.reshape((self.ngfftz-1, self.ngffty-1, self.ngfftx-1))
|
|
489
489
|
new_WFK = copy(self)
|
|
490
490
|
new_WFK.wfk_coeffs = grid
|
|
491
491
|
new_WFK.ngfftx -= 1
|
|
@@ -539,13 +539,13 @@ class WFK():
|
|
|
539
539
|
print(f'{self.lattice[2,0]} {self.lattice[2,1]} {self.lattice[2,2]}', file=xsf)
|
|
540
540
|
count = 0
|
|
541
541
|
for z in range(self.ngfftz):
|
|
542
|
-
for
|
|
543
|
-
for
|
|
542
|
+
for y in range(self.ngffty):
|
|
543
|
+
for x in range(self.ngfftx):
|
|
544
544
|
count += 1
|
|
545
545
|
if _component:
|
|
546
|
-
print(self.wfk_coeffs[z,x
|
|
546
|
+
print(self.wfk_coeffs[z,y,x].real, file=xsf, end=' ')
|
|
547
547
|
else:
|
|
548
|
-
print(self.wfk_coeffs[z,x
|
|
548
|
+
print(self.wfk_coeffs[z,y,x].imag, file=xsf, end=' ')
|
|
549
549
|
if count == 6:
|
|
550
550
|
count = 0
|
|
551
551
|
print('\n', file=xsf, end='')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bandu
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.0
|
|
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
|
-
|
|
102
|
+
principal_orbital_components:bool,
|
|
103
|
+
fermi_surface:bool,
|
|
104
|
+
fermi_surface_projection:bool,
|
|
105
|
+
load_fermi_surface:bool
|
|
97
106
|
)->None:
|
|
98
|
-
|
|
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 =
|
|
123
|
+
sym = False
|
|
108
124
|
)
|
|
109
125
|
wfk.ToXSF(
|
|
110
126
|
xsf_name = bandu_name,
|
|
111
127
|
nums = [1,10]
|
|
112
128
|
)
|
|
113
|
-
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
187
|
+
principal_orbital_components=True,
|
|
188
|
+
fermi_surface=True,
|
|
189
|
+
fermi_surface_projection=True,
|
|
190
|
+
load_fermi_surface=True
|
|
141
191
|
)
|
|
142
192
|
<pre>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
bandu/abinit_reader.py,sha256=U4HUUTnju9MpyGtWMOedUQLln90k2F0XIv0Q0zcP05c,47704
|
|
2
|
+
bandu/bandu.py,sha256=-gahVb8Eqx33RzcbYngzjDHmbMib6grRXEQE_fTgLWg,12786
|
|
3
|
+
bandu/brillouin_zone.py,sha256=-SarCuvUthk5h_sFHM6KDHLns1eCWGk_v5fHngWFu08,7997
|
|
4
|
+
bandu/colors.py,sha256=OcIBwVh9ieu04n1cruRgyoYslKsdfJKf-u4oWMd3CwQ,2316
|
|
5
|
+
bandu/isosurface_class.py,sha256=M6XAuy89uyX3v_JX3wYd5VqAWel9JiMQ7wRBhFhhn3A,10236
|
|
6
|
+
bandu/plotter.py,sha256=wSIA1TpwhioPUHpBe4_gc14e8K98fv3q0LwwD5NLboo,27725
|
|
7
|
+
bandu/translate.py,sha256=YGTkwne4bdrw649OjRKBio7IBsCNVoa__rjkFZK6uRI,2217
|
|
8
|
+
bandu/wfk_class.py,sha256=QchfEjqssSHbC3IcXrKNz3euFLR62WMj-ZPFd2m0mX0,26215
|
|
9
|
+
bandu/xsf_reader.py,sha256=gfv7LsTofWw4PrcOeqltOREJD6RLDq8CeFSsnlfohEw,4778
|
|
10
|
+
bandu-1.2.0.dist-info/licenses/LICENSE,sha256=jk_B-WYDiyH9RtxC45pO6JUtBxmfX5i240dVzv1okCg,1088
|
|
11
|
+
bandu-1.2.0.dist-info/METADATA,sha256=abHRtBrAvc6Vos3f5SwcvdOilNA4pu90mEVhK3nxapU,8945
|
|
12
|
+
bandu-1.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
13
|
+
bandu-1.2.0.dist-info/top_level.txt,sha256=AxbMFU3BRdjCr75K9gAdblwlBMQ3qr9-AaCC-IS8OWs,6
|
|
14
|
+
bandu-1.2.0.dist-info/RECORD,,
|
bandu-1.1.0.dist-info/RECORD
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
bandu/abinit_reader.py,sha256=U4HUUTnju9MpyGtWMOedUQLln90k2F0XIv0Q0zcP05c,47704
|
|
2
|
-
bandu/bandu.py,sha256=EA8AsM517NrnUL6Za5q4W0NAklOCbLomvY_7v51jQ48,12786
|
|
3
|
-
bandu/brillouin_zone.py,sha256=-SarCuvUthk5h_sFHM6KDHLns1eCWGk_v5fHngWFu08,7997
|
|
4
|
-
bandu/colors.py,sha256=OcIBwVh9ieu04n1cruRgyoYslKsdfJKf-u4oWMd3CwQ,2316
|
|
5
|
-
bandu/isosurface_class.py,sha256=o9VqcZ8b1tqkSQN6oJp7PSPkt-QNZg1V_IUbhAsFcgA,10018
|
|
6
|
-
bandu/plotter.py,sha256=wSIA1TpwhioPUHpBe4_gc14e8K98fv3q0LwwD5NLboo,27725
|
|
7
|
-
bandu/translate.py,sha256=YGTkwne4bdrw649OjRKBio7IBsCNVoa__rjkFZK6uRI,2217
|
|
8
|
-
bandu/wfk_class.py,sha256=zsgC17OcWTLan4riaGW2ObBvFHICmZqbizClJV8hsmI,26158
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|