SAMBA-ilum 1.0.0.411__tar.gz → 1.0.0.413__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 (69) hide show
  1. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/PKG-INFO +1 -1
  2. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
  3. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/SOURCES.txt +1 -8
  4. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/__main__.py +1 -1
  5. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/data-base_json.py +7 -5
  6. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/xy-scan_analysis.py +21 -14
  7. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/setup.py +1 -1
  8. samba_ilum-1.0.0.411/samba_ilum/src/OLD/a-scan.py +0 -194
  9. samba_ilum-1.0.0.411/samba_ilum/src/OLD/a-scan_analysis.py +0 -115
  10. samba_ilum-1.0.0.411/samba_ilum/src/OLD/job.py +0 -298
  11. samba_ilum-1.0.0.411/samba_ilum/src/OLD/z-scan.py +0 -172
  12. samba_ilum-1.0.0.411/samba_ilum/src/OLD/z-scan_analysis.py +0 -108
  13. samba_ilum-1.0.0.411/samba_ilum/src/data-base_json [backup].py +0 -840
  14. samba_ilum-1.0.0.411/samba_ilum/src/xy-scan_analysis_old.py +0 -317
  15. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/LICENSE.txt +0 -0
  16. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/README.md +0 -0
  17. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
  18. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
  19. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/requires.txt +0 -0
  20. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/SAMBA_ilum.egg-info/top_level.txt +0 -0
  21. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/__init__.py +0 -0
  22. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/HeteroStructure_Generator.py +0 -0
  23. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
  24. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
  25. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
  26. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
  27. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
  28. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
  29. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
  30. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
  31. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
  32. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
  33. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_xy-scan +0 -0
  34. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_xyz-scan +0 -0
  35. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/INCAR_z-scan +0 -0
  36. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
  37. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
  38. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
  39. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
  40. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
  41. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
  42. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
  43. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
  44. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
  45. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
  46. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/_info_pseudo.py +0 -0
  47. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/a-scan.py +0 -0
  48. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/a-scan_analysis.py +0 -0
  49. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/bader +0 -0
  50. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/bader_poscar.py +0 -0
  51. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/bader_update.py +0 -0
  52. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/charge_transfer.py +0 -0
  53. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/chgsum.pl +0 -0
  54. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/contcar_update.py +0 -0
  55. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/data-base_union.py +0 -0
  56. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/energy_scan.py +0 -0
  57. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/job.py +0 -0
  58. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/kpoints.py +0 -0
  59. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/lattice_plot3d.py +0 -0
  60. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/make_files.py +0 -0
  61. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/output.py +0 -0
  62. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/potcar.py +0 -0
  63. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/vdW_DF.py +0 -0
  64. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/xy-scan.py +0 -0
  65. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/xyz-scan.py +0 -0
  66. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/xyz-scan_analysis.py +0 -0
  67. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/z-scan.py +0 -0
  68. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/samba_ilum/src/z-scan_analysis.py +0 -0
  69. {samba_ilum-1.0.0.411 → samba_ilum-1.0.0.413}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SAMBA_ilum
3
- Version: 1.0.0.411
3
+ Version: 1.0.0.413
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.411
3
+ Version: 1.0.0.413
4
4
  Summary: ...
5
5
  Author: Augusto de Lelis Araujo
6
6
  Author-email: augusto-lelis@outlook.com
@@ -20,7 +20,6 @@ samba_ilum/src/bader_update.py
20
20
  samba_ilum/src/charge_transfer.py
21
21
  samba_ilum/src/chgsum.pl
22
22
  samba_ilum/src/contcar_update.py
23
- samba_ilum/src/data-base_json [backup].py
24
23
  samba_ilum/src/data-base_json.py
25
24
  samba_ilum/src/data-base_union.py
26
25
  samba_ilum/src/energy_scan.py
@@ -33,7 +32,6 @@ samba_ilum/src/potcar.py
33
32
  samba_ilum/src/vdW_DF.py
34
33
  samba_ilum/src/xy-scan.py
35
34
  samba_ilum/src/xy-scan_analysis.py
36
- samba_ilum/src/xy-scan_analysis_old.py
37
35
  samba_ilum/src/xyz-scan.py
38
36
  samba_ilum/src/xyz-scan_analysis.py
39
37
  samba_ilum/src/z-scan.py
@@ -60,9 +58,4 @@ samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos
60
58
  samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location
61
59
  samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot
62
60
  samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals
63
- samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin
64
- samba_ilum/src/OLD/a-scan.py
65
- samba_ilum/src/OLD/a-scan_analysis.py
66
- samba_ilum/src/OLD/job.py
67
- samba_ilum/src/OLD/z-scan.py
68
- samba_ilum/src/OLD/z-scan_analysis.py
61
+ samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin
@@ -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.411'
19
+ version = '1.0.0.413'
20
20
 
21
21
  print(" ")
22
22
  print("=============================================================")
@@ -425,8 +425,8 @@ for n in range(2):
425
425
  direct_coord_ions = '--'; k_path = '--'
426
426
 
427
427
 
428
- #----------------------------------------------------------------------------------------------------------------------------------------------
429
- e_vbm = '--'; e_cbm = '--'; e_fermi = '--'; e_vacuum = '--'; work_function = '--'; total_energy = '--'; e_per_ion = '--'
428
+ #------------------------------------------------------------------------------------------------------------------------------------------------
429
+ e_vbm = '--'; e_cbm = '--'; e_fermi = '--'; e_vacuum = '--'; work_function = '--'; total_energy = '--'; e_per_ion = '--'; e_per_area = '--'
430
430
  tk_vbm = '--'; tk_cbm = '--'; k_vbm = '--'; k_cbm = '--'
431
431
  nk = '--'; nb = '--'; ne = '--'; ne_valence = '--'; vbm = '--'; cbm = '--'; charge_transfer = [];
432
432
  gap = '--'; type_gap = '--'; k_vbm = []; k_cbm = []; lorbit = '--'; ispin = '--'
@@ -503,7 +503,7 @@ for n in range(2):
503
503
  #----------------------------------------
504
504
  elif (VTemp[0] == 'free'):
505
505
  total_energy = float(VTemp[4])
506
- e_per_ion = total_energy/ni
506
+ # e_per_ion = total_energy/ni
507
507
  #----------------------------------------
508
508
  elif (VTemp[0] == 'Volume_cell'): Volume_cell = float(VTemp[2])
509
509
  #----------------------------------------
@@ -765,7 +765,8 @@ for n in range(2):
765
765
  "e_vacuum": e_vacuum,
766
766
  # "work_function": work_function,
767
767
  "total_energy": total_energy,
768
- "e_per_ion": e_per_ion,
768
+ "e_per_ion": total_energy/ni,
769
+ "e_per_area": total_energy/Area_cell,
769
770
  "e_binding": e_binding if n_materials > 1 else None,
770
771
  "e_slide": e_slide if n_materials > 1 else None,
771
772
  "charge_transfer": charge_transfer if n_materials > 1 else None,
@@ -792,7 +793,8 @@ for n in range(2):
792
793
  "e_vacuum_SO": e_vacuum,
793
794
  # "work_function_SO": work_function,
794
795
  "total_energy_SO": total_energy,
795
- "e_per_ion_SO": e_per_ion,
796
+ "e_per_ion": total_energy/ni,
797
+ "e_per_area": total_energy/Area_cell,
796
798
  "charge_transfer": charge_transfer if n_materials > 1 else None,
797
799
  }
798
800
 
@@ -6,6 +6,7 @@
6
6
  # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
7
 
8
8
 
9
+ #-----------------
9
10
  import numpy as np
10
11
  import shutil
11
12
  import os
@@ -23,6 +24,7 @@ import matplotlib.ticker as ticker
23
24
  from mpl_toolkits.mplot3d.axes3d import Axes3D
24
25
  from matplotlib.ticker import LinearLocator, FormatStrFormatter
25
26
  import matplotlib.colors as mcolors
27
+ #----------------------------------
26
28
 
27
29
 
28
30
  n_d = 301 # O dados do xy-scan serão interpolados para um grid de (n_d x n_d) pontos
@@ -99,9 +101,9 @@ for i in range(len(date_shift)):
99
101
  for k in range(len(shift)):
100
102
  t_shift_A1 = shift_A1 -a1_min +shift[j]
101
103
  t_shift_A2 = shift_A2 -a2_min +shift[k]
102
- if (t_shift_A1 >= 0.0 and t_shift_A1 <= 1.0):
103
- if (t_shift_A2 >= 0.0 and t_shift_A2 <= 1.0):
104
- file.write(f'{shift_A1 -a1_min +shift[j]}_{shift_A2 -a2_min + shift[k]} {date_E[i]} \n')
104
+ if (t_shift_A1 >= -0.2 and t_shift_A1 <= 1.2):
105
+ if (t_shift_A2 >= -0.2 and t_shift_A2 <= 1.2):
106
+ file.write(f'{t_shift_A1}_{t_shift_A2} {(date_E[i]*1000)/Area} \n')
105
107
  #-----------
106
108
  file.close()
107
109
  #-----------
@@ -115,8 +117,7 @@ file0.shape
115
117
  #----------------------
116
118
  date_shift = file0[:,0]
117
119
  date_E = np.array(file0[:,1],dtype=float)
118
- E_min = min(date_E)
119
- #---------------------
120
+ #----------------------------------------
120
121
 
121
122
 
122
123
  #-------------------------------------
@@ -125,7 +126,7 @@ file = open('xy-scan_direct.dat', "w")
125
126
  for i in range(len(date_shift)):
126
127
  VTemp = str(date_shift[i])
127
128
  VTemp = VTemp.replace('_', ' ')
128
- file.write(f'{VTemp} {((date_E[i] -E_min)*1000)/Area} \n')
129
+ file.write(f'{VTemp} {(date_E[i]*1000)/Area} \n')
129
130
  #-----------
130
131
  file.close()
131
132
  #-----------
@@ -139,7 +140,7 @@ for i in range(len(date_shift)):
139
140
  VTemp = VTemp.replace('_', ' ').split()
140
141
  Coord_X = ((float(VTemp[0])*A1x) + (float(VTemp[1])*A2x))
141
142
  Coord_Y = ((float(VTemp[0])*A1y) + (float(VTemp[1])*A2y))
142
- file.write(f'{Coord_X} {Coord_Y} {((date_E[i] -E_min)*1000)/Area} \n')
143
+ file.write(f'{Coord_X} {Coord_Y} {(date_E[i]*1000)/Area} \n')
143
144
  #-----------
144
145
  file.close()
145
146
  #-----------
@@ -151,7 +152,7 @@ file.close()
151
152
  label1 = '\u0394' + 'X' + ' (' + '\u212B' + ')'
152
153
  label2 = '\u0394' + 'Y' + ' (' + '\u212B' + ')'
153
154
  label3 = 'E-Emin' + ' (meV/' + '\u212B' + '\u00B2' + ')'
154
- #------------------------------------------------------------
155
+ #-------------------------------------------------------
155
156
  file2 = np.loadtxt('xy-scan_cartesian.dat')
156
157
  file2.shape
157
158
  #------------------
@@ -165,6 +166,7 @@ y = np.linspace(min(eixo2c), max(eixo2c), n_d)
165
166
  x_grid, y_grid = np.meshgrid(x, y)
166
167
  # Grid data:
167
168
  e2_grid = griddata((eixo1c, eixo2c), eixo3c, (x_grid, y_grid), method = 'cubic', fill_value=np.nan)
169
+ #--------------------------------------------------------------------------------------------------
168
170
 
169
171
 
170
172
  #============================================================
@@ -178,11 +180,12 @@ E_min = e2_grid[min_idx] # Encontrando o
178
180
  # print(min_idx, delta_X, delta_Y, E_min)
179
181
  #----------------------------------------
180
182
  fig = go.Figure()
181
- fig.add_trace(go.Surface(x = x_grid, y = y_grid, z = e2_grid, name = 'xy-scan', opacity = 0.8, showscale = False, colorscale='jet'))
183
+ fig.add_trace(go.Surface(x = x_grid, y = y_grid, z = (e2_grid -E_min), name = 'xy-scan', opacity = 0.8, showscale = False, colorscale='jet'))
182
184
  fig.update_layout(title = 'xy-scan', scene = dict(xaxis_title = label1, yaxis_title = label2, zaxis_title = label3, aspectmode = 'cube'), margin = dict(r = 20, b = 10, l = 10, t = 10))
183
185
  fig.update_layout(xaxis_range=[min(eixo1c), max(eixo1c)])
184
186
  fig.update_layout(yaxis_range=[min(eixo2c), max(eixo2c)])
185
187
  fig.write_html('xy-scan_3D_cartesian.html')
188
+ #------------------------------------------
186
189
 
187
190
 
188
191
  #===========================================================================
@@ -204,9 +207,10 @@ for m in range(3):
204
207
  # f[m] = round(f[m], 6)
205
208
  if (f[m] > 0.9999 or f[m] < 0.0001):
206
209
  f[m] = 0.0
207
- #------------------------------------
210
+ #---------------------
208
211
  delta_A1 = float(f[0])
209
212
  delta_A2 = float(f[1])
213
+ #---------------------
210
214
 
211
215
 
212
216
  #=======================================================
@@ -220,9 +224,11 @@ mod_y = abs(max(eixo2c) -min(eixo2c))
220
224
  cmap_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
221
225
  #-----------------------
222
226
  fig, ax = plt.subplots()
223
- cp = plt.contourf(x_grid, y_grid, e2_grid, levels = n_contour, cmap = 'jet', alpha = 1.0, antialiased = True)
227
+ cp = plt.contourf(x_grid, y_grid, (e2_grid -E_min), levels = n_contour, cmap = 'jet', alpha = 1.0, antialiased = True)
224
228
  plt.quiver(0, 0, A1x, A1y, angles='xy', scale_units='xy', scale=1, color='black', label='A$_1$')
225
229
  plt.quiver(0, 0, A2x, A2y, angles='xy', scale_units='xy', scale=1, color='black', label='A$_2$')
230
+ plt.plot([A1x, (A1x+A2x)], [A1y, (A1y+A2y)], color = 'black', linewidth = 1.0, zorder=3)
231
+ plt.plot([A2x, (A1x+A2x)], [A2y, (A1y+A2y)], color = 'black', linewidth = 1.0, zorder=3)
226
232
  plt.text((A1x/2), (A1y/2), "A$_1$", fontsize=10, color="black")
227
233
  plt.text((A2x/2), (A2y/2), "A$_2$", fontsize=10, color="black")
228
234
  # plt.scatter(delta_X, delta_Y, c='black', marker='o', s=2)
@@ -235,17 +241,18 @@ plt.ylabel('$\Delta$Y' + '$\ ({\AA})$')
235
241
  cbar.set_label('$E-E_{min}\ $(meV/${\AA^2})$')
236
242
  #---------------------------------------------
237
243
  ax.set_box_aspect(mod_y/mod_x)
238
- #------------------------------------------------------------------------------
244
+ #-----------------------------------------------------------------------------------
239
245
  plt.savefig('xy-scan_cartesian.png', dpi = 600, bbox_inches='tight', pad_inches = 0)
240
246
  # plt.savefig('xy-scan_cartesian.pdf', dpi = 600, bbox_inches='tight', pad_inches = 0)
241
247
  # plt.savefig('xy-scan_cartesian.eps', dpi = 600, bbox_inches='tight', pad_inches = 0)
242
248
  # plt.savefig('xy-scan_cartesian.svg', dpi = 600, bbox_inches='tight', pad_inches = 0)
249
+ #-------------------------------------------------------------------------------------
243
250
 
244
251
 
245
- #--------------------------------------------------
252
+ #------------------------------------------------
246
253
  shutil.copyfile(str(delta) + '/POSCAR', 'POSCAR')
247
254
  shutil.copyfile(str(delta) + '/CONTCAR', 'CONTCAR')
248
- #----------------------------------------------------
255
+ #--------------------------------------------------
249
256
 
250
257
 
251
258
  #=====================================================
@@ -6,7 +6,7 @@ import json
6
6
 
7
7
  setup(
8
8
  name = "SAMBA_ilum",
9
- version = "1.0.0.411",
9
+ version = "1.0.0.413",
10
10
  entry_points={'console_scripts': ['samba_ilum = samba_ilum:main']},
11
11
  description = "...",
12
12
  author = "Augusto de Lelis Araujo",
@@ -1,194 +0,0 @@
1
- # SAMBA_ilum Copyright (C) 2024 - Closed source
2
-
3
-
4
- import numpy as np
5
- import shutil
6
- import os
7
-
8
-
9
- passo = replace_passo # Variação no módulo do vetores de rede em Angs.
10
- range = replace_range # Range de variação (em Angs.) com relação ao parâmetro de rede [param -range, param +range]
11
-
12
-
13
- """
14
- #----------------------------------------------------------------
15
- # Testando a compatibilidade do arquivo POSCAR ------------------
16
- #----------------------------------------------------------------
17
- poscar = open('POSCAR', "r")
18
- VTemp = poscar.readline().split()
19
- poscar.close()
20
- #-------------
21
- crit = 0
22
- for k in range(len(VTemp)):
23
- try:
24
- inteiro = int(VTemp[k])
25
- if (k > 0 and k < 3): crit += 1
26
- except ValueError:
27
- if (k == 0): crit += 1
28
- #------------------------------
29
- if (len(VTemp) < 3 or crit < 3):
30
- print(f' ')
31
- print(f'========================================')
32
- print(f'Verifique o arquivo POSCAR utilizado! ')
33
- print(f'INCOMPATIBILIDADE com o código detectada')
34
- print(f'========================================')
35
- print(f' ')
36
- #==========
37
- sys.exit()
38
- #=========
39
- """
40
-
41
-
42
- #==========================================================================
43
- # Obtendo os vetores de rede da Heteroestrutura ===========================
44
- #==========================================================================
45
- contcar = open('CONTCAR', "r")
46
- #-----------------------------
47
- VTemp = contcar.readline()
48
- VTemp = contcar.readline(); param = float(VTemp)
49
- VTemp = contcar.readline().split(); A1x = float(VTemp[0])*param; A1y = float(VTemp[1])*param; A1z = float(VTemp[2])*param
50
- VTemp = contcar.readline().split(); A2x = float(VTemp[0])*param; A2y = float(VTemp[1])*param; A2z = float(VTemp[2])*param
51
- VTemp = contcar.readline().split(); A3x = float(VTemp[0])*param; A3y = float(VTemp[1])*param; A3z = float(VTemp[2])*param
52
- VTemp = contcar.readline()
53
- VTemp = contcar.readline().split(); nions = 0
54
- for i in np.arange(len(VTemp)):
55
- nions += int(VTemp[i])
56
- #--------------
57
- contcar.close()
58
- #--------------
59
-
60
-
61
- #==========================================================================
62
- # Obtendo o fator percentual de multiplicação dos vetores de Rede =========
63
- #==========================================================================
64
- A1 = np.array([float(A1x), float(A1y), float(A1z)])*param; module_a1 = float(np.linalg.norm(A1))
65
- A2 = np.array([float(A2x), float(A2y), float(A2z)])*param; module_a2 = float(np.linalg.norm(A2))
66
- A3 = np.array([float(A3x), float(A3y), float(A3z)])*param; module_a3 = float(np.linalg.norm(A3))
67
- #------------------------------------------------------------------------------------------------
68
- if (module_a1 <= module_a2):
69
- fator = ((module_a1 +passo)/module_a1) -1
70
- vector = 'A1'
71
- if (module_a2 < module_a1):
72
- fator = ((module_a2 +passo)/module_a2) -1
73
- vector = 'A2'
74
- # if ((type_lattice = 3) and (module_a3 < module_a1) or (module_a3 < module_a2)):
75
- # fator = ((module_a3 +passo)/module_a3) -1
76
- # vector = 'A3'
77
- #------------------------------------------------------------
78
-
79
-
80
- n_passos = (range/passo)
81
- #------------------------------------------------------------
82
- if ((n_passos -int(n_passos)) == 0): n_passos = int(n_passos)
83
- if ((n_passos -int(n_passos)) != 0): n_passos = int(n_passos) +1
84
-
85
-
86
- n_passos = int(range/passo)
87
- number = 0
88
-
89
-
90
- #============================================================
91
- # Gerando os arquivos POSCAR para cada valor de a (param) ===
92
- #============================================================
93
-
94
- for i in np.arange(1,(n_passos)+1):
95
- #----------
96
- number += 1
97
- i = n_passos +1 -i
98
- fator_new = float(1 -(i*fator))
99
- #---------------------------------------------
100
- dir_temp = str(fator_new); os.mkdir(dir_temp)
101
- if os.path.isfile('vdw_kernel.bindat'): shutil.copyfile('vdw_kernel.bindat', dir_temp + '/vdw_kernel.bindat')
102
- shutil.copyfile('contcar_update.py', dir_temp + '/contcar_update.py')
103
- shutil.copyfile('energy_scan.py', dir_temp + '/energy_scan.py')
104
- shutil.copyfile('KPOINTS', dir_temp + '/KPOINTS')
105
- shutil.copyfile('POTCAR', dir_temp + '/POTCAR')
106
- shutil.copyfile('INCAR', dir_temp + '/INCAR')
107
- #--------------------------------------------
108
- contcar = open('CONTCAR', "r")
109
- poscar_new = open(dir_temp + '/POSCAR', "w")
110
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
111
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
112
- #--------------------------------------------------------
113
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
114
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
115
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
116
- #-----------------------------------------------------------------------------------------------------------------------------------------------
117
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
118
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
119
- VTemp = contcar.readline(); poscar_new.write(f'Direct \n')
120
- #---------------------------------------------------------
121
- for j in np.arange(nions):
122
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
123
- #--------------
124
- contcar.close()
125
- poscar_new.close()
126
- #-----------------
127
-
128
-
129
- for i in np.arange(1,2):
130
- #----------
131
- number += 1
132
- fator_new = 1.0
133
- #---------------------------------------------
134
- dir_temp = str(fator_new); os.mkdir(dir_temp)
135
- if os.path.isfile('vdw_kernel.bindat'): shutil.copyfile('vdw_kernel.bindat', dir_temp + '/vdw_kernel.bindat')
136
- shutil.copyfile('contcar_update.py', dir_temp + '/contcar_update.py')
137
- shutil.copyfile('energy_scan.py', dir_temp + '/energy_scan.py')
138
- shutil.copyfile('KPOINTS', dir_temp + '/KPOINTS')
139
- shutil.copyfile('POTCAR', dir_temp + '/POTCAR')
140
- shutil.copyfile('INCAR', dir_temp + '/INCAR')
141
- #--------------------------------------------
142
- contcar = open('CONTCAR', "r")
143
- poscar_new = open(dir_temp + '/POSCAR', "w")
144
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
145
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
146
- #--------------------------------------------------------
147
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
148
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
149
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
150
- #-----------------------------------------------------------------------------------------------------------------------------------------------
151
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
152
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
153
- VTemp = contcar.readline(); poscar_new.write(f'Direct \n')
154
- #----------------------------------------------------------
155
- for j in np.arange(nions):
156
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
157
- #--------------
158
- contcar.close()
159
- poscar_new.close()
160
- #-----------------
161
-
162
-
163
- for i in np.arange(1,(n_passos)+1):
164
- #----------
165
- number += 1
166
- fator_new = float(1 +(i*fator))
167
- #---------------------------------------------
168
- dir_temp = str(fator_new); os.mkdir(dir_temp)
169
- if os.path.isfile('vdw_kernel.bindat'): shutil.copyfile('vdw_kernel.bindat', dir_temp + '/vdw_kernel.bindat')
170
- shutil.copyfile('contcar_update.py', dir_temp + '/contcar_update.py')
171
- shutil.copyfile('energy_scan.py', dir_temp + '/energy_scan.py')
172
- shutil.copyfile('KPOINTS', dir_temp + '/KPOINTS')
173
- shutil.copyfile('POTCAR', dir_temp + '/POTCAR')
174
- shutil.copyfile('INCAR', dir_temp + '/INCAR')
175
- #--------------------------------------------
176
- contcar = open('CONTCAR', "r")
177
- poscar_new = open(dir_temp + '/POSCAR', "w")
178
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
179
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
180
- #--------------------------------------------------------
181
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
182
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
183
- VTemp = contcar.readline().split(); poscar_new.write(f'{float(VTemp[0])*fator_new} {float(VTemp[1])*fator_new} {float(VTemp[2])*fator_new} \n')
184
- #-----------------------------------------------------------------------------------------------------------------------------------------------
185
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
186
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
187
- VTemp = contcar.readline(); poscar_new.write(f'Direct \n')
188
- #----------------------------------------------------------
189
- for j in np.arange(nions):
190
- VTemp = contcar.readline(); poscar_new.write(f'{VTemp}')
191
- #--------------
192
- contcar.close()
193
- poscar_new.close()
194
- #-----------------
@@ -1,115 +0,0 @@
1
- # SAMBA_ilum Copyright (C) 2024 - Closed source
2
-
3
-
4
- from scipy.interpolate import interp1d
5
- import matplotlib.pyplot as plt
6
- import numpy as np
7
- import shutil
8
- import os
9
-
10
-
11
- #==========================================================================
12
- # Obtendo os vetores de rede da Heteroestrutura ===========================
13
- #==========================================================================
14
- poscar = open('POSCAR.0', "r")
15
- #-----------------------------
16
- VTemp = poscar.readline()
17
- VTemp = poscar.readline(); param = float(VTemp)
18
- VTemp = poscar.readline().split(); A1x = float(VTemp[0])*param; A1y = float(VTemp[1])*param; A1z = float(VTemp[2])*param
19
- VTemp = poscar.readline().split(); A2x = float(VTemp[0])*param; A2y = float(VTemp[1])*param; A2z = float(VTemp[2])*param
20
- VTemp = poscar.readline().split(); A3x = float(VTemp[0])*param; A3y = float(VTemp[1])*param; A3z = float(VTemp[2])*param
21
- VTemp = poscar.readline()
22
- VTemp = poscar.readline().split(); nions = 0
23
- for i in np.arange(len(VTemp)):
24
- nions += int(VTemp[i])
25
- #-------------
26
- poscar.close()
27
- #-------------
28
-
29
-
30
- #==========================================================================
31
- # Obtendo o fator percentual de multiplicação dos vetores de Rede =========
32
- #==========================================================================
33
- A1 = np.array([float(A1x), float(A1y), float(A1z)])*param; module_a1 = float(np.linalg.norm(A1))
34
- A2 = np.array([float(A2x), float(A2y), float(A2z)])*param; module_a2 = float(np.linalg.norm(A2))
35
- A3 = np.array([float(A3x), float(A3y), float(A3z)])*param; module_a3 = float(np.linalg.norm(A3))
36
- #------------------------------------------------------------------------------------------------
37
- if (module_a1 <= module_a2):
38
- param_initial = module_a1; vector = 'A1'
39
- if (module_a2 < module_a1):
40
- param_initial = module_a2; vector = 'A2'
41
- #-------------------------------------------
42
-
43
-
44
- #===================================================
45
- # Extraindo informações ============================
46
- #===================================================
47
- shutil.copy('energy_scan.txt', 'a-scan.dat')
48
- #-------------------------------------------
49
- file0 = np.loadtxt('a-scan.dat')
50
- file0.shape
51
- #-------------------
52
- date_a = file0[:,0]
53
- date_E = file0[:,1]
54
- #--------------------
55
- E_min = min(date_E)
56
- E_max = max(date_E)
57
- delta_a = date_a[np.argmin(date_E)]
58
- a_opt = delta_a*param_initial
59
- #------------------------------
60
- date_a = date_a*param_initial
61
- f_min = min(date_a)
62
- f_max = max(date_a)
63
-
64
- #--------------------------------------------------
65
- shutil.copyfile(str(delta_a) + '/POSCAR', 'POSCAR')
66
- shutil.copyfile(str(delta_a) + '/CONTCAR', 'CONTCAR')
67
- #----------------------------------------------------
68
-
69
-
70
- """
71
- #=======================================
72
- # Interpolando os dados do a-scan ======
73
- #=======================================
74
- n_d = 250
75
- #--------
76
- f = interp1d(date_a, date_E, kind='cubic')
77
- x_interp = np.linspace(f_min, f_max, n_d)
78
- y_interp = f(x_interp)
79
- """
80
-
81
-
82
- #===================================================
83
- # Plot 2D ==========================================
84
- #===================================================
85
- fig, ax = plt.subplots()
86
- plt.plot([a_opt, a_opt], [-1000.0, +1000.0], color = 'red', linestyle = '--', linewidth = 1.0, alpha = 1.0)
87
- # plt.plot(x_interp, y_interp, color = 'black', linestyle = '-', linewidth = 1.0)
88
- plt.plot(date_a, date_E, color = 'black', linestyle = '-', linewidth = 1.0)
89
- plt.scatter(date_a, date_E, s=5, color = 'black')
90
- plt.title('$a$-scan', fontsize=10)
91
- plt.xlim((f_min, f_max))
92
- #------------------------------
93
- delta_E = abs(E_max -E_min)*0.1
94
- #------------------------------
95
- plt.ylim((E_min -delta_E, E_max +delta_E))
96
- plt.xlabel('$a_{optimized}$(${\AA}$)')
97
- plt.ylabel('$E(eV)$')
98
- ax.set_box_aspect(1.25/1)
99
- #----------------------------------------------------------------------
100
- plt.savefig('a-scan.png', dpi = 600, bbox_inches='tight', pad_inches=0)
101
- # plt.savefig('a-scan.pdf', dpi = 600, bbox_inches='tight', pad_inches=0)
102
- # plt.savefig('a-scan.svg', dpi = 600, bbox_inches='tight', pad_inches=0)
103
- # plt.savefig('a-scan.eps', dpi = 600, bbox_inches='tight', pad_inches=0)
104
-
105
-
106
- #=====================================================
107
- info = open('info_a-scan.dat', "w", encoding='utf-8')
108
- info.write(f'============================================================================== \n')
109
- info.write(f'Optimized lattice parameter: a = {a_opt} Å\n')
110
- info.write(f'------------------------------------------------------------------------------ \n')
111
- info.write(f'a_initial = {param_initial} Å (|{vector}|); multiplication factor = {delta_a} \n')
112
- info.write(f'============================================================================== \n')
113
- info.close()
114
- #===========
115
-