SAMBA-ilum 1.0.0.410__tar.gz → 1.0.0.411__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.410 → samba_ilum-1.0.0.411}/PKG-INFO +1 -1
  2. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
  3. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/SOURCES.txt +1 -0
  4. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/__main__.py +1 -1
  5. samba_ilum-1.0.0.411/samba_ilum/src/xy-scan_analysis.py +265 -0
  6. samba_ilum-1.0.0.410/samba_ilum/src/xy-scan_analysis.py → samba_ilum-1.0.0.411/samba_ilum/src/xy-scan_analysis_old.py +2 -2
  7. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/setup.py +1 -1
  8. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/LICENSE.txt +0 -0
  9. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/README.md +0 -0
  10. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
  11. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
  12. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/requires.txt +0 -0
  13. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/SAMBA_ilum.egg-info/top_level.txt +0 -0
  14. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/__init__.py +0 -0
  15. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/HeteroStructure_Generator.py +0 -0
  16. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
  17. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
  18. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
  19. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
  20. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
  21. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
  22. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
  23. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
  24. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
  25. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
  26. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_xy-scan +0 -0
  27. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_xyz-scan +0 -0
  28. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/INCAR_z-scan +0 -0
  29. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
  30. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
  31. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
  32. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
  33. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
  34. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
  35. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
  36. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
  37. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
  38. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
  39. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/OLD/a-scan.py +0 -0
  40. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/OLD/a-scan_analysis.py +0 -0
  41. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/OLD/job.py +0 -0
  42. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/OLD/z-scan.py +0 -0
  43. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/OLD/z-scan_analysis.py +0 -0
  44. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/_info_pseudo.py +0 -0
  45. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/a-scan.py +0 -0
  46. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/a-scan_analysis.py +0 -0
  47. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/bader +0 -0
  48. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/bader_poscar.py +0 -0
  49. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/bader_update.py +0 -0
  50. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/charge_transfer.py +0 -0
  51. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/chgsum.pl +0 -0
  52. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/contcar_update.py +0 -0
  53. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/data-base_json [backup].py +0 -0
  54. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/data-base_json.py +0 -0
  55. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/data-base_union.py +0 -0
  56. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/energy_scan.py +0 -0
  57. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/job.py +0 -0
  58. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/kpoints.py +0 -0
  59. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/lattice_plot3d.py +0 -0
  60. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/make_files.py +0 -0
  61. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/output.py +0 -0
  62. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/potcar.py +0 -0
  63. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/vdW_DF.py +0 -0
  64. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/xy-scan.py +0 -0
  65. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/xyz-scan.py +0 -0
  66. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/xyz-scan_analysis.py +0 -0
  67. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/z-scan.py +0 -0
  68. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/samba_ilum/src/z-scan_analysis.py +0 -0
  69. {samba_ilum-1.0.0.410 → samba_ilum-1.0.0.411}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: SAMBA_ilum
3
- Version: 1.0.0.410
3
+ Version: 1.0.0.411
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.410
3
+ Version: 1.0.0.411
4
4
  Summary: ...
5
5
  Author: Augusto de Lelis Araujo
6
6
  Author-email: augusto-lelis@outlook.com
@@ -33,6 +33,7 @@ samba_ilum/src/potcar.py
33
33
  samba_ilum/src/vdW_DF.py
34
34
  samba_ilum/src/xy-scan.py
35
35
  samba_ilum/src/xy-scan_analysis.py
36
+ samba_ilum/src/xy-scan_analysis_old.py
36
37
  samba_ilum/src/xyz-scan.py
37
38
  samba_ilum/src/xyz-scan_analysis.py
38
39
  samba_ilum/src/z-scan.py
@@ -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.410'
19
+ version = '1.0.0.411'
20
20
 
21
21
  print(" ")
22
22
  print("=============================================================")
@@ -0,0 +1,265 @@
1
+ # SAMBA_ilum Copyright (C) 2024 - Closed source
2
+
3
+
4
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5
+ # Observação: Introduzir o vácuo original no arquivo POSCAR final
6
+ # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
+
8
+
9
+ import numpy as np
10
+ import shutil
11
+ import os
12
+ #--------------------------
13
+ import plotly.offline as py
14
+ import plotly.graph_objects as go
15
+ #--------------------------------
16
+ import scipy.interpolate as interp
17
+ from scipy.interpolate import griddata
18
+ #-------------------------------------
19
+ import matplotlib as mpl
20
+ from matplotlib import cm
21
+ from matplotlib import pyplot as plt
22
+ import matplotlib.ticker as ticker
23
+ from mpl_toolkits.mplot3d.axes3d import Axes3D
24
+ from matplotlib.ticker import LinearLocator, FormatStrFormatter
25
+ import matplotlib.colors as mcolors
26
+
27
+
28
+ n_d = 301 # O dados do xy-scan serão interpolados para um grid de (n_d x n_d) pontos
29
+
30
+
31
+ #========================================================
32
+ # Obtendo a área no plano XY da Heteroestrutura =========
33
+ #========================================================
34
+ poscar = open('POSCAR.0', 'r')
35
+ VTemp = poscar.readline().split()
36
+ VTemp = poscar.readline(); param = float(VTemp)
37
+ #-----------------------------------------------
38
+ A1 = poscar.readline().split(); A1x = float(A1[0])*param; A1y = float(A1[1])*param; A1z = float(A1[2])*param; mA1 = np.linalg.norm(A1)
39
+ A2 = poscar.readline().split(); A2x = float(A2[0])*param; A2y = float(A2[1])*param; A2z = float(A2[2])*param; mA2 = np.linalg.norm(A2)
40
+ A3 = poscar.readline().split(); A3x = float(A3[0])*param; A3y = float(A3[1])*param; A3z = float(A3[2])*param; mA3 = np.linalg.norm(A3)
41
+ #---------------------------------------------------------------------------------------------------------------------------------------
42
+ A1 = np.array([A1x, A1y])
43
+ A2 = np.array([A2x, A2y])
44
+ #---------------------------
45
+ # Área da célula no plano XY
46
+ Area = np.linalg.norm(np.cross(A1, A2))
47
+ #--------------------------------------
48
+ poscar.close()
49
+ #-------------
50
+
51
+
52
+ #=====================================================
53
+ # Extraindo informações do arquivo energy_scan.txt ===
54
+ #=====================================================
55
+ file0 = np.loadtxt('energy_scan.txt', dtype=str)
56
+ file0.shape
57
+ #-----------------------
58
+ date_shift = file0[:,0]
59
+ date_E = np.array(file0[:,1],dtype=float)
60
+ E_min = min(date_E)
61
+ E_max = max(date_E)
62
+ Delta_E_meV = ((E_max -E_min)*1000)/Area
63
+ Delta_E_J = ((E_max -E_min)*1.6021773e-19)/(Area*1e-20)
64
+ line = np.argmin(date_E)
65
+ delta = date_shift[line]
66
+ #------------------------------------------
67
+ delta_min = delta.replace('_', ' ').split()
68
+ a1_min = float(delta_min[0])
69
+ a2_min = float(delta_min[1])
70
+ x_min = (a1_min*A1x) + (a2_min*A2x)
71
+ y_min = (a1_min*A1y) + (a2_min*A2y)
72
+ #----------------------------------
73
+ if (a1_min == -0.0): a1_min = 0.0
74
+ if (a2_min == -0.0): a2_min = 0.0
75
+ if (x_min == -0.0): x_min = 0.0
76
+ if (y_min == -0.0): y_min = 0.0
77
+ #-------------------------------
78
+
79
+
80
+ #===============================================
81
+ # Criando o arquivo energy_scan_shift.txt ======
82
+ #===============================================
83
+ file0 = np.loadtxt('energy_scan.txt', dtype=str)
84
+ file0.shape
85
+ #----------------------
86
+ date_shift = file0[:,0]
87
+ date_E = np.array(file0[:,1],dtype=float)
88
+ #----------------------------------------
89
+ file = open('energy_scan_shift.txt', "w")
90
+ shift = [-2, -1, 0, +1, +2]
91
+ #-------------------------------
92
+ for i in range(len(date_shift)):
93
+ #--------------------------------------------------
94
+ shift_temp = date_shift[i].replace('_',' ').split()
95
+ shift_A1 = float(shift_temp[0])
96
+ shift_A2 = float(shift_temp[1])
97
+ #------------------------------
98
+ for j in range(len(shift)):
99
+ for k in range(len(shift)):
100
+ t_shift_A1 = shift_A1 -a1_min +shift[j]
101
+ 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')
105
+ #-----------
106
+ file.close()
107
+ #-----------
108
+
109
+
110
+ #===========================================================
111
+ # Extraindo informações do arquivo energy_scan_shift.txt ===
112
+ #===========================================================
113
+ file0 = np.loadtxt('energy_scan_shift.txt', dtype=str)
114
+ file0.shape
115
+ #----------------------
116
+ date_shift = file0[:,0]
117
+ date_E = np.array(file0[:,1],dtype=float)
118
+ E_min = min(date_E)
119
+ #---------------------
120
+
121
+
122
+ #-------------------------------------
123
+ file = open('xy-scan_direct.dat', "w")
124
+ #-------------------------------------
125
+ for i in range(len(date_shift)):
126
+ VTemp = str(date_shift[i])
127
+ VTemp = VTemp.replace('_', ' ')
128
+ file.write(f'{VTemp} {((date_E[i] -E_min)*1000)/Area} \n')
129
+ #-----------
130
+ file.close()
131
+ #-----------
132
+
133
+
134
+ #----------------------------------------
135
+ file = open('xy-scan_cartesian.dat', "w")
136
+ #----------------------------------------
137
+ for i in range(len(date_shift)):
138
+ VTemp = str(date_shift[i])
139
+ VTemp = VTemp.replace('_', ' ').split()
140
+ Coord_X = ((float(VTemp[0])*A1x) + (float(VTemp[1])*A2x))
141
+ 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
+ #-----------
144
+ file.close()
145
+ #-----------
146
+
147
+
148
+ #===================================================
149
+ # Plot 3D - Coordenadas Cartesianas (.html) ========
150
+ #===================================================
151
+ label1 = '\u0394' + 'X' + ' (' + '\u212B' + ')'
152
+ label2 = '\u0394' + 'Y' + ' (' + '\u212B' + ')'
153
+ label3 = 'E-Emin' + ' (meV/' + '\u212B' + '\u00B2' + ')'
154
+ #------------------------------------------------------------
155
+ file2 = np.loadtxt('xy-scan_cartesian.dat')
156
+ file2.shape
157
+ #------------------
158
+ eixo1c = file2[:,0]
159
+ eixo2c = file2[:,1]
160
+ eixo3c = file2[:,2]
161
+ #---------------------------
162
+ # Create meshgrid for (x, y):
163
+ x = np.linspace(min(eixo1c), max(eixo1c), n_d)
164
+ y = np.linspace(min(eixo2c), max(eixo2c), n_d)
165
+ x_grid, y_grid = np.meshgrid(x, y)
166
+ # Grid data:
167
+ e2_grid = griddata((eixo1c, eixo2c), eixo3c, (x_grid, y_grid), method = 'cubic', fill_value=np.nan)
168
+
169
+
170
+ #============================================================
171
+ # Obtendo as coordenadas do ponto de E_mínima ===============
172
+ #============================================================
173
+ e2_grid[np.isnan(e2_grid)] = np.inf
174
+ min_idx = np.unravel_index(np.argmin(e2_grid), e2_grid.shape) # Encontrando o índice do menor valor de energia no e_grid
175
+ delta_X = x_grid[min_idx] # Encontrando o correspondente valor de delta_X
176
+ delta_Y = y_grid[min_idx] # Encontrando o correspondente valor de delta_Y
177
+ E_min = e2_grid[min_idx] # Encontrando o correspondente valor de E_min
178
+ # print(min_idx, delta_X, delta_Y, E_min)
179
+ #----------------------------------------
180
+ 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'))
182
+ 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
+ fig.update_layout(xaxis_range=[min(eixo1c), max(eixo1c)])
184
+ fig.update_layout(yaxis_range=[min(eixo2c), max(eixo2c)])
185
+ fig.write_html('xy-scan_3D_cartesian.html')
186
+
187
+
188
+ #===========================================================================
189
+ # Obtendo as coordenadas do ponto de E_mínima na forma direta ==============
190
+ #===========================================================================
191
+ a = np.array([A1x, A1y, A1z])
192
+ b = np.array([A2x, A2y, A2z])
193
+ c = np.array([A3x, A3y, A3z])
194
+ T = np.linalg.inv(np.array([a, b, c]).T) # Definindo a matriz de transformação
195
+ #------------------------------------------------------------------------------
196
+ r = np.array([delta_X, delta_Y, 0.0]) # Definindo o vetor posição cartesiano do átomo
197
+ #------------------------------------
198
+ f = np.dot(T, r) # Calculando a correspondenre posição em coordenadas fracionárias # ??????????????????? Esta correto ???????????????????
199
+ for m in range(3): # ?????? Ao invés de 'f' não deveria ser 'f[m]' ??????
200
+ f = np.where(f < 0, f + 1, f) # ??????????????????? Esta correto ???????????????????
201
+ f = np.where(f > 1, f - 1, f)
202
+ #--------------------------------
203
+ for m in range(3):
204
+ # f[m] = round(f[m], 6)
205
+ if (f[m] > 0.9999 or f[m] < 0.0001):
206
+ f[m] = 0.0
207
+ #------------------------------------
208
+ delta_A1 = float(f[0])
209
+ delta_A2 = float(f[1])
210
+
211
+
212
+ #=======================================================
213
+ # Plot 2D - Coordenadas Cartesianas (Mapa de cores) ====
214
+ #=======================================================
215
+ n_contour = 100
216
+ #------------------------------------
217
+ mod_x = abs(max(eixo1c) -min(eixo1c))
218
+ mod_y = abs(max(eixo2c) -min(eixo2c))
219
+ #----------------------------------------------------------------
220
+ cmap_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
221
+ #-----------------------
222
+ fig, ax = plt.subplots()
223
+ cp = plt.contourf(x_grid, y_grid, e2_grid, levels = n_contour, cmap = 'jet', alpha = 1.0, antialiased = True)
224
+ plt.quiver(0, 0, A1x, A1y, angles='xy', scale_units='xy', scale=1, color='black', label='A$_1$')
225
+ plt.quiver(0, 0, A2x, A2y, angles='xy', scale_units='xy', scale=1, color='black', label='A$_2$')
226
+ plt.text((A1x/2), (A1y/2), "A$_1$", fontsize=10, color="black")
227
+ plt.text((A2x/2), (A2y/2), "A$_2$", fontsize=10, color="black")
228
+ # plt.scatter(delta_X, delta_Y, c='black', marker='o', s=2)
229
+ # plt.scatter(x_min, y_min, c='black', marker='o', s=2)
230
+ cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0)
231
+ #-------------------
232
+ plt.title('xy-scan')
233
+ plt.xlabel('$\Delta$X' + '$\ ({\AA})$')
234
+ plt.ylabel('$\Delta$Y' + '$\ ({\AA})$')
235
+ cbar.set_label('$E-E_{min}\ $(meV/${\AA^2})$')
236
+ #---------------------------------------------
237
+ ax.set_box_aspect(mod_y/mod_x)
238
+ #------------------------------------------------------------------------------
239
+ plt.savefig('xy-scan_cartesian.png', dpi = 600, bbox_inches='tight', pad_inches = 0)
240
+ # plt.savefig('xy-scan_cartesian.pdf', dpi = 600, bbox_inches='tight', pad_inches = 0)
241
+ # plt.savefig('xy-scan_cartesian.eps', dpi = 600, bbox_inches='tight', pad_inches = 0)
242
+ # plt.savefig('xy-scan_cartesian.svg', dpi = 600, bbox_inches='tight', pad_inches = 0)
243
+
244
+
245
+ #--------------------------------------------------
246
+ shutil.copyfile(str(delta) + '/POSCAR', 'POSCAR')
247
+ shutil.copyfile(str(delta) + '/CONTCAR', 'CONTCAR')
248
+ #----------------------------------------------------
249
+
250
+
251
+ #=====================================================
252
+ info = open('info_xy-scan.dat', "w", encoding='utf-8')
253
+ info.write(f'====================================================== \n')
254
+ info.write(f'Displacement carried out over the 2nd material lattice \n')
255
+ #------------------------------------------------------------------
256
+ info.write(f'Displacement_XY = ({x_min}, {y_min}) in Å \n')
257
+ info.write(f'Displacement_XY = ({a1_min}*A1, {a2_min}*A2) \n')
258
+ #----------------------------------------------------------------
259
+ # info.write(f'Displacement_XY = ({delta_X}, {delta_Y}) in Å \n')
260
+ # info.write(f'Displacement_XY = ({delta_A1}*A1, {delta_A2}*A2) \n')
261
+ info.write(f'------------------------------------------------------ \n')
262
+ info.write(f'ΔE = {Delta_E_meV:.12f} meV/Å^2 or {Delta_E_J:.12f} J/m^2 \n')
263
+ info.write(f'====================================================== \n')
264
+ info.close()
265
+ #===========
@@ -206,7 +206,7 @@ plt.quiver(0, 0, A2x, A2y, angles='xy', scale_units='xy', scale=1, color='black'
206
206
  plt.text((A1x/2), (A1y/2), "A$_1$", fontsize=10, color="black")
207
207
  plt.text((A2x/2), (A2y/2), "A$_2$", fontsize=10, color="black")
208
208
  # plt.scatter(delta_X, delta_Y, c='black', marker='o', s=2)
209
- plt.scatter(x_min, y_min, c='black', marker='o', s=2)
209
+ # plt.scatter(x_min, y_min, c='black', marker='o', s=2)
210
210
  cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0)
211
211
  #-------------------
212
212
  plt.title('xy-scan')
@@ -271,7 +271,7 @@ cmap_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
271
271
  #-----------------------
272
272
  fig, ax = plt.subplots()
273
273
  cp = plt.contourf(a1_grid, a2_grid, e1_grid, levels = n_contour, cmap = 'jet', alpha = 1.0, antialiased = True)
274
- plt.scatter(delta_A1, delta_A2, c='black', marker='o', s=2)
274
+ # plt.scatter(delta_A1, delta_A2, c='black', marker='o', s=2)
275
275
  cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0)
276
276
  #-------------------
277
277
  plt.title('xy-scan')
@@ -6,7 +6,7 @@ import json
6
6
 
7
7
  setup(
8
8
  name = "SAMBA_ilum",
9
- version = "1.0.0.410",
9
+ version = "1.0.0.411",
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