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