SAMBA-ilum 1.0.0.471__tar.gz → 1.0.0.473__tar.gz

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.
Files changed (64) hide show
  1. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/PKG-INFO +1 -1
  2. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
  3. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/__main__.py +1 -1
  4. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/HeteroStructure_Generator.py +3 -4
  5. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/data-base_json.py +93 -80
  6. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/setup.py +1 -1
  7. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/LICENSE.txt +0 -0
  8. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/README.md +0 -0
  9. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/SOURCES.txt +0 -0
  10. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
  11. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
  12. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/requires.txt +0 -0
  13. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/top_level.txt +0 -0
  14. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/__init__.py +0 -0
  15. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/BZ_2D.py +0 -0
  16. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
  17. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
  18. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
  19. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
  20. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
  21. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
  22. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
  23. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
  24. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
  25. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
  26. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_xy-scan +0 -0
  27. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_xyz-scan +0 -0
  28. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_z-scan +0 -0
  29. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
  30. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
  31. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
  32. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
  33. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
  34. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
  35. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
  36. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
  37. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
  38. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
  39. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/_info_pseudo.py +0 -0
  40. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/a-scan.py +0 -0
  41. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/a-scan_analysis.py +0 -0
  42. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/bader +0 -0
  43. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/bader_poscar.py +0 -0
  44. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/bader_update.py +0 -0
  45. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/charge_transfer.py +0 -0
  46. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/chgsum.pl +0 -0
  47. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/contcar_update.py +0 -0
  48. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/data-base_union.py +0 -0
  49. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/energy_scan.py +0 -0
  50. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/hubbard_correction.py +0 -0
  51. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/job.py +0 -0
  52. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/kpoints.py +0 -0
  53. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/lattice_plot3d.py +0 -0
  54. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/make_files.py +0 -0
  55. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/output.py +0 -0
  56. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/potcar.py +0 -0
  57. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/vdW_DF.py +0 -0
  58. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/xy-scan.py +0 -0
  59. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/xy-scan_analysis.py +0 -0
  60. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/xyz-scan.py +0 -0
  61. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/xyz-scan_analysis.py +0 -0
  62. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/z-scan.py +0 -0
  63. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/samba_ilum/src/z-scan_analysis.py +0 -0
  64. {samba_ilum-1.0.0.471 → samba_ilum-1.0.0.473}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SAMBA_ilum
3
- Version: 1.0.0.471
3
+ Version: 1.0.0.473
4
4
  Summary: ...
5
5
  Author: Augusto de Lelis Araujo
6
6
  Author-email: augusto-lelis@outlook.com
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SAMBA_ilum
3
- Version: 1.0.0.471
3
+ Version: 1.0.0.473
4
4
  Summary: ...
5
5
  Author: Augusto de Lelis Araujo
6
6
  Author-email: augusto-lelis@outlook.com
@@ -16,7 +16,7 @@ dir_samba = os.path.dirname(os.path.realpath(__file__))
16
16
  print(f'{dir_samba}')
17
17
  #--------------------
18
18
 
19
- version = '1.0.0.471'
19
+ version = '1.0.0.473'
20
20
 
21
21
  print(" ")
22
22
  print("=============================================================")
@@ -39,11 +39,10 @@ if (crit_area <= 0.0): crit_area = 0.01
39
39
  #----------------------------------------------------------------------------------------------------------------------------------------------
40
40
  # Rotulo temporário para os ions inequivalentes da célula unitária ----------------------------------------------------------------------------
41
41
  #----------------------------------------------------------------------------------------------------------------------------------------------
42
- letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'z', 'y', 'w' ]
43
- alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W' ]
44
- alphabet += ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'z', 'y', 'w' ]
42
+ letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W']
43
+ alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W']
45
44
  #------------------------------------------------------
46
- # Gerando 1040 rótulos temporários para os ions da rede
45
+ # Gerando 1066 rótulos temporários para os ions da rede
47
46
  #------------------------------------------------------
48
47
  for k in range(40):
49
48
  for i in range(len(letters)):
@@ -38,7 +38,8 @@ if (l_file == 'null' and l_file_SO == 'null'): sys.exit(0)
38
38
  #==========================================================
39
39
  kpoints_file = []
40
40
  kpath = []
41
- #---------
41
+ kpath_label = []
42
+ #---------------
42
43
  if os.path.isdir('output/Bandas'): dir_kpath = 'bands'
43
44
  if os.path.isdir('output/Bandas_SO'): dir_kpath = 'bands.SO'
44
45
  #-----------------------------------------------------------------------------
@@ -58,24 +59,27 @@ for i in range(len(kpoints_file)):
58
59
  if (j > 3 and len(lines[j]) > 1):
59
60
  line = lines[j].split()
60
61
  line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
61
- kpath.append([float(line[0]), float(line[1]), float(line[2]), str(line[3])])
62
- #-------------------------------------------------------------------------------------
62
+ kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
63
+ kpath_label.append(line[3])
64
+ #--------------------------------------
63
65
  if (len(kpoints_file) > 1):
64
66
  for j in range(len(lines)):
65
67
  if (i == 0 and j > 3 and len(lines[j]) > 1):
66
68
  line = lines[j].split()
67
69
  line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
68
- kpath.append([float(line[0]), float(line[1]), float(line[2]), str(line[3])])
70
+ kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
71
+ kpath_label.append([line[3]])
69
72
  if (i > 0 and j > 4 and len(lines[j]) > 1):
70
73
  line = lines[j].split()
71
74
  line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
72
- kpath.append([float(line[0]), float(line[1]), float(line[2]), str(line[3])])
75
+ kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
73
76
  #----------------------------------------------------------
74
77
  # Removendo elementos adjacentes e repetidos da lista kpath
75
78
  #----------------------------------------------------------
76
79
  i = 0
77
80
  while i < (len(kpath) -1):
78
81
  if kpath[i] == kpath[i +1]: del kpath[i +1]
82
+ if kpath_label[i] == kpath_label[i +1]: del kpath_label[i +1]
79
83
  else: i += 1 # Avança para o próximo par de elementos
80
84
 
81
85
 
@@ -125,54 +129,55 @@ if os.path.isfile('output/POSCAR.info'):
125
129
  passo = n_materials +1
126
130
  passo += 4
127
131
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
128
- area_perc_mismatch.append([float(temp1[0]), float(temp1[1])])
132
+ area_perc_mismatch.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
129
133
  if (n_materials == 3):
130
- area_perc_mismatch.append([float(temp1[2]), float(temp1[3])])
131
- #---------------------------------------------------------------
134
+ area_perc_mismatch.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
135
+ #-------------------------------------------------
132
136
  passo += 4
133
137
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
134
- for ii in range(len(temp1)): perc_area_change.append(float(temp1[ii]))
135
- #---------------------------------------------------------------------
138
+ for ii in range(len(temp1)): perc_area_change.append(round(float(temp1[ii]), 15))
139
+ #--------------------------------------------------------------
136
140
  passo += 4
137
141
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
138
- perc_mod_vectors_change.append([float(temp1[0]), float(temp1[1])])
139
- perc_mod_vectors_change.append([float(temp1[2]), float(temp1[3])])
142
+ perc_mod_vectors_change.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
143
+ perc_mod_vectors_change.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
140
144
  if (n_materials == 3):
141
- perc_mod_vectors_change.append([float(temp1[4]), float(temp1[5])])
142
- #--------------------------------------------------------------------
145
+ perc_mod_vectors_change.append([round(float(temp1[4]), 15), round(float(temp1[5]), 15)])
146
+ #------------------------------------------------------
143
147
  passo += 4
144
148
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
145
- angle_perc_mismatch.append([float(temp1[0]), float(temp1[1])])
149
+ angle_perc_mismatch.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
146
150
  if (n_materials == 3):
147
- angle_perc_mismatch.append([float(temp1[2]), float(temp1[3])])
148
- #----------------------------------------------------------------
151
+ angle_perc_mismatch.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
152
+ #--------------------------------------------------
149
153
  passo += 4
150
154
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
151
- for ii in range(len(temp1)): perc_angle_change.append(float(temp1[ii]))
152
- #----------------------------------------------------------------------
155
+ for ii in range(len(temp1)): perc_angle_change.append(round(float(temp1[ii]), 15))
156
+ #---------------------------------------------------------------
153
157
  passo += 4
154
158
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
155
- for ii in range(len(temp1)): rotation_angle.append(float(temp1[ii]))
156
- #-------------------------------------------------------------------
159
+ for ii in range(len(temp1)): rotation_angle.append(round(float(temp1[ii]), 15))
160
+ #------------------------------------------------------------
157
161
  for i in range(n_materials):
158
162
  passo += 4
159
163
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
160
164
  supercell_matrix.append([[int(temp1[0]), int(temp1[1])], [int(temp1[2]), int(temp1[3])]])
161
- #--------------------------------------------------------------------------------------------
165
+ # supercell_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
166
+ #------------------------------------------------------------------------
162
167
  for i in range(n_materials):
163
168
  passo += 4
164
169
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
165
- deformation_matrix.append([[float(temp1[0]), float(temp1[1])], [float(temp1[2]), float(temp1[3])]])
166
- #------------------------------------------------------------------------------------------------------
170
+ deformation_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
171
+ #--------------------------------------------------------------------------
167
172
  for i in range(n_materials):
168
173
  passo += 4
169
174
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
170
- strain_matrix.append([[float(temp1[0]), float(temp1[1])], [float(temp1[2]), float(temp1[3])]])
171
- #-------------------------------------------------------------------------------------------------
175
+ strain_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
176
+ #---------------------------------------------------------------------
172
177
  passo += 4
173
178
  temp1 = str(VTemp[passo]).replace('_', ' ').split()
174
- for ii in range(len(temp1)): shift_plane.append(float(temp1[ii]))
175
- #----------------------------------------------------------------
179
+ for ii in range(len(temp1)): shift_plane.append(round(float(temp1[ii]), 15))
180
+ #---------------------------------------------------------
176
181
  passo += 1
177
182
  for i in range(n_materials):
178
183
  id_materials.append(str(VTemp[-n_materials -1 +i]))
@@ -225,10 +230,12 @@ type_ions = poscar.readline().split()
225
230
  type_ions_n = poscar.readline().split()
226
231
  poscar.readline()
227
232
  coord_ions = []
233
+ rotulo_ions = []
228
234
  for i in range(len(type_ions)):
229
235
  for j in range(int(type_ions_n[i])):
230
236
  VTemp = poscar.readline().split()
231
- coord_ions.append([ float(VTemp[0]), float(VTemp[1]), float(VTemp[2]), str(type_ions[i]) ])
237
+ coord_ions.append([ round(float(VTemp[0]), 15), round(float(VTemp[1]), 15), round(float(VTemp[2]), 15) ])
238
+ rotulo_ions.append(type_ions[i])
232
239
  poscar.close()
233
240
 
234
241
 
@@ -243,6 +250,7 @@ for i in range(nion):
243
250
  VTemp = poscar.readline().split()
244
251
  temp_z.append(float(VTemp[2]))
245
252
  total_thickness = (max(temp_z) -min(temp_z))*param
253
+ total_thickness = round(total_thickness, 15)
246
254
  poscar.close()
247
255
  #---------------------------------------------------------
248
256
  if (n_materials == 1): thickness.append( total_thickness )
@@ -255,9 +263,12 @@ if (n_materials > 1):
255
263
  for j in range(int(nions_materials[i])):
256
264
  VTemp = poscar.readline().split()
257
265
  temp_z.append(float(VTemp[2]))
258
- thickness.append( (max(temp_z) -min(temp_z))*param )
259
- #---------------------------------------------------------------
260
- if (i > 0): z_separation.append( (min(temp_z) -temp_max)*param )
266
+ temp_t = (max(temp_z) -min(temp_z))*param
267
+ thickness.append(round(temp_t, 15))
268
+ #---------------------------------------
269
+ if (i > 0):
270
+ temp_sep = (min(temp_z) -temp_max)*param
271
+ z_separation.append(round(temp_sep, 15))
261
272
  temp_max = max(temp_z)
262
273
  #---------------------
263
274
  poscar.close()
@@ -308,7 +319,7 @@ if os.path.isfile('output/xy-scan/info_xy-scan.dat'):
308
319
  xyscan = open('output/xy-scan/info_xy-scan.dat', "r")
309
320
  #----------------------------------------------------
310
321
  for i in range(6): VTemp = xyscan.readline().split()
311
- e_slide = float(VTemp[2])
322
+ e_slide = round(float(VTemp[2]), 15)
312
323
  #-------------
313
324
  xyscan.close()
314
325
 
@@ -422,7 +433,7 @@ for n in range(2):
422
433
  param_a = '--'; a1 = '--'; a2 = '--'; a3 = '--'; param_b = '--'; b1 = '--'; b2 = '--'; b3 = '--'
423
434
  module_a1_a2_a3 = '--'; module_b1_b2_b3 = '--'; angle_a1a2_a1a3_a2a3 = '--'; angle_b1b2_b1b3_b2b3 = '--'
424
435
  cell_area = '--'; cell_vol = '--'; zb_area = '--'; zb_volume = '--'
425
- direct_coord_ions = '--'; k_path = '--'
436
+ direct_coord_ions = '--'; label_ions = '--'; k_path = '--'
426
437
 
427
438
 
428
439
  #----------------------------------------------------------------------------------------------------------
@@ -477,8 +488,8 @@ for n in range(2):
477
488
  if (VTemp[1] == 'k-points'): nk = int(VTemp[3])
478
489
  if (VTemp[5] == 'bands'): nb = int(VTemp[7])
479
490
  if (VTemp[1] == 'ions'): ni = int(VTemp[3])
480
- if (VTemp[5] == 'electrons'): ne = float(VTemp[7])
481
- #----------------------------------------
491
+ if (VTemp[5] == 'electrons'): ne = round(float(VTemp[7]), 15)
492
+ #--------------------------------------------------------------------
482
493
  elif (VTemp[0] == 'LORBIT'):
483
494
  lorbit = int(VTemp[2])
484
495
  if (VTemp[3] == 'ISPIN'): ispin = int(VTemp[5])
@@ -488,60 +499,60 @@ for n in range(2):
488
499
  elif (VTemp[0] == 'First'): cbm = vbm +1
489
500
  #----------------------------------------
490
501
  elif (VTemp[0] == 'Valence'):
491
- e_vbm = float(VTemp[7])
502
+ e_vbm = round(float(VTemp[7]), 15)
492
503
  tk_vbm = int(VTemp[11])
493
504
  #----------------------------------------
494
505
  elif (VTemp[0] == 'Conduction'):
495
- e_cbm = float(VTemp[7])
506
+ e_cbm = round(float(VTemp[7]), 15)
496
507
  tk_cbm = int(VTemp[11])
497
508
  #----------------------------------------
498
509
  elif (VTemp[0] == 'GAP'):
499
510
  type_gap = str(VTemp[2])
500
- gap = float(VTemp[5])
511
+ gap = round(float(VTemp[5]), 15)
501
512
  #----------------------------------------
502
- elif (VTemp[0] == 'Fermi'): e_fermi = float(VTemp[3])
513
+ elif (VTemp[0] == 'Fermi'): e_fermi = round(float(VTemp[3]), 15)
503
514
  #----------------------------------------
504
515
  elif (VTemp[0] == 'free'):
505
- total_energy = float(VTemp[4])
506
- # e_per_ion = total_energy/ni
507
- #----------------------------------------
508
- elif (VTemp[0] == 'Volume_cell'): Volume_cell = float(VTemp[2])
516
+ total_energy = round(float(VTemp[4]), 15)
517
+ # e_per_ion = round(float(total_energy)/ni, 15)
518
+ #--------------------------------------------------------
519
+ elif (VTemp[0] == 'Volume_cell'): Volume_cell = round(float(VTemp[2]), 15)
509
520
  #----------------------------------------
510
521
  elif (VTemp[0] == 'Param.'): param = float(VTemp[2])
511
522
  #----------------------------------------
512
523
  elif (VTemp[0] == 'A1'):
513
- a1 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
514
- A1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3 = []; module_a1_a2_a3.append(np.linalg.norm(A1))
524
+ a1 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
525
+ A1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3 = []; module_a1_a2_a3.append(round(np.linalg.norm(A1), 15))
515
526
  elif (VTemp[0] == 'A2'):
516
- a2 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
517
- A2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(np.linalg.norm(A2))
527
+ a2 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
528
+ A2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(round(np.linalg.norm(A2), 15))
518
529
  elif (VTemp[0] == 'A3'):
519
- a3 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
520
- A3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(np.linalg.norm(A3))
530
+ a3 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
531
+ A3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(round(np.linalg.norm(A3), 15))
521
532
  #-------------------------------------------------------
522
533
  angle_a1a2_a1a3_a2a3 = []
523
- angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A2) / (np.linalg.norm(A1) * np.linalg.norm(A2)))), 3))
524
- angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A3) / (np.linalg.norm(A1) * np.linalg.norm(A3)))), 3))
525
- angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A2,A3) / (np.linalg.norm(A2) * np.linalg.norm(A3)))), 3))
534
+ angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A2) / (np.linalg.norm(A1) * np.linalg.norm(A2)))), 15))
535
+ angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A3) / (np.linalg.norm(A1) * np.linalg.norm(A3)))), 15))
536
+ angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A2,A3) / (np.linalg.norm(A2) * np.linalg.norm(A3)))), 15))
526
537
  #----------------------------------------
527
538
  elif (VTemp[0] == '2pi/Param.'): fator_rec = float(VTemp[2])
528
539
  #----------------------------------------
529
540
  elif (VTemp[0] == 'B1'):
530
- b1 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
531
- B1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3 = []; module_b1_b2_b3.append(np.linalg.norm(B1))
541
+ b1 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
542
+ B1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3 = []; module_b1_b2_b3.append(round(np.linalg.norm(B1), 15))
532
543
  elif (VTemp[0] == 'B2'):
533
- b2 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
534
- B2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(np.linalg.norm(B2))
544
+ b2 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
545
+ B2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(round(np.linalg.norm(B2), 15))
535
546
  elif (VTemp[0] == 'B3'):
536
- b3 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
537
- B3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(np.linalg.norm(B3))
547
+ b3 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
548
+ B3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(round(np.linalg.norm(B3), 15))
538
549
  #-------------------------------------------------------
539
550
  angle_b1b2_b1b3_b2b3 = []
540
- angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B2) / (np.linalg.norm(B1) * np.linalg.norm(B2)))), 3))
541
- angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B3) / (np.linalg.norm(B1) * np.linalg.norm(B3)))), 3))
542
- angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B2,B3) / (np.linalg.norm(B2) * np.linalg.norm(B3)))), 3))
551
+ angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B2) / (np.linalg.norm(B1) * np.linalg.norm(B2)))), 15))
552
+ angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B3) / (np.linalg.norm(B1) * np.linalg.norm(B3)))), 15))
553
+ angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B2,B3) / (np.linalg.norm(B2) * np.linalg.norm(B3)))), 15))
543
554
  #----------------------------------------
544
- elif (VTemp[0] == 'Volume_ZB'): vol_zb = float(VTemp[2])
555
+ elif (VTemp[0] == 'Volume_ZB'): vol_zb = VTemp[2]
545
556
  #----------------------------------------
546
557
  elif (VTemp[0] == 'k-points'): loop = i+3
547
558
 
@@ -566,8 +577,8 @@ for n in range(2):
566
577
  for nn in range(2): VTemp = info.readline()
567
578
  for nn in range(1,(nk+1)):
568
579
  VTemp = info.readline().split()
569
- if (nn == int(tk_vbm)): k_vbm = [float(VTemp[1]), float(VTemp[2]), float(VTemp[3])]
570
- if (nn == int(tk_cbm)): k_cbm = [float(VTemp[1]), float(VTemp[2]), float(VTemp[3])]
580
+ if (nn == int(tk_vbm)): k_vbm = [round(float(VTemp[1]), 15), round(float(VTemp[2]), 15), round(float(VTemp[3]), 15)]
581
+ if (nn == int(tk_cbm)): k_cbm = [round(float(VTemp[1]), 15), round(float(VTemp[2]), 15), round(float(VTemp[3]), 15)]
571
582
 
572
583
 
573
584
  # =================================================================
@@ -585,10 +596,10 @@ for n in range(2):
585
596
  vector_bader = []
586
597
  VTemp = bader.readline()
587
598
  VTemp = bader.readline().split()
588
- vector_bader.append(float(VTemp[2]))
599
+ vector_bader.append(round(float(VTemp[2]), 15))
589
600
  for mm in range(len(t_ions_materials[mn])):
590
601
  VTemp = bader.readline().split()
591
- vector_bader.append(float(VTemp[3]))
602
+ vector_bader.append(round(float(VTemp[3]), 15))
592
603
  charge_transfer.append(vector_bader)
593
604
  #===========
594
605
  if (n == 1):
@@ -601,10 +612,10 @@ for n in range(2):
601
612
  vector_bader = []
602
613
  VTemp = bader.readline()
603
614
  VTemp = bader.readline().split()
604
- vector_bader.append(float(VTemp[2]))
615
+ vector_bader.append(round(float(VTemp[2]), 15))
605
616
  for mm in range(len(t_ions_materials[mn])):
606
617
  VTemp = bader.readline().split()
607
- vector_bader.append(float(VTemp[3]))
618
+ vector_bader.append(round(float(VTemp[3]), 15))
608
619
  charge_transfer_SO.append(vector_bader)
609
620
 
610
621
 
@@ -623,9 +634,9 @@ for n in range(2):
623
634
  for i in range(loop): VTemp = info.readline()
624
635
  for i in range(nk):
625
636
  VTemp = info.readline().split()
626
- k_points_direct.append([float(VTemp[1]), float(VTemp[2]), float(VTemp[3])])
627
- k_points_cart.append([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])
628
- k_path.append(float(VTemp[7]))
637
+ k_points_direct.append([VTemp[1], VTemp[2], VTemp[3]])
638
+ k_points_cart.append([VTemp[4], VTemp[5], VTemp[6]])
639
+ k_path.append(VTemp[7])
629
640
  print(k_path)
630
641
  #-----------
631
642
  info.close()
@@ -669,8 +680,8 @@ for n in range(2):
669
680
  V2 = np.array([A2[0], A2[1]])
670
681
  #----------------------------
671
682
  # Área da célula no plano XY
672
- Area_cell = np.linalg.norm(np.cross(V1, V2))
673
- #-------------------------------------------
683
+ Area_cell = round(np.linalg.norm(np.cross(V1, V2)), 15)
684
+ #------------------------------------------------------
674
685
 
675
686
 
676
687
  #=======================================
@@ -680,8 +691,8 @@ for n in range(2):
680
691
  V2 = np.array([B2[0], B2[1]])
681
692
  #----------------------------
682
693
  # Área da zb no plano KxKy
683
- Area_ZB = np.linalg.norm(np.cross(V1, V2))
684
- #-----------------------------------------
694
+ Area_ZB = round(np.linalg.norm(np.cross(V1, V2)), 15)
695
+ #----------------------------------------------------
685
696
 
686
697
 
687
698
  # ===========================================
@@ -742,7 +753,9 @@ for n in range(2):
742
753
  "zb_area": Area_ZB,
743
754
  # "zb_volume": vol_zb,
744
755
  "direct_coord_ions": coord_ions,
756
+ "label_ions": rotulo_ions,
745
757
  "kpath": kpath,
758
+ "kpath_label": kpath_label,
746
759
  }
747
760
 
748
761
 
@@ -766,8 +779,8 @@ for n in range(2):
766
779
  "e_vacuum": e_vacuum,
767
780
  # "work_function": work_function,
768
781
  "total_energy": total_energy,
769
- "e_per_ion": total_energy/ni,
770
- "e_per_area": total_energy/Area_cell,
782
+ "e_per_ion": round(float(total_energy)/ni, 15),
783
+ "e_per_area": round(float(total_energy)/float(Area_cell), 15),
771
784
  "e_binding": e_binding if n_materials > 1 else None,
772
785
  "e_slide": e_slide if n_materials > 1 else None,
773
786
  "charge_transfer": charge_transfer if n_materials > 1 else None,
@@ -794,8 +807,8 @@ for n in range(2):
794
807
  "e_vacuum_SO": e_vacuum,
795
808
  # "work_function_SO": work_function,
796
809
  "total_energy_SO": total_energy,
797
- "e_per_ion_SO": total_energy/ni,
798
- "e_per_area_SO": total_energy/Area_cell,
810
+ "e_per_ion_SO": round(float(total_energy)/ni, 15),
811
+ "e_per_area_SO": round(float(total_energy)/float(Area_cell), 15),
799
812
  "charge_transfer_SO": charge_transfer_SO if n_materials > 1 else None,
800
813
  }
801
814
 
@@ -6,7 +6,7 @@ import json
6
6
 
7
7
  setup(
8
8
  name = "SAMBA_ilum",
9
- version = "1.0.0.471",
9
+ version = "1.0.0.473",
10
10
  entry_points={'console_scripts': ['samba_ilum = samba_ilum:main']},
11
11
  description = "...",
12
12
  author = "Augusto de Lelis Araujo",
File without changes
File without changes