vasprocar 1.1.19.117__tar.gz → 1.1.19.118__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.

Potentially problematic release.


This version of vasprocar might be problematic. Click here for more details.

Files changed (119) hide show
  1. {vasprocar-1.1.19.117/vasprocar.egg-info → vasprocar-1.1.19.118}/PKG-INFO +1 -1
  2. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/setup.py +1 -1
  3. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/__main__.py +1 -1
  4. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.spin_video +2 -2
  5. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_spin_texture_contour.py +68 -25
  6. vasprocar-1.1.19.118/vasprocar/src/plot/plot_spin_texture_contour_video.py +408 -0
  7. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/spin_texture_contour.py +33 -23
  8. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/spin_texture_contour_video.py +65 -20
  9. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118/vasprocar.egg-info}/PKG-INFO +1 -1
  10. vasprocar-1.1.19.117/vasprocar/src/plot/plot_spin_texture_contour_video.py +0 -413
  11. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/LICENSE.txt +0 -0
  12. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/README.md +0 -0
  13. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/setup.cfg +0 -0
  14. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/__init__.py +0 -0
  15. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/_info.py +0 -0
  16. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/_info_b.py +0 -0
  17. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/_label.py +0 -0
  18. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/_nscf.py +0 -0
  19. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/_var_kpoints.py +0 -0
  20. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum.py +0 -0
  21. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum_grace.py +0 -0
  22. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/contribuicao.py +0 -0
  23. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_pdos_ldos.py +0 -0
  24. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos.py +0 -0
  25. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado].py +0 -0
  26. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +0 -0
  27. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos.py +0 -0
  28. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos_[polarizado].py +0 -0
  29. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/kpoints_2D_3D.py +0 -0
  30. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_QE/projecao_angular_momentum.py +0 -0
  31. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/_info.py +0 -0
  32. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/_info_b.py +0 -0
  33. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/_label.py +0 -0
  34. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/_nscf.py +0 -0
  35. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/_var_kpoints.py +0 -0
  36. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/chgcar.py +0 -0
  37. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/contcar_info.py +0 -0
  38. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/contribuicao.py +0 -0
  39. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/dielectric_function.py +0 -0
  40. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/dos_pdos_ldos.py +0 -0
  41. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/dos_pdos_ldos_[polarizado].py +0 -0
  42. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/kpoints_2D_3D.py +0 -0
  43. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/parchg.py +0 -0
  44. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/poscar_replace.py +0 -0
  45. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/postar_combination.py +0 -0
  46. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/potencial.py +0 -0
  47. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_VASP/wave_function.py +0 -0
  48. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_dft.py +0 -0
  49. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_dft2kp.py +0 -0
  50. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_loop.py +0 -0
  51. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_settings.py +0 -0
  52. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/_update.py +0 -0
  53. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/bandas_2D.py +0 -0
  54. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/bandas_3D.py +0 -0
  55. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/bandas_4D.py +0 -0
  56. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/correction_file.py +0 -0
  57. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/etc/BibTeX.dat +0 -0
  58. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/etc/DOI.png +0 -0
  59. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/etc/Greek_alphabet.jpg +0 -0
  60. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/fermi_surface.py +0 -0
  61. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.bands +0 -0
  62. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.chgcar +0 -0
  63. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.dos +0 -0
  64. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.location +0 -0
  65. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.locpot +0 -0
  66. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.orbitals +0 -0
  67. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/input.vasprocar.spin +0 -0
  68. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/inputs.py +0 -0
  69. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/inputs/inputs_files.py +0 -0
  70. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/level_countour.py +0 -0
  71. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/orbital_texture.py +0 -0
  72. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/orbital_texture_vector.py +0 -0
  73. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_bandas_2D.py +0 -0
  74. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_chgcar.py +0 -0
  75. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_dielectric_function.py +0 -0
  76. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos.py +0 -0
  77. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado].py +0 -0
  78. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +0 -0
  79. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_parchg.py +0 -0
  80. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_potencial.py +0 -0
  81. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_projecao_localizacao.py +0 -0
  82. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_projecao_orbitais.py +0 -0
  83. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_projecao_psi.py +0 -0
  84. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_projecao_spin.py +0 -0
  85. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/Grace/plot_wave_function.py +0 -0
  86. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/_plot_settings.py +0 -0
  87. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_bandas_2D.py +0 -0
  88. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_bandas_3D_matplotlib.py +0 -0
  89. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_bandas_3D_plotly.py +0 -0
  90. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_bandas_4D_plotly.py +0 -0
  91. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_chgcar.py +0 -0
  92. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_dielectric_function.py +0 -0
  93. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_dos_pdos_ldos.py +0 -0
  94. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_dos_pdos_ldos_[polarizado].py +0 -0
  95. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_fermi_surface.py +0 -0
  96. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_level_countour.py +0 -0
  97. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_orbital_texture.py +0 -0
  98. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_orbital_texture_vector.py +0 -0
  99. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_parchg.py +0 -0
  100. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_potencial.py +0 -0
  101. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_projecao_localizacao.py +0 -0
  102. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_projecao_orbitais.py +0 -0
  103. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_projecao_psi.py +0 -0
  104. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_projecao_spin.py +0 -0
  105. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_spin_texture_2D.py +0 -0
  106. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_spin_texture_3D.py +0 -0
  107. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_spin_texture_4D.py +0 -0
  108. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_spin_texture_4D_[iso].py +0 -0
  109. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/plot/plot_wave_function.py +0 -0
  110. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/projecao_localizacao.py +0 -0
  111. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/projecao_orbitais.py +0 -0
  112. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/projecao_psi.py +0 -0
  113. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/projecao_spin.py +0 -0
  114. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar/src/spin_texture.py +0 -0
  115. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar.egg-info/SOURCES.txt +0 -0
  116. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar.egg-info/dependency_links.txt +0 -0
  117. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar.egg-info/entry_points.txt +0 -0
  118. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar.egg-info/requires.txt +0 -0
  119. {vasprocar-1.1.19.117 → vasprocar-1.1.19.118}/vasprocar.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vasprocar
3
- Version: 1.1.19.117
3
+ Version: 1.1.19.118
4
4
  Summary: VASProcar is an open-source package written in the Python 3 programming language, which aims to provide an intuitive tool for the post-processing of the output files produced by the DFT VASP/QE codes, through an interactive user interface.
5
5
  Home-page: https://doi.org/10.5281/zenodo.6343960
6
6
  Download-URL: https://doi.org/10.5281/zenodo.6343960
@@ -6,7 +6,7 @@ from typing import Optional
6
6
 
7
7
  setup(
8
8
  name = "vasprocar",
9
- version = "1.1.19.117",
9
+ version = "1.1.19.118",
10
10
  entry_points={'console_scripts': ['vasprocar = vasprocar:main']},
11
11
  description = "VASProcar is an open-source package written in the Python 3 programming language, which aims to provide an intuitive tool for the post-processing of the output files produced by the DFT VASP/QE codes, through an interactive user interface.",
12
12
  author = "Augusto de Lelis Araujo and Renan da Paixao Maciel",
@@ -14,7 +14,7 @@ dir_vasprocar = os.path.dirname(os.path.realpath(__file__))
14
14
  print(f'{dir_vasprocar}')
15
15
  #------------------------
16
16
 
17
- version = '1.1.19.117'
17
+ version = '1.1.19.118'
18
18
  VASProcar_name = 'VASProcar version ' + version
19
19
 
20
20
  url_1 = 'https://pypi.org/project/vasprocar'
@@ -26,8 +26,8 @@ tipo_spin = 4
26
26
  ##############################################################
27
27
  # Which band do you want to analyze? =========================
28
28
  ##############################################################
29
- n_band = 1
30
-
29
+ band_i = 1
30
+ band_f = 2
31
31
 
32
32
 
33
33
  #######################################################################
@@ -138,6 +138,34 @@ map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","pink","pink"
138
138
  "cyan","cyan","cyan","blue","magenta","magenta","magenta","red"])
139
139
  map_color = map_red_blue
140
140
 
141
+
142
+ #-------------
143
+ min_energ = []
144
+ max_energ = []
145
+ pulo = (pulo + 1)
146
+ levels = [0]*1
147
+ #-----------------------------------
148
+ for b in range(band_i, (band_f +1)):
149
+ colum = (3 -1) + (b -1)*4 +2
150
+ energia = spin[:,colum-1] + dE_fermi + Delta_E
151
+ #-----------------------------
152
+ min_energ.append(min(energia))
153
+ max_energ.append(max(energia))
154
+ #---------------------------------
155
+ # energ_i = min(min_energ)
156
+ # energ_f = max(max_energ)
157
+ #----------------------
158
+ if (tipo_contour == 0):
159
+ for i in range(n_contour + 2):
160
+ if (i != 0 and i != (n_contour + 1)):
161
+ levels_n[i-1] = energ_i + ((energ_f - energ_i)/(n_contour + 1))*(i-1)
162
+ #----------------------
163
+ if (tipo_contour == 1):
164
+ for i in range(n_contour):
165
+ levels_n[i] = energ_i + ((energ_f - energ_i)/(n_contour - 1))*(i)
166
+ #-----------------------------------------------------------------------
167
+
168
+
141
169
  #=========================================================================
142
170
  # 2D Plot of Spin Projection on Level Contours: ==========================
143
171
  #=========================================================================
@@ -210,34 +238,49 @@ for i in range (1,(6+1)):
210
238
 
211
239
  #------------------------------------------
212
240
 
213
- for b in range(n_band_f - n_band_i + 1):
214
-
215
- energia = spin[:,(3 + b*4)] + dE_fermi
216
- Spin_Sx = spin[:,(4 + b*4)]
217
- Spin_Sy = spin[:,(5 + b*4)]
218
- Spin_Sz = spin[:,(6 + b*4)]
219
-
220
- pulo = (pulo + 1)
221
- levels = [0]*1
222
-
223
- #------------------------------------------------------------------------------
224
-
225
- if (tipo_contour == 0):
226
- energ_i = min(energia)
227
- energ_f = max(energia)
228
- for ii in range(n_contour + 2):
229
- if (ii != 0 and ii != (n_contour + 1)):
230
- levels_n[ii-1] = energ_i + ((energ_f - energ_i)/(n_contour + 1))*(ii-1)
231
-
232
- if (tipo_contour == 1):
233
- for ii in range(n_contour):
234
- levels_n[ii] = energ_i + ((energ_f - energ_i)/(n_contour - 1))*(ii)
241
+ # for b in range(nb):
242
+ # energia = spin[:,(3 + b*4)] + dE_fermi
243
+ # Spin_Sx = spin[:,(4 + b*4)]
244
+ # Spin_Sy = spin[:,(5 + b*4)]
245
+ # Spin_Sz = spin[:,(6 + b*4)]
246
+
247
+ for b in range(band_i, (band_f +1)):
248
+ #-------------------------------
249
+ cont = 0
250
+ if (allowed_bands == 'all'): cont = 1
251
+ if (allowed_bands == 'even'):
252
+ if ((int(b/2) -(b/2)) == 0.0): cont = 1
253
+ if (allowed_bands == 'odd'):
254
+ if ((int(b/2) -(b/2)) != 0.0): cont = 1
255
+ #-----------------------------------------
256
+ if (cont == 1):
257
+ #---------------------------
258
+ colum = (3 -1) + (b -1)*4 +2
259
+ #---------------------------
260
+ energia = spin[:,colum-1] + dE_fermi
261
+ Spin_Sx = spin[:,colum+0]
262
+ Spin_Sy = spin[:,colum+1]
263
+ Spin_Sz = spin[:,colum+2]
264
+
265
+
266
+ #------------------------
267
+ # if (tipo_contour == 0):
268
+ # energ_i = min(energia)
269
+ # energ_f = max(energia)
270
+ # for ii in range(n_contour + 2):
271
+ # if (ii != 0 and ii != (n_contour + 1)):
272
+ # levels_n[ii-1] = energ_i + ((energ_f - energ_i)/(n_contour + 1))*(ii-1)
273
+ #----------------------------------------------------------------------------------
274
+ # if (tipo_contour == 1):
275
+ # for ii in range(n_contour):
276
+ # levels_n[ii] = energ_i + ((energ_f - energ_i)/(n_contour - 1))*(ii)
277
+ #---------------------------------------------------------------------------
235
278
 
236
- # Realizando a interpolação de [Kx, Ky, Energia] -------------------------
237
279
 
280
+ #---------------------------------------------------------------------------
281
+ # Realizando a interpolação de [Kx, Ky, Energia] ---------------------------
238
282
  e_grid = griddata((eixo1,eixo2), energia, (x_grid,y_grid), method = 'cubic')
239
-
240
- #------------------------------------------------------------------------------
283
+ #---------------------------------------------------------------------------
241
284
 
242
285
  for j in range(n_contour):
243
286
 
@@ -0,0 +1,408 @@
1
+
2
+ import os
3
+ import numpy as np
4
+ import matplotlib as mpl
5
+ from matplotlib import cm
6
+ from matplotlib import pyplot as plt
7
+ import matplotlib.ticker as ticker
8
+ from mpl_toolkits.mplot3d.axes3d import Axes3D
9
+ from matplotlib.ticker import LinearLocator, FormatStrFormatter
10
+ import matplotlib.colors as colors
11
+ from scipy.interpolate import griddata
12
+
13
+ print(" ")
14
+ print("========== 2D Plot of Spin Projection (Level Contours) ==========")
15
+
16
+ if (tipo_contour < 2):
17
+ levels_n = [0.0]*n_contour
18
+
19
+ #--------------------------------------------------------------------------
20
+ # Variables that define the thickness and length of vectors in the plot ---
21
+ #--------------------------------------------------------------------------
22
+ if ((fator > -1.0 and fator < 1.0) or fator == -1.0):
23
+ fator == 1.0
24
+
25
+ if (fator > 0.0):
26
+ fator = 1/fator
27
+
28
+ if (fator < 0.0):
29
+ fator = (fator**2)**0.5
30
+
31
+ espessura = 0.005 # Use espessura = 100 if you only want to plot the triangular head of the arrow and eliminate the tail,
32
+ comprimento = 2.0*fator # which makes it easier to adjust the size/volume of the vectors by adjusting the comprimento variable.
33
+ #----------------------
34
+
35
+ #------------------------------------------------------------------------
36
+ # Test to know which directories must be correctly informed -------------
37
+ #------------------------------------------------------------------------
38
+ if os.path.isdir('src'):
39
+ 0 == 0
40
+ dir_output = dir_files + '/output/Spin_Texture/'
41
+ else:
42
+ dir_files = ''
43
+ dir_output = ''
44
+ #-----------------
45
+
46
+ #---------------------------------------------------------------------------------------
47
+ # Checking if the "figures" subfolder exists, if it doesn't exist it will be created ---
48
+ #---------------------------------------------------------------------------------------
49
+ if os.path.isdir(dir_output + 'figures'):
50
+ 0 == 0
51
+ else:
52
+ os.mkdir(dir_output + 'figures')
53
+ #----------------------------------
54
+
55
+ #======================================================================
56
+ #======================================================================
57
+ # File Structure for Plot via Matplotlib ==============================
58
+ #======================================================================
59
+ #======================================================================
60
+
61
+ spin = np.loadtxt(dir_output + 'Spin_Texture.dat')
62
+ spin.shape
63
+
64
+ print(" ")
65
+ print(".........................")
66
+ print("..... Wait a moment .....")
67
+ print(".........................")
68
+ print(". It might take a while .")
69
+ print(".........................")
70
+
71
+ #----------------------------------------------------------------------
72
+
73
+ if (esc_fermi == 0): dE_fermi = 0.0
74
+ if (esc_fermi == 1): dE_fermi = (Efermi)*(-1)
75
+
76
+ #----------------------------------------------------------------------
77
+
78
+ if (Plano_k == 1): # Plane (kx,ky) or (k1,k2)
79
+ eixo1 = spin[:,0]
80
+ eixo2 = spin[:,1]
81
+
82
+ if (Plano_k == 2): # Plane (kx,kz) or (k1,k3)
83
+ eixo1 = spin[:,0]
84
+ eixo2 = spin[:,2]
85
+
86
+ if (Plano_k == 3): # Plane (ky,kz) or (k2,k3)
87
+ eixo1 = spin[:,1]
88
+ eixo2 = spin[:,2]
89
+
90
+
91
+ #-------------
92
+ min_energ = []
93
+ max_energ = []
94
+ pulo = (pulo + 1)
95
+ levels = [0]*1
96
+ #-----------------------------------
97
+ for b in range(band_i, (band_f +1)):
98
+ colum = (3 -1) + (b -1)*4 +2
99
+ energia = spin[:,colum-1] + dE_fermi + Delta_E
100
+ #-----------------------------
101
+ min_energ.append(min(energia))
102
+ max_energ.append(max(energia))
103
+ #---------------------------------
104
+ # energ_i = min(min_energ)
105
+ # energ_f = max(max_energ)
106
+ #----------------------
107
+ if (tipo_contour == 0):
108
+ for i in range(n_contour + 2):
109
+ if (i != 0 and i != (n_contour + 1)):
110
+ levels_n[i-1] = energ_i + ((energ_f - energ_i)/(n_contour + 1))*(i-1)
111
+ #----------------------
112
+ if (tipo_contour == 1):
113
+ for i in range(n_contour):
114
+ levels_n[i] = energ_i + ((energ_f - energ_i)/(n_contour - 1))*(i)
115
+ #-----------------------------------------------------------------------
116
+
117
+
118
+ if (Plano_k == 1):
119
+ s1 = 'Sx'; s2 = 'Sy'; s3 = 'Sz'
120
+ sa = r'${S}_{x}$'; sb = r'${S}_{y}$'; sc = r'${S}_{z}$'
121
+ if (Plano_k == 2):
122
+ s1 = 'Sx'; s2 = 'Sz'; s3 = 'Sy'
123
+ sa = r'${S}_{x}$'; sb = r'${S}_{z}$'; sc = r'${S}_{y}$'
124
+ if (Plano_k == 3):
125
+ s1 = 'Sy'; s2 = 'Sz'; s3 = 'Sx'
126
+ sa = r'${S}_{y}$'; sb = r'${S}_{z}$'; sc = r'${S}_{x}$'
127
+
128
+
129
+ #----------------------------------
130
+ if (Dimensao < 4 and Plano_k == 1):
131
+ ca = r'${k}_{x}$'; cb = r'${k}_{y}$'
132
+ if (Dimensao < 4 and Plano_k == 2):
133
+ ca = r'${k}_{x}$'; cb = r'${k}_{z}$'
134
+ if (Dimensao < 4 and Plano_k == 3):
135
+ ca = r'${k}_{y}$'; cb = r'${k}_{z}$'
136
+ #--------------------------------------
137
+ if (Dimensao == 4 and Plano_k == 1):
138
+ ca = r'${k}_{1}$'; cb = r'${k}_{2}$'
139
+ if (Dimensao == 4 and Plano_k == 2):
140
+ ca = r'${k}_{1}$'; cb = r'${k}_{3}$'
141
+ if (Dimensao == 4 and Plano_k == 3):
142
+ ca = r'${k}_{2}$'; cb = r'${k}_{3}$'
143
+ #-----------------------------------------
144
+ if (Dimensao == 1): cc = r' $(2{\pi}/{a})$'
145
+ if (Dimensao == 2): cc = r' $({\AA}^{-1})$'
146
+ if (Dimensao == 3): cc = r' $({nm}^{-1})$'
147
+ if (Dimensao == 4): cc = ' '
148
+
149
+
150
+ # Create meshgrid for x,y ------------------------------------------------
151
+ xi = np.linspace(min(eixo1), max(eixo1), n_d)
152
+ yi = np.linspace(min(eixo2), max(eixo2), n_d)
153
+ x_grid, y_grid = np.meshgrid(xi,yi)
154
+ e_grid = griddata((eixo1,eixo2), energia, (x_grid,y_grid), method = 'cubic')
155
+
156
+
157
+ # Color Maps -------------------------------------------------------------
158
+ # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","white","red","white","blue","white","blue","white","red"])
159
+ # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","magenta","red","magenta","blue","magenta","blue","magenta","red"])
160
+ # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","pink","red","magenta","blue","cyan","blue","magenta","red"])
161
+ map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","pink","pink","pink","red","magenta","magenta","magenta","blue",
162
+ "cyan","cyan","cyan","blue","magenta","magenta","magenta","red"])
163
+ map_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
164
+ norma = colors.Normalize(0, 360)
165
+
166
+
167
+ #=========================================================================
168
+ # 2D Plot of Spin Projection on Level Contours: ==========================
169
+ #=========================================================================
170
+
171
+ for i in range (n_contour):
172
+ #----------------------
173
+ fig = plt.figure()
174
+ ax = fig.add_subplot(111)
175
+ #------------------------
176
+
177
+ if (tipo_spin == 1):
178
+ c1 = sa + ' | ' + ca + cc
179
+ c2 = cb + cc
180
+ L1 = sa + r'${\uparrow}$'
181
+ L2 = sa + r'${\downarrow}$'
182
+ rotulo = s1
183
+
184
+ if (tipo_spin == 2):
185
+ c1 = ca + cc
186
+ c2 = sb + ' | ' + cb + cc
187
+ L1 = sb + r'${\uparrow}$'
188
+ L2 = sb + r'${\downarrow}$'
189
+ rotulo = s2
190
+
191
+ if (tipo_spin == 3):
192
+ c1 = sc + ' | ' + ca + cc
193
+ c2 = cb + cc
194
+ L1 = sc + r'${\uparrow}$'
195
+ L2 = sc + r'${\downarrow}$'
196
+ rotulo = s3
197
+
198
+ if (tipo_spin == 4):
199
+ c1 = sa + ' | ' + ca + cc
200
+ c2 = sb + ' | ' + cb + cc
201
+ rotulo = s1 + s2
202
+
203
+ if (tipo_spin == 5):
204
+ rotulo = s1 + s3
205
+ c1 = sa + ' | ' + ca + cc
206
+ c2 = sc + ' | ' + cb + cc
207
+
208
+ if (tipo_spin == 6):
209
+ rotulo = s2 + s3
210
+ c1 = sc + ' | ' + ca + cc
211
+ c2 = sb + ' | ' + cb + cc
212
+
213
+ if ((Plano_k == 1 and tipo_spin == 4) or (Plano_k == 2 and tipo_spin == 5) or (Plano_k == 3 and tipo_spin == 5)):
214
+ L1 = r'${S}_{x}{\uparrow} + {S}_{y}{\uparrow}$'
215
+ L2 = r'${S}_{x|y}{\uparrow}$'
216
+ L3 = r'${S}_{x|y}{\uparrow} + {S}_{y|x}{\downarrow}$'
217
+ L4 = r'${S}_{x|y}{\downarrow}$'
218
+ L5 = r'${S}_{x}{\downarrow} + {S}_{y}{\downarrow}$'
219
+
220
+ if ((Plano_k == 1 and tipo_spin == 5) or (Plano_k == 2 and tipo_spin == 4) or (Plano_k == 3 and tipo_spin == 6)):
221
+ L1 = r'${S}_{x}{\uparrow} + {S}_{z}{\uparrow}$'
222
+ L2 = r'${S}_{x|z}{\uparrow}$'
223
+ L3 = r'${S}_{x|z}{\uparrow} + {S}_{z|x}{\downarrow}$'
224
+ L4 = r'${S}_{x|z}{\downarrow}$'
225
+ L5 = r'${S}_{x}{\downarrow} + {S}_{z}{\downarrow}$'
226
+
227
+ if ((Plano_k == 1 and tipo_spin == 6) or (Plano_k == 2 and tipo_spin == 6) or (Plano_k == 3 and tipo_spin == 4)):
228
+ L1 = r'${S}_{y}{\uparrow} + {S}_{z}{\uparrow}$'
229
+ L2 = r'${S}_{y|z}{\uparrow}$'
230
+ L3 = r'${S}_{y|z}{\uparrow} + {S}_{z|y}{\downarrow}$'
231
+ L4 = r'${S}_{y|z}{\downarrow}$'
232
+ L5 = r'${S}_{y}{\downarrow} + {S}_{z}{\downarrow}$'
233
+
234
+ for b in range(band_i, (band_f +1)):
235
+ #-------------------------------
236
+ cont = 0; points = []
237
+ if (allowed_bands == 'all'): cont = 1
238
+ if (allowed_bands == 'even'):
239
+ if ((int(b/2) -(b/2)) == 0.0): cont = 1
240
+ if (allowed_bands == 'odd'):
241
+ if ((int(b/2) -(b/2)) != 0.0): cont = 1
242
+ #-----------------------------------------
243
+
244
+ if (cont == 1):
245
+ #---------------------------
246
+ colum = (3 -1) + (b -1)*4 +2
247
+ #---------------------------
248
+ energia = spin[:,colum-1] + dE_fermi + Delta_E
249
+ Spin_Sx = spin[:,colum+0]
250
+ Spin_Sy = spin[:,colum+1]
251
+ Spin_Sz = spin[:,colum+2]
252
+
253
+ #-----------------------------------------------------------------------------------------------
254
+ # plt.contourf(x_grid, y_grid, e_grid, levels_n, cmap = "bwr", alpha = 0.05, antialiased = True)
255
+ #-----------------------------------------------------------------------------------------------
256
+ levels[0] = levels_n[i]
257
+ cs = plt.contour(x_grid, y_grid, e_grid, levels, linestyles = '-', cmap = map_gray, linewidths = 0.5, alpha = 1.0, antialiased = True)
258
+ #---------------------------------------------------------------------------------------------------------------------------------------
259
+ points = []
260
+ paths = cs.collections[0].get_paths()
261
+ verts = [xx.vertices for xx in paths]
262
+ try:
263
+ points = np.concatenate(verts)
264
+ ...
265
+ except Exception as e:
266
+ print(f"error detected: {e}")
267
+
268
+ if (len(points) > 0 and cont == 1):
269
+ #------------------------------------------------------------------------------
270
+ new_Sx = griddata((eixo1,eixo2), Spin_Sx, (points[::pulo,0], points[::pulo,1]))
271
+ new_Sy = griddata((eixo1,eixo2), Spin_Sy, (points[::pulo,0], points[::pulo,1]))
272
+ new_Sz = griddata((eixo1,eixo2), Spin_Sz, (points[::pulo,0], points[::pulo,1]))
273
+ #------------------------------------------------------------------------------
274
+
275
+ if (Plano_k == 1): # Plane (kx,ky) or (k1,k2)
276
+ Spin_S1 = new_Sx
277
+ Spin_S2 = new_Sy
278
+ Spin_S3 = new_Sz
279
+
280
+ if (Plano_k == 2): # Plane (kx,kz) or (k1,k3)
281
+ Spin_S1 = new_Sx
282
+ Spin_S2 = new_Sz
283
+ Spin_S3 = new_Sy
284
+
285
+ if (Plano_k == 3): # Plane (ky,kz) or (k2,k3)
286
+ Spin_S1 = new_Sy
287
+ Spin_S2 = new_Sz
288
+ Spin_S3 = new_Sx
289
+
290
+ #------------------
291
+ passo = len(new_Sx)
292
+ nulo = [0.0]*passo
293
+ angle = [0]*passo
294
+ #----------------
295
+
296
+ for k in range(passo):
297
+ if (tipo_spin == 1): v_spin = [Spin_S1[k], 0.0]
298
+ if (tipo_spin == 2): v_spin = [0.0, Spin_S2[k]]
299
+ if (tipo_spin == 3): v_spin = [Spin_S3[k], 0.0]
300
+ if (tipo_spin == 4): v_spin = [Spin_S1[k], Spin_S2[k]]
301
+ if (tipo_spin == 5): v_spin = [Spin_S1[k], Spin_S3[k]]
302
+ if (tipo_spin == 6): v_spin = [Spin_S3[k], Spin_S2[k]]
303
+
304
+ #---------------------------------------------------------------------------------------------------
305
+ # Obtaining the rotation angle (counter clockwise) of the Spin vector with respect to the x-axis ---
306
+ #---------------------------------------------------------------------------------------------------
307
+ u = v_spin / np.linalg.norm(v_spin)
308
+ v = [1.0, 0.0] # Reference vector for the angle. Must be kept fixed.
309
+ dot_product = np.dot(u, v)
310
+ angle[k] = np.arccos(dot_product) / np.pi * 180
311
+ if (u[1] < 0.0): angle[k] = 360 - angle[k]
312
+
313
+ if (tipo_spin == 1): cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, nulo, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
314
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
315
+
316
+ if (tipo_spin == 2): cp = ax.quiver(points[::pulo,0], points[::pulo,1], nulo, Spin_S2, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
317
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
318
+
319
+ if (tipo_spin == 3): cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S3, nulo, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
320
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
321
+
322
+ if (tipo_spin == 4): cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, Spin_S2, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
323
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
324
+
325
+ if (tipo_spin == 5): cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, Spin_S3, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
326
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
327
+
328
+ if (tipo_spin == 6): cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S3, Spin_S2, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
329
+ alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
330
+
331
+ #------------------------------------------------------------------------
332
+ # plt.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, Spin_S2, angle,
333
+ # scale_units = "xy", angles = "xy", pivot = 'tail', cmap = map_red_blue, norm = norma, linewidths = 0.5, edgecolor = 'black', alpha = transp)
334
+ #--------------------------------------------------------------------------------------------------------------------------------------------------------
335
+
336
+ if (tipo_spin < 4):
337
+ cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0, boundaries = [0, 180, 360], ticks = [90, 270])
338
+ cbar.ax.set_yticklabels([L1, L2])
339
+
340
+ if (tipo_spin > 3):
341
+ cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0, values = [45, 90, 135, 180, 225], ticks = [45, 90, 135, 180, 225])
342
+ cbar.ax.set_yticklabels([L1, L2, L3, L4, L5])
343
+
344
+ # ax.clabel(cs, inline = False, colors = 'black', fontsize = 8)
345
+
346
+ temp_level = f'{levels_n[i]:_.4f}'
347
+
348
+ if (levels_n[i] <= 0.0): c_energ = temp_level
349
+ if (levels_n[i] > 0.0): c_energ = '+' + temp_level
350
+
351
+ c_band = str(Banda)
352
+
353
+ if (esc_fermi == 0): plt.title('Band ' + str(Banda) + ': $E$ = ' + c_energ + ' eV')
354
+ if (esc_fermi == 1): plt.title('Band ' + str(Banda) + ': $E-E_{f}$ = ' + c_energ + ' eV')
355
+
356
+ #----------------
357
+ ax.set_xlabel(c1)
358
+ ax.set_ylabel(c2)
359
+ ax.set_box_aspect(1.0/1)
360
+ #-----------------------
361
+
362
+ m = (i + 1)
363
+ if (m < 10): number = '[000' + str(m) + ']'
364
+ if (m >= 10 and m < 100): number = '[00' + str(m) + ']'
365
+ if (m >= 100 and m < 1000): number = '[0' + str(m) + ']'
366
+ if (m >= 1000): number = '[' + str(m) + ']'
367
+
368
+ if (save_png == 1): plt.savefig(dir_output + 'figures/Spin_Texture_video_' + number + '_[' + c_energ + '].png', dpi = 300, bbox_inches='tight', pad_inches=0)
369
+ if (save_pdf == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].pdf', dpi = 600, bbox_inches='tight', pad_inches=0)
370
+ if (save_svg == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].svg', dpi = 600, bbox_inches='tight', pad_inches=0)
371
+ if (save_eps == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].eps', dpi = 600, bbox_inches='tight', pad_inches=0)
372
+
373
+ fig = plt.gcf()
374
+ fig.set_size_inches(8,6)
375
+ # plt.show()
376
+ plt.close()
377
+
378
+ print(" ")
379
+ print("=== Creating a video (.mp4) of the 2D Spin Texture (Level Contours) ===")
380
+ print(" ")
381
+
382
+ #======================================================================
383
+ # Creating a video with the generated images (moviepy): ===============
384
+ #======================================================================
385
+
386
+ import moviepy.video.io.ImageSequenceClip
387
+
388
+ if (dir_output != ''):
389
+ image_output = dir_output + 'figures'
390
+ if (dir_output == ''):
391
+ image_output = os.getcwd() + '/figures'
392
+
393
+ image_files = [os.path.join(image_output,img)
394
+ for img in os.listdir(image_output)
395
+ if img.endswith('.png')]
396
+
397
+ clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(image_files, fps = n_fig)
398
+
399
+ clip.write_videofile(dir_output + 'STexture_video.mp4')
400
+
401
+ #---------------------------------------------------------------------------
402
+ if (dir_output == ''):
403
+ print(" ")
404
+ print("========================== Concluded! ==========================")
405
+ #---------------------------------------------------------------------------
406
+
407
+ # VASProcar Copyright (C) 2023
408
+ # GNU GPL-3.0 license
@@ -1,4 +1,4 @@
1
- # VASProcar Copyright (C) 2023
1
+ linha += 1; lines.insert(linha, f'allowed_bands = "all" # Allowed "all", "even" or "odd" bands \n')# VASProcar Copyright (C) 2023
2
2
  # GNU GPL-3.0 license
3
3
 
4
4
  import numpy as np
@@ -57,8 +57,8 @@ if (escolha == -1):
57
57
  print(" ")
58
58
 
59
59
  if (esc_bands == 0):
60
- n_band_i = 1
61
- n_band_f = nb
60
+ band_i = 1
61
+ band_f = nb
62
62
 
63
63
  if (esc_bands == 1):
64
64
  if (len(inputs) == 0):
@@ -71,8 +71,8 @@ if (escolha == -1):
71
71
  print ("band_i band_f: 1 15 ")
72
72
  print ("band_i band_f: 7 7 ")
73
73
  print ("##############################################################")
74
- n_band_i, n_band_f = input ("band_i band_f: ").replace(':', ' ').replace('-', ' ').replace('*', ' ').split()
75
- n_band_i = int(n_band_i); n_band_f = int(n_band_f)
74
+ band_i, band_f = input ("band_i band_f: ").replace(':', ' ').replace('-', ' ').replace('*', ' ').split()
75
+ band_i = int(band_i); band_f = int(band_f)
76
76
  print (" ")
77
77
 
78
78
  print ("#######################################################################")
@@ -335,8 +335,8 @@ if (escolha == -1):
335
335
  #-----------------------------------------------------------------------------
336
336
 
337
337
  if (escolha == 1):
338
- n_band_i = 1
339
- n_band_f = nb
338
+ band_i = 1
339
+ band_f = nb
340
340
  esc_fermi = 1
341
341
  rot_energ = 0
342
342
  esc_ions = 0
@@ -355,7 +355,6 @@ if (esc_fermi == 0): dE_fermi = 0.0
355
355
  if (esc_fermi == 1): dE_fermi = (Efermi)*(-1)
356
356
  #--------------------------------------------
357
357
 
358
- bands_range = '1:' + str(nb)
359
358
 
360
359
  #======================================================================
361
360
  # Obtaining the results from DFT outpout files ========================
@@ -395,17 +394,28 @@ for i in range (n_procar*nk):
395
394
  if (Dimensao == 4):
396
395
  spin_texture .write(f'{k1} {k2} {k3} ')
397
396
 
397
+ # for j in range (1,(nb+1)):
398
+ # VTemp = spin.readline().split()
399
+ # if (j >= band_i and j <= band_f):
400
+ # #--------------------
401
+ # energia = bandas[:,j]
402
+ # #--------------------
403
+ # Sx = float(VTemp[2]) + float(VTemp[3])
404
+ # Sy = float(VTemp[4]) + float(VTemp[5])
405
+ # Sz = float(VTemp[6]) + float(VTemp[7])
406
+ # spin_texture.write(f'{energia[i]} {Sx} {Sy} {Sz} ')
407
+ # spin_texture.write(f' \n')
408
+
398
409
  for j in range (1,(nb+1)):
399
410
  VTemp = spin.readline().split()
400
- if (j >= n_band_i and j <= n_band_f):
401
- #--------------------
402
- energia = bandas[:,j]
403
- #--------------------
404
- Sx = float(VTemp[2]) + float(VTemp[3])
405
- Sy = float(VTemp[4]) + float(VTemp[5])
406
- Sz = float(VTemp[6]) + float(VTemp[7])
407
- spin_texture.write(f'{energia[i]} {Sx} {Sy} {Sz} ')
408
- spin_texture.write(f' \n')
411
+ #--------------------
412
+ energia = bandas[:,j]
413
+ #--------------------
414
+ Sx = float(VTemp[2]) + float(VTemp[3])
415
+ Sy = float(VTemp[4]) + float(VTemp[5])
416
+ Sz = float(VTemp[6]) + float(VTemp[7])
417
+ spin_texture.write(f'{energia[i]} {Sx} {Sy} {Sz} ')
418
+ spin_texture.write(f' \n')
409
419
 
410
420
  #-------------------
411
421
  inform.close()
@@ -464,11 +474,12 @@ linha += 1; lines.insert(linha, '#==============================================
464
474
  linha += 1; lines.insert(linha, '# These are the parameters that allows the code to run separatedly === \n')
465
475
  linha += 1; lines.insert(linha, '#===================================================================== \n')
466
476
  linha += 1; lines.insert(linha, '\n')
467
- linha += 1; lines.insert(linha, f'n_procar = {n_procar} # Total Num. of PROCAR files \n')
468
- linha += 1; lines.insert(linha, f'nk = {nk} # Total Num. of k-points \n')
469
- linha += 1; lines.insert(linha, f'nb = {nb} # Total Num. of bands \n')
470
- linha += 1; lines.insert(linha, f'n_band_i = {n_band_i} # Initial band to be projected onto the Fermi contour \n')
471
- linha += 1; lines.insert(linha, f'n_band_f = {n_band_f} # Final band to be projected onto the Fermi contour \n')
477
+ linha += 1; lines.insert(linha, f'n_procar = {n_procar} # Total Num. of PROCAR files \n')
478
+ linha += 1; lines.insert(linha, f'nk = {nk} # Total Num. of k-points \n')
479
+ linha += 1; lines.insert(linha, f'nb = {nb} # Total Num. of bands \n')
480
+ linha += 1; lines.insert(linha, f'band_i = {band_i} # Initial band to be projected onto the Fermi contour \n')
481
+ linha += 1; lines.insert(linha, f'band_f = {band_f} # Final band to be projected onto the Fermi contour \n')
482
+ linha += 1; lines.insert(linha, f'allowed_bands = "all" # Allowed "all", "even" or "odd" bands \n')
472
483
  linha += 1; lines.insert(linha, f'rot_energ = {rot_energ} # Choose whether you want to label contour energies, where [0] = NO and [1] = YES \n')
473
484
  linha += 1; lines.insert(linha, f'fator = {fator} # Factor by which the length of the spin vectors will be increased or decreased \n')
474
485
  linha += 1; lines.insert(linha, f'pulo = {pulo} # Number of spin vectors to be ignored interleaved along the path of the band contour \n')
@@ -478,7 +489,6 @@ linha += 1; lines.insert(linha, f'Plano_k = {Plano_k} # [1] kxky or k1k2; [2
478
489
  linha += 1; lines.insert(linha, f'transp = {transp} # Transparency applied to the color gradient of the contours 2D plot \n')
479
490
  linha += 1; lines.insert(linha, f'tipo_contour = {tipo_contour} # How to obtain the energies of the Level Curves: Where [0] is automatic; [1] energy range and [2] entered manually \n')
480
491
  linha += 1; lines.insert(linha, f'n_contour = {n_contour} # Number of Level Contours to be obtained \n')
481
- linha += 1; lines.insert(linha, f'bands_range = "{bands_range}" \n')
482
492
  linha += 1; lines.insert(linha, f'Efermi = {Efermi} # Fermi energy from DFT outpout files \n')
483
493
  linha += 1; lines.insert(linha, f'esc_fermi = {esc_fermi} # Would you like to shift the Fermi level? [0] No, use the value obtained from VASP [1] Yes, shift the Fermi level to 0.0 eV \n')
484
494
  #--------------------------------