vasprocar 1.1.19.136__tar.gz → 1.1.19.138__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 (121) hide show
  1. {vasprocar-1.1.19.136/vasprocar.egg-info → vasprocar-1.1.19.138}/PKG-INFO +1 -1
  2. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/setup.py +1 -1
  3. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/__main__.py +1 -1
  4. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/_info_b.py +3 -1
  5. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/spin_texture_contour_video.py +1 -1
  6. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138/vasprocar.egg-info}/PKG-INFO +1 -1
  7. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar.egg-info/SOURCES.txt +0 -2
  8. vasprocar-1.1.19.136/vasprocar/src/plot/plot_spin_texture_contour_video_Backup_0.py +0 -417
  9. vasprocar-1.1.19.136/vasprocar/src/plot/plot_spin_texture_contour_video_Backup_1.py +0 -391
  10. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/LICENSE.txt +0 -0
  11. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/README.md +0 -0
  12. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/setup.cfg +0 -0
  13. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/__init__.py +0 -0
  14. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/_info.py +0 -0
  15. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/_info_b.py +0 -0
  16. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/_label.py +0 -0
  17. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/_nscf.py +0 -0
  18. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/_var_kpoints.py +0 -0
  19. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum.py +0 -0
  20. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum_grace.py +0 -0
  21. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/contribuicao.py +0 -0
  22. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_pdos_ldos.py +0 -0
  23. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos.py +0 -0
  24. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado].py +0 -0
  25. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +0 -0
  26. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos.py +0 -0
  27. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos_[polarizado].py +0 -0
  28. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/kpoints_2D_3D.py +0 -0
  29. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_QE/projecao_angular_momentum.py +0 -0
  30. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/_info.py +0 -0
  31. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/_label.py +0 -0
  32. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/_nscf.py +0 -0
  33. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/_var_kpoints.py +0 -0
  34. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/chgcar.py +0 -0
  35. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/contcar_info.py +0 -0
  36. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/contribuicao.py +0 -0
  37. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/dielectric_function.py +0 -0
  38. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/dos_pdos_ldos.py +0 -0
  39. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/dos_pdos_ldos_[polarizado].py +0 -0
  40. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/kpoints_2D_3D.py +0 -0
  41. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/parchg.py +0 -0
  42. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/poscar_replace.py +0 -0
  43. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/postar_combination.py +0 -0
  44. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/potencial.py +0 -0
  45. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_VASP/wave_function.py +0 -0
  46. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_dft.py +0 -0
  47. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_dft2kp.py +0 -0
  48. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_loop.py +0 -0
  49. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_settings.py +0 -0
  50. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/_update.py +0 -0
  51. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/bandas_2D.py +0 -0
  52. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/bandas_3D.py +0 -0
  53. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/bandas_4D.py +0 -0
  54. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/correction_file.py +0 -0
  55. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/etc/BibTeX.dat +0 -0
  56. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/etc/DOI.png +0 -0
  57. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/etc/Greek_alphabet.jpg +0 -0
  58. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/fermi_surface.py +0 -0
  59. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.bands +0 -0
  60. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.chgcar +0 -0
  61. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.dos +0 -0
  62. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.fermi_surface +0 -0
  63. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.location +0 -0
  64. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.locpot +0 -0
  65. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.orbitals +0 -0
  66. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.spin +0 -0
  67. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/input.vasprocar.spin_video +0 -0
  68. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/inputs.py +0 -0
  69. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/inputs/inputs_files.py +0 -0
  70. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/level_countour.py +0 -0
  71. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/orbital_texture.py +0 -0
  72. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/orbital_texture_vector.py +0 -0
  73. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_bandas_2D.py +0 -0
  74. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_chgcar.py +0 -0
  75. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_dielectric_function.py +0 -0
  76. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos.py +0 -0
  77. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado].py +0 -0
  78. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +0 -0
  79. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_parchg.py +0 -0
  80. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_potencial.py +0 -0
  81. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_projecao_localizacao.py +0 -0
  82. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_projecao_orbitais.py +0 -0
  83. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_projecao_psi.py +0 -0
  84. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_projecao_spin.py +0 -0
  85. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/Grace/plot_wave_function.py +0 -0
  86. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/_plot_settings.py +0 -0
  87. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_bandas_2D.py +0 -0
  88. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_bandas_3D_matplotlib.py +0 -0
  89. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_bandas_3D_plotly.py +0 -0
  90. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_bandas_4D_plotly.py +0 -0
  91. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_chgcar.py +0 -0
  92. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_dielectric_function.py +0 -0
  93. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_dos_pdos_ldos.py +0 -0
  94. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_dos_pdos_ldos_[polarizado].py +0 -0
  95. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_fermi_surface.py +0 -0
  96. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_level_countour.py +0 -0
  97. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_orbital_texture.py +0 -0
  98. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_orbital_texture_vector.py +0 -0
  99. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_parchg.py +0 -0
  100. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_potencial.py +0 -0
  101. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_projecao_localizacao.py +0 -0
  102. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_projecao_orbitais.py +0 -0
  103. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_projecao_psi.py +0 -0
  104. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_projecao_spin.py +0 -0
  105. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_2D.py +0 -0
  106. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_3D.py +0 -0
  107. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_4D.py +0 -0
  108. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_4D_[iso].py +0 -0
  109. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_contour.py +0 -0
  110. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_spin_texture_contour_video.py +0 -0
  111. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/plot/plot_wave_function.py +0 -0
  112. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/projecao_localizacao.py +0 -0
  113. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/projecao_orbitais.py +0 -0
  114. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/projecao_psi.py +0 -0
  115. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/projecao_spin.py +0 -0
  116. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/spin_texture.py +0 -0
  117. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar/src/spin_texture_contour.py +0 -0
  118. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar.egg-info/dependency_links.txt +0 -0
  119. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar.egg-info/entry_points.txt +0 -0
  120. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/vasprocar.egg-info/requires.txt +0 -0
  121. {vasprocar-1.1.19.136 → vasprocar-1.1.19.138}/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.136
3
+ Version: 1.1.19.138
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.136",
9
+ version = "1.1.19.138",
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.136'
17
+ version = '1.1.19.138'
18
18
  VASProcar_name = 'VASProcar version ' + version
19
19
 
20
20
  url_1 = 'https://pypi.org/project/vasprocar'
@@ -90,7 +90,9 @@ try:
90
90
  except:
91
91
  0 == 0
92
92
 
93
- for i in range(1, 100):
93
+ loop_nprocar = len([file for file in os.listdir(dir_files) if file.startswith("PROCAR.")])
94
+
95
+ for i in range(1, (loop_nprocar +1)):
94
96
  try:
95
97
  f = open(dir_files + '/PROCAR.'+str(i))
96
98
  f.close()
@@ -304,7 +304,7 @@ if ((soma_1 == 2 or soma_2 == 2) and len(inputs) == 0):
304
304
  Dimensao = 4
305
305
  #----------------------------------
306
306
 
307
- if ((soma_1 == 2 or soma_2 == 2) and len(inputs) != 0):
307
+ if ((soma_1 == 2 or soma_2 == 2)):
308
308
  #-----------------
309
309
  if (Dimensao < 4):
310
310
  if (dk[3] == 1 and dk[4] == 1): Plano_k = 1 # kxky-plan
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vasprocar
3
- Version: 1.1.19.136
3
+ Version: 1.1.19.138
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
@@ -102,8 +102,6 @@ vasprocar/src/plot/plot_spin_texture_4D.py
102
102
  vasprocar/src/plot/plot_spin_texture_4D_[iso].py
103
103
  vasprocar/src/plot/plot_spin_texture_contour.py
104
104
  vasprocar/src/plot/plot_spin_texture_contour_video.py
105
- vasprocar/src/plot/plot_spin_texture_contour_video_Backup_0.py
106
- vasprocar/src/plot/plot_spin_texture_contour_video_Backup_1.py
107
105
  vasprocar/src/plot/plot_wave_function.py
108
106
  vasprocar/src/plot/Grace/plot_bandas_2D.py
109
107
  vasprocar/src/plot/Grace/plot_chgcar.py
@@ -1,417 +0,0 @@
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
- b = band_i
92
- colum = (3 -1) + (b -1)*4 +2
93
- energia = spin[:,colum-1] + dE_fermi
94
- #-----------------------------------
95
- Spin_Sx = spin[:,(4 + b*4)]
96
- Spin_Sy = spin[:,(5 + b*4)]
97
- Spin_Sz = spin[:,(6 + b*4)]
98
-
99
- pulo = (pulo + 1)
100
- levels = [0]*1
101
-
102
- #----------------------------------------------------------------------
103
-
104
- if (tipo_contour == 0):
105
- energ_i = min(energia)
106
- energ_f = max(energia)
107
- for i in range(n_contour + 2):
108
- if (i != 0 and i != (n_contour + 1)):
109
- levels_n[i-1] = energ_i + ((energ_f - energ_i)/(n_contour + 1))*(i-1)
110
-
111
- if (tipo_contour == 1):
112
- for i in range(n_contour):
113
- levels_n[i] = energ_i + ((energ_f - energ_i)/(n_contour - 1))*(i)
114
-
115
- #----------------------------------------------------------------------
116
-
117
- if (Plano_k == 1):
118
- s1 = 'Sx'; s2 = 'Sy'; s3 = 'Sz'
119
- sa = r'${S}_{x}$'; sb = r'${S}_{y}$'; sc = r'${S}_{z}$'
120
- if (Plano_k == 2):
121
- s1 = 'Sx'; s2 = 'Sz'; s3 = 'Sy'
122
- sa = r'${S}_{x}$'; sb = r'${S}_{z}$'; sc = r'${S}_{y}$'
123
- if (Plano_k == 3):
124
- s1 = 'Sy'; s2 = 'Sz'; s3 = 'Sx'
125
- sa = r'${S}_{y}$'; sb = r'${S}_{z}$'; sc = r'${S}_{x}$'
126
-
127
- #----------------------------------------------------------------------
128
-
129
- if (Dimensao < 4 and Plano_k == 1):
130
- ca = r'${k}_{x}$'; cb = r'${k}_{y}$'
131
- if (Dimensao < 4 and Plano_k == 2):
132
- ca = r'${k}_{x}$'; cb = r'${k}_{z}$'
133
- if (Dimensao < 4 and Plano_k == 3):
134
- ca = r'${k}_{y}$'; cb = r'${k}_{z}$'
135
-
136
- #--------------------------------------
137
-
138
- if (Dimensao == 4 and Plano_k == 1):
139
- ca = r'${k}_{1}$'; cb = r'${k}_{2}$'
140
- if (Dimensao == 4 and Plano_k == 2):
141
- ca = r'${k}_{1}$'; cb = r'${k}_{3}$'
142
- if (Dimensao == 4 and Plano_k == 3):
143
- ca = r'${k}_{2}$'; cb = r'${k}_{3}$'
144
-
145
- #--------------------------------------
146
-
147
- if (Dimensao == 1): cc = r' $(2{\pi}/{a})$'
148
- if (Dimensao == 2): cc = r' $({\AA}^{-1})$'
149
- if (Dimensao == 3): cc = r' $({nm}^{-1})$'
150
- if (Dimensao == 4): cc = ' '
151
-
152
- # Create meshgrid for x,y ------------------------------------------------
153
-
154
- xi = np.linspace(min(eixo1), max(eixo1), n_d)
155
- yi = np.linspace(min(eixo2), max(eixo2), n_d)
156
- x_grid, y_grid = np.meshgrid(xi,yi)
157
-
158
- e_grid = griddata((eixo1,eixo2), energia, (x_grid,y_grid), method = 'cubic')
159
-
160
- #=========================================================================
161
- # 2D Plot of Spin Projection on Level Contours: ==========================
162
- #=========================================================================
163
-
164
- for i in range (n_contour):
165
-
166
- map_gray = (mpl.colors.ListedColormap(['darkgray', 'darkgray']))
167
-
168
- fig = plt.figure()
169
- ax = fig.add_subplot(111)
170
-
171
- #-----------------------------------------------------------------------
172
-
173
- if (tipo_spin == 1):
174
- c1 = sa + ' | ' + ca + cc
175
- c2 = cb + cc
176
- L1 = sa + r'${\uparrow}$'
177
- L2 = sa + r'${\downarrow}$'
178
- rotulo = s1
179
-
180
- if (tipo_spin == 2):
181
- c1 = ca + cc
182
- c2 = sb + ' | ' + cb + cc
183
- L1 = sb + r'${\uparrow}$'
184
- L2 = sb + r'${\downarrow}$'
185
- rotulo = s2
186
-
187
- if (tipo_spin == 3):
188
- c1 = sc + ' | ' + ca + cc
189
- c2 = cb + cc
190
- L1 = sc + r'${\uparrow}$'
191
- L2 = sc + r'${\downarrow}$'
192
- rotulo = s3
193
-
194
- if (tipo_spin == 4):
195
- c1 = sa + ' | ' + ca + cc
196
- c2 = sb + ' | ' + cb + cc
197
- rotulo = s1 + s2
198
-
199
- if (tipo_spin == 5):
200
- rotulo = s1 + s3
201
- c1 = sa + ' | ' + ca + cc
202
- c2 = sc + ' | ' + cb + cc
203
-
204
- if (tipo_spin == 6):
205
- rotulo = s2 + s3
206
- c1 = sc + ' | ' + ca + cc
207
- c2 = sb + ' | ' + cb + cc
208
-
209
- if ((Plano_k == 1 and tipo_spin == 4) or (Plano_k == 2 and tipo_spin == 5) or (Plano_k == 3 and tipo_spin == 5)):
210
- L1 = r'${S}_{x}{\uparrow} + {S}_{y}{\uparrow}$'
211
- L2 = r'${S}_{x|y}{\uparrow}$'
212
- L3 = r'${S}_{x|y}{\uparrow} + {S}_{y|x}{\downarrow}$'
213
- L4 = r'${S}_{x|y}{\downarrow}$'
214
- L5 = r'${S}_{x}{\downarrow} + {S}_{y}{\downarrow}$'
215
-
216
- if ((Plano_k == 1 and tipo_spin == 5) or (Plano_k == 2 and tipo_spin == 4) or (Plano_k == 3 and tipo_spin == 6)):
217
- L1 = r'${S}_{x}{\uparrow} + {S}_{z}{\uparrow}$'
218
- L2 = r'${S}_{x|z}{\uparrow}$'
219
- L3 = r'${S}_{x|z}{\uparrow} + {S}_{z|x}{\downarrow}$'
220
- L4 = r'${S}_{x|z}{\downarrow}$'
221
- L5 = r'${S}_{x}{\downarrow} + {S}_{z}{\downarrow}$'
222
-
223
- if ((Plano_k == 1 and tipo_spin == 6) or (Plano_k == 2 and tipo_spin == 6) or (Plano_k == 3 and tipo_spin == 4)):
224
- L1 = r'${S}_{y}{\uparrow} + {S}_{z}{\uparrow}$'
225
- L2 = r'${S}_{y|z}{\uparrow}$'
226
- L3 = r'${S}_{y|z}{\uparrow} + {S}_{z|y}{\downarrow}$'
227
- L4 = r'${S}_{y|z}{\downarrow}$'
228
- L5 = r'${S}_{y}{\downarrow} + {S}_{z}{\downarrow}$'
229
-
230
- #-----------------------------------------------------------------------
231
-
232
- # plt.contourf(x_grid, y_grid, e_grid, levels_n, cmap = "bwr", alpha = 0.05, antialiased = True)
233
-
234
- #---------------------------------------------------------------------------------------------------------------------------------------
235
- levels[0] = levels_n[i]
236
- cs = plt.contour(x_grid, y_grid, e_grid, levels, linestyles = '-', cmap = map_gray, linewidths = 0.5, alpha = 1.0, antialiased = True)
237
- #---------------------------------------------------------------------------------------------------------------------------------------
238
- points = []
239
- paths = cs.collections[0].get_paths()
240
- verts = [xx.vertices for xx in paths]
241
- try:
242
- points = np.concatenate(verts)
243
- ...
244
- except Exception as e:
245
- print(f"error detected: {e}")
246
-
247
- #--------------------
248
- if (len(points) > 0):
249
- #---------------------------------------------------------------------------------------------------------------------------------------
250
- new_Sx = griddata((eixo1,eixo2), Spin_Sx, (points[::pulo,0], points[::pulo,1]))
251
- new_Sy = griddata((eixo1,eixo2), Spin_Sy, (points[::pulo,0], points[::pulo,1]))
252
- new_Sz = griddata((eixo1,eixo2), Spin_Sz, (points[::pulo,0], points[::pulo,1]))
253
- #---------------------------------------------------------------------------------------------------------------------------------------
254
-
255
- if (Plano_k == 1): # Plane (kx,ky) or (k1,k2)
256
- Spin_S1 = new_Sx
257
- Spin_S2 = new_Sy
258
- Spin_S3 = new_Sz
259
-
260
- if (Plano_k == 2): # Plane (kx,kz) or (k1,k3)
261
- Spin_S1 = new_Sx
262
- Spin_S2 = new_Sz
263
- Spin_S3 = new_Sy
264
-
265
- if (Plano_k == 3): # Plane (ky,kz) or (k2,k3)
266
- Spin_S1 = new_Sy
267
- Spin_S2 = new_Sz
268
- Spin_S3 = new_Sx
269
-
270
- #---------------------------------------------------------------------------------------------------------------------------------------
271
-
272
- passo = len(new_Sx)
273
- nulo = [0.0]*passo
274
- angle = [0]*passo
275
-
276
- for k in range(passo):
277
- #----------------------------------------
278
- if (tipo_spin == 1):
279
- v_spin = [Spin_S1[k], 0.0]
280
-
281
- if (tipo_spin == 2):
282
- v_spin = [0.0, Spin_S2[k]]
283
-
284
- if (tipo_spin == 3):
285
- v_spin = [Spin_S3[k], 0.0]
286
-
287
- if (tipo_spin == 4):
288
- v_spin = [Spin_S1[k], Spin_S2[k]]
289
-
290
- if (tipo_spin == 5):
291
- v_spin = [Spin_S1[k], Spin_S3[k]]
292
-
293
- if (tipo_spin == 6):
294
- v_spin = [Spin_S3[k], Spin_S2[k]]
295
-
296
- #---------------------------------------------------------------------------------------------------
297
- # Obtaining the rotation angle (counter clockwise) of the Spin vector with respect to the x-axis ---
298
- #---------------------------------------------------------------------------------------------------
299
- u = v_spin / np.linalg.norm(v_spin)
300
- v = [1.0, 0.0] # Reference vector for the angle. Must be kept fixed.
301
- dot_product = np.dot(u, v)
302
- angle[k] = np.arccos(dot_product) / np.pi * 180
303
- if (u[1] < 0.0):
304
- angle[k] = 360 - angle[k]
305
-
306
- #---------------------------------------------------------------------------------------------------------------------------------------
307
- # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","white","red","white","blue","white","blue","white","red"])
308
- # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","magenta","red","magenta","blue","magenta","blue","magenta","red"])
309
- # map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","pink","red","magenta","blue","cyan","blue","magenta","red"])
310
- map_red_blue = colors.LinearSegmentedColormap.from_list("", ["red","pink","pink","pink","red","magenta","magenta","magenta","blue",
311
- "cyan","cyan","cyan","blue","magenta","magenta","magenta","red"])
312
- norma = colors.Normalize(0, 360)
313
- #---------------------------------------------------------------------------------------------------------------------------------------
314
- if (tipo_spin == 1):
315
- cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, nulo, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
316
- alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
317
-
318
- if (tipo_spin == 2):
319
- cp = ax.quiver(points[::pulo,0], points[::pulo,1], nulo, Spin_S2, 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 == 3):
323
- cp = ax.quiver(points[::pulo,0], points[::pulo,1], Spin_S3, nulo, angle, cmap = map_red_blue, norm = norma, linewidths = 0.25, edgecolor = 'black',
324
- alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
325
-
326
- if (tipo_spin == 4):
327
- 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',
328
- alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
329
-
330
- if (tipo_spin == 5):
331
- 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',
332
- alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
333
-
334
- if (tipo_spin == 6):
335
- 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',
336
- alpha = transp, width = espessura, scale = comprimento, scale_units = 'inches', pivot = 'tail', minlength = 0.0)
337
-
338
- #---------------------------------------------------------------------------------------------------------------------------------------
339
- # plt.quiver(points[::pulo,0], points[::pulo,1], Spin_S1, Spin_S2, angle,
340
- # scale_units = "xy", angles = "xy", pivot = 'tail', cmap = map_red_blue, norm = norma, linewidths = 0.5, edgecolor = 'black', alpha = transp)
341
- #---------------------------------------------------------------------------------------------------------------------------------------
342
-
343
- if (tipo_spin < 4):
344
- cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0, boundaries = [0, 180, 360], ticks = [90, 270])
345
- cbar.ax.set_yticklabels([L1, L2])
346
-
347
- if (tipo_spin > 3):
348
- cbar = fig.colorbar(cp, orientation = 'vertical', shrink = 1.0, values = [45, 90, 135, 180, 225], ticks = [45, 90, 135, 180, 225])
349
- cbar.ax.set_yticklabels([L1, L2, L3, L4, L5])
350
-
351
- # ax.clabel(cs, inline = False, colors = 'black', fontsize = 8)
352
-
353
- temp_level = f'{levels_n[i]:_.4f}'
354
-
355
- if (levels_n[i] <= 0.0): c_energ = temp_level
356
- if (levels_n[i] > 0.0): c_energ = '+' + temp_level
357
-
358
- c_band = str(band_i)
359
-
360
- if (esc_fermi == 0): plt.title('Band ' + str(band_i) + ': $E$ = ' + c_energ + ' eV')
361
- if (esc_fermi == 1): plt.title('Band ' + str(band_i) + ': $E-E_{f}$ = ' + c_energ + ' eV')
362
-
363
- #----------------------------------------------------------------------
364
-
365
- ax.set_xlabel(c1)
366
- ax.set_ylabel(c2)
367
- ax.set_box_aspect(1.0/1)
368
-
369
- #----------------------------------------------------------------------
370
-
371
- m = (i + 1)
372
- if (m < 10): number = '[000' + str(m) + ']'
373
- if (m >= 10 and m < 100): number = '[00' + str(m) + ']'
374
- if (m >= 100 and m < 1000): number = '[0' + str(m) + ']'
375
- if (m >= 1000): number = '[' + str(m) + ']'
376
-
377
- if (save_png == 1): plt.savefig(dir_output + 'figures/Spin_Texture_video_' + number + '_[' + c_energ + '].png', dpi = 300, bbox_inches='tight', pad_inches=0)
378
- if (save_pdf == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].pdf', dpi = 600, bbox_inches='tight', pad_inches=0)
379
- if (save_svg == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].svg', dpi = 600, bbox_inches='tight', pad_inches=0)
380
- if (save_eps == 1): plt.savefig(dir_output + 'Spin_Texture_video_' + number + '_[' + c_energ + '].eps', dpi = 600, bbox_inches='tight', pad_inches=0)
381
-
382
- fig = plt.gcf()
383
- fig.set_size_inches(8,6)
384
- # plt.show()
385
- plt.close()
386
-
387
- print(" ")
388
- print("=== Creating a video (.mp4) of the 2D Spin Texture (Level Contours) ===")
389
- print(" ")
390
-
391
- #======================================================================
392
- # Creating a video with the generated images (moviepy): ===============
393
- #======================================================================
394
-
395
- import moviepy.video.io.ImageSequenceClip
396
-
397
- if (dir_output != ''):
398
- image_output = dir_output + 'figures'
399
- if (dir_output == ''):
400
- image_output = os.getcwd() + '/figures'
401
-
402
- image_files = [os.path.join(image_output,img)
403
- for img in sorted(os.listdir(image_output))
404
- if img.endswith('.png')]
405
-
406
- clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(image_files, fps = n_fig)
407
-
408
- clip.write_videofile(dir_output + 'STexture_video.mp4')
409
-
410
- #---------------------------------------------------------------------------
411
- if (dir_output == ''):
412
- print(" ")
413
- print("========================== Concluded! ==========================")
414
- #---------------------------------------------------------------------------
415
-
416
- # VASProcar Copyright (C) 2023
417
- # GNU GPL-3.0 license