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