vasprocar 1.1.19.162__tar.gz → 1.1.19.164__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 (130) hide show
  1. vasprocar-1.1.19.164/MANIFEST.in +1 -0
  2. {vasprocar-1.1.19.162/vasprocar.egg-info → vasprocar-1.1.19.164}/PKG-INFO +1 -1
  3. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/setup.py +2 -1
  4. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/__main__.py +1 -1
  5. vasprocar-1.1.19.164/vasprocar/src/_QE/_info.py +308 -0
  6. vasprocar-1.1.19.164/vasprocar/src/_QE/_info_b.py +422 -0
  7. vasprocar-1.1.19.164/vasprocar/src/_QE/_label.py +230 -0
  8. vasprocar-1.1.19.164/vasprocar/src/_QE/_nscf.py +892 -0
  9. vasprocar-1.1.19.164/vasprocar/src/_QE/_var_kpoints.py +86 -0
  10. vasprocar-1.1.19.164/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum.py +318 -0
  11. vasprocar-1.1.19.164/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum_grace.py +188 -0
  12. vasprocar-1.1.19.164/vasprocar/src/_QE/contribuicao.py +121 -0
  13. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_pdos_ldos.py +527 -0
  14. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos.py +162 -0
  15. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado].py +202 -0
  16. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +177 -0
  17. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos.py +175 -0
  18. vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos_[polarizado].py +255 -0
  19. vasprocar-1.1.19.164/vasprocar/src/_QE/kpoints_2D_3D.py +503 -0
  20. vasprocar-1.1.19.164/vasprocar/src/_QE/projecao_angular_momentum.py +464 -0
  21. vasprocar-1.1.19.164/vasprocar/src/_QE/textura_spin_por_fazer/Spin.dat +40500 -0
  22. vasprocar-1.1.19.164/vasprocar/src/_QE/textura_spin_por_fazer/Texturas de Spin.f +444 -0
  23. vasprocar-1.1.19.164/vasprocar/src/_VASP/_info.py +567 -0
  24. vasprocar-1.1.19.164/vasprocar/src/_VASP/_info_b.py +445 -0
  25. vasprocar-1.1.19.164/vasprocar/src/_VASP/_label.py +339 -0
  26. vasprocar-1.1.19.164/vasprocar/src/_VASP/_nscf.py +636 -0
  27. vasprocar-1.1.19.164/vasprocar/src/_VASP/_var_kpoints.py +203 -0
  28. vasprocar-1.1.19.164/vasprocar/src/_VASP/chgcar.py +460 -0
  29. vasprocar-1.1.19.164/vasprocar/src/_VASP/contcar_info.py +111 -0
  30. vasprocar-1.1.19.164/vasprocar/src/_VASP/contribuicao.py +822 -0
  31. vasprocar-1.1.19.164/vasprocar/src/_VASP/dielectric_function.py +318 -0
  32. vasprocar-1.1.19.164/vasprocar/src/_VASP/dos_pdos_ldos.py +634 -0
  33. vasprocar-1.1.19.164/vasprocar/src/_VASP/dos_pdos_ldos_[polarizado].py +657 -0
  34. vasprocar-1.1.19.164/vasprocar/src/_VASP/kpoints_2D_3D.py +585 -0
  35. vasprocar-1.1.19.164/vasprocar/src/_VASP/parchg.py +300 -0
  36. vasprocar-1.1.19.164/vasprocar/src/_VASP/poscar_converter_coord.py +203 -0
  37. vasprocar-1.1.19.164/vasprocar/src/_VASP/poscar_replace.py +364 -0
  38. vasprocar-1.1.19.164/vasprocar/src/_VASP/postar_combination.py +103 -0
  39. vasprocar-1.1.19.164/vasprocar/src/_VASP/potencial.py +302 -0
  40. vasprocar-1.1.19.164/vasprocar/src/_VASP/wave_function.py +309 -0
  41. vasprocar-1.1.19.164/vasprocar/src/etc/BibTeX.dat +9 -0
  42. vasprocar-1.1.19.164/vasprocar/src/etc/DOI.png +0 -0
  43. vasprocar-1.1.19.164/vasprocar/src/etc/Greek_alphabet.jpg +0 -0
  44. vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Gerador_Slab.py +22 -0
  45. vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/POSCAR_Conversion_Direct_Cartesian.py +214 -0
  46. vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Projection_BZs.py +161 -0
  47. vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Projection_kpoints.py +208 -0
  48. vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/_TESTE_projecao_localizacao_contour_video.py +565 -0
  49. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.bands +95 -0
  50. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.chgcar +68 -0
  51. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.dos +99 -0
  52. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.fermi_surface +131 -0
  53. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.location +208 -0
  54. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.locpot +32 -0
  55. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.orbitals +140 -0
  56. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.spin +167 -0
  57. vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.spin_video +213 -0
  58. vasprocar-1.1.19.164/vasprocar/src/inputs/inputs.py +27 -0
  59. vasprocar-1.1.19.164/vasprocar/src/inputs/inputs_files.py +121 -0
  60. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_bandas_2D.py +143 -0
  61. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_chgcar.py +95 -0
  62. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dielectric_function.py +130 -0
  63. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos.py +269 -0
  64. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado].py +249 -0
  65. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +224 -0
  66. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_parchg.py +90 -0
  67. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_potencial.py +108 -0
  68. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_localizacao.py +164 -0
  69. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_orbitais.py +273 -0
  70. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_psi.py +164 -0
  71. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_spin.py +248 -0
  72. vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_wave_function.py +90 -0
  73. vasprocar-1.1.19.164/vasprocar/src/plot/_TESTE_plot_projecao_localizacao_contour_video.py +414 -0
  74. vasprocar-1.1.19.164/vasprocar/src/plot/_plot_settings.py +141 -0
  75. vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_2D.py +166 -0
  76. vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_3D_matplotlib.py +150 -0
  77. vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_3D_plotly.py +145 -0
  78. vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_4D_plotly.py +155 -0
  79. vasprocar-1.1.19.164/vasprocar/src/plot/plot_chgcar.py +129 -0
  80. vasprocar-1.1.19.164/vasprocar/src/plot/plot_dielectric_function.py +115 -0
  81. vasprocar-1.1.19.164/vasprocar/src/plot/plot_dos_pdos_ldos.py +293 -0
  82. vasprocar-1.1.19.164/vasprocar/src/plot/plot_dos_pdos_ldos_[polarizado].py +592 -0
  83. vasprocar-1.1.19.164/vasprocar/src/plot/plot_fermi_surface.py +228 -0
  84. vasprocar-1.1.19.164/vasprocar/src/plot/plot_level_countour.py +181 -0
  85. vasprocar-1.1.19.164/vasprocar/src/plot/plot_orbital_texture.py +153 -0
  86. vasprocar-1.1.19.164/vasprocar/src/plot/plot_orbital_texture_vector.py +358 -0
  87. vasprocar-1.1.19.164/vasprocar/src/plot/plot_parchg.py +126 -0
  88. vasprocar-1.1.19.164/vasprocar/src/plot/plot_potencial.py +129 -0
  89. vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_localizacao.py +323 -0
  90. vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_orbitais.py +508 -0
  91. vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_psi.py +322 -0
  92. vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_spin.py +366 -0
  93. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_2D.py +293 -0
  94. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_3D.py +244 -0
  95. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_4D.py +154 -0
  96. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_4D_[iso].py +163 -0
  97. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_contour.py +384 -0
  98. vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_contour_video.py +414 -0
  99. vasprocar-1.1.19.164/vasprocar/src/plot/plot_wave_function.py +126 -0
  100. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164/vasprocar.egg-info}/PKG-INFO +1 -1
  101. vasprocar-1.1.19.164/vasprocar.egg-info/SOURCES.txt +128 -0
  102. vasprocar-1.1.19.162/vasprocar.egg-info/SOURCES.txt +0 -32
  103. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/LICENSE.txt +0 -0
  104. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/README.md +0 -0
  105. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/setup.cfg +0 -0
  106. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/__init__.py +0 -0
  107. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_dft.py +0 -0
  108. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_dft2kp.py +0 -0
  109. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_loop.py +0 -0
  110. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_settings.py +0 -0
  111. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_update.py +0 -0
  112. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_2D.py +0 -0
  113. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_3D.py +0 -0
  114. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_4D.py +0 -0
  115. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/correction_file.py +0 -0
  116. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/fermi_surface.py +0 -0
  117. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/level_countour.py +0 -0
  118. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/orbital_texture.py +0 -0
  119. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/orbital_texture_vector.py +0 -0
  120. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_localizacao.py +0 -0
  121. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_orbitais.py +0 -0
  122. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_psi.py +0 -0
  123. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_spin.py +0 -0
  124. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture.py +0 -0
  125. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture_contour.py +0 -0
  126. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture_contour_video.py +0 -0
  127. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/dependency_links.txt +0 -0
  128. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/entry_points.txt +0 -0
  129. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/requires.txt +0 -0
  130. {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ recursive-include vasprocar/src *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vasprocar
3
- Version: 1.1.19.162
3
+ Version: 1.1.19.164
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
  Author: Augusto de Lelis Araujo and Renan da Paixao Maciel
6
6
  Author-email: augusto-lelis@outlook.com, renan.maciel@physics.uu.se
@@ -6,8 +6,9 @@ import json
6
6
 
7
7
  setup(
8
8
  name = "vasprocar",
9
- version = "1.1.19.162",
9
+ version = "1.1.19.164",
10
10
  packages=['vasprocar', 'vasprocar.src'],
11
+ include_package_data=True,
11
12
  entry_points={'console_scripts': ['vasprocar = vasprocar.__main__:main']},
12
13
  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.",
13
14
  author = "Augusto de Lelis Araujo and Renan da Paixao Maciel",
@@ -15,7 +15,7 @@ print(f'{dir_vasprocar}')
15
15
  #------------------------
16
16
 
17
17
  def main():
18
- version = '1.1.19.162'
18
+ version = '1.1.19.164'
19
19
  VASProcar_name = 'VASProcar version ' + version
20
20
 
21
21
  url_1 = 'https://pypi.org/project/vasprocar'
@@ -0,0 +1,308 @@
1
+ # VASProcar Copyright (C) 2023
2
+ # GNU GPL-3.0 license
3
+
4
+ #################################################################################
5
+ # Analisando os arquivos scf.out | nscf.in | nscf.out | bands.in | filband_file #
6
+ ################ Buscando informacoes do Sistema ################################
7
+ #################################################################################
8
+
9
+ # Valor padrão de algumas tags ========================================
10
+ energ_tot_all_electron = 0.0
11
+ energ_tot = 0.0
12
+ Efermi = -1000.0
13
+ n_procar = 1 # ??????????????????
14
+ lorbit = 10 # ??????????????????
15
+ n_orb = 4 # Número de Orbitais
16
+ ispin = 1
17
+ SO = 1
18
+ LNC = 1
19
+
20
+ #======================================================================
21
+
22
+ #------------------------------------------
23
+ scf_out = open(dir_files + '/scf.out', "r")
24
+ #------------------------------------------
25
+
26
+ for i in range(20000):
27
+ #---------------------------------
28
+ VTemp = scf_out.readline().split()
29
+ #---------------------------------
30
+
31
+ if (len(VTemp) == 8 and VTemp[0] == 'highest' and VTemp[1] == 'occupied,'):
32
+ Efermi = ((float(VTemp[7]) - float(VTemp[6]))/2) + float(VTemp[6]) # Energia de Fermi do sistema
33
+
34
+ if (len(VTemp) == 6 and (VTemp[1] == 'Fermi' and VTemp[2] == 'energy')):
35
+ Efermi = float(VTemp[4]) # Energia de Fermi do sistema
36
+
37
+ if (len(VTemp) == 6 and (VTemp[1] == 'total' and VTemp[2] == 'energy')):
38
+ energ_tot = float(VTemp[4]) # Energia total do sistema
39
+
40
+ if (len(VTemp) == 6 and (VTemp[1] == 'all-electron' and VTemp[2] == 'energy')):
41
+ energ_tot_all_electron = float(VTemp[4]) # Energia total de todos os elétrons do sistema
42
+
43
+ #--------------
44
+ scf_out.close()
45
+ #--------------
46
+
47
+ #======================================================================
48
+
49
+ #------------------------------------------
50
+ nscf_in = open(dir_files + '/nscf.in', "r")
51
+ #------------------------------------------
52
+
53
+ for i in range(10000):
54
+ #--------------------------------
55
+ VTemp = nscf_in.readline()
56
+ VTemp = VTemp.replace('=', ' = ')
57
+ VTemp = VTemp.replace(',', ' , ')
58
+ VTemp = VTemp.replace("'", "")
59
+ VTemp = VTemp.split()
60
+ #--------------------------------
61
+
62
+ # if (len(VTemp) > 0 and VTemp[0] == 'nat'):
63
+ # ni = int(VTemp[2]) # Numero de ions da rede
64
+
65
+ # if (len(VTemp) > 0 and VTemp[0] == 'ntyp'):
66
+ # types = int(VTemp[2]) # Numero de diferentes tipos de ions da rede
67
+
68
+ if (len(VTemp) > 0 and VTemp[0] == 'nspin'):
69
+ ispin = int(VTemp[2]) # Variavel que determina se o calculo é spin polarizado ou não
70
+
71
+ if (len(VTemp) > 0 and VTemp[0] == 'lspinorb'):
72
+ VTemp[2] = VTemp[2].replace('.', '')
73
+ if (VTemp[2][0] == 't' or VTemp[2][0] == 'T'):
74
+ SO = 2 # Variavel que informa se o cálculo possui acoplamento spin-orbita ou não
75
+ LNC = 2
76
+
77
+ #--------------
78
+ nscf_in.close()
79
+ #--------------
80
+
81
+ #======================================================================
82
+
83
+ #--------------------------------------------
84
+ nscf_out = open(dir_files + '/nscf.out', "r")
85
+ #--------------------------------------------
86
+
87
+ for line in nscf_out:
88
+ if 'unit-cell' in line:
89
+ break
90
+
91
+ VTemp = nscf_out.readline().split()
92
+ ni = int(VTemp[4]) # Numero de ions da rede
93
+
94
+ VTemp = nscf_out.readline().split()
95
+ types = int(VTemp[5]) # Numero de diferentes tipos de ions da rede
96
+
97
+ VTemp = nscf_out.readline().split()
98
+ n_eletrons = float(VTemp[4]) # Numero de elétrons
99
+
100
+ VTemp = nscf_out.readline().split()
101
+ nb = int(VTemp[4]) # Numero de bandas
102
+ nb = nb*ispin # ????????????????
103
+
104
+ #----------------------------------------------------------------------
105
+
106
+ test = 'null'
107
+
108
+ while (test != 'celldm(1)='):
109
+ VTemp = nscf_out.readline().split()
110
+ if (len(VTemp) == 6):
111
+ test = str(VTemp[0])
112
+
113
+ cell_1 = float(VTemp[1]); cell_2 = float(VTemp[3]); cell_3 = float(VTemp[5])
114
+
115
+ VTemp = nscf_out.readline().split()
116
+ cell_4 = float(VTemp[1]); cell_5 = float(VTemp[3]); cell_6 = float(VTemp[5])
117
+
118
+ Parametro = cell_1
119
+
120
+ VTemp = nscf_out.readline()
121
+ VTemp = nscf_out.readline()
122
+
123
+ A1 = nscf_out.readline().split()
124
+ A1x = float(A1[3]); A1y = float(A1[4]); A1z = float(A1[5]) # Leitura das coordenadas (X, Y, Z) do vetor primitivo (A1) da celula unitaria no espaco real
125
+
126
+ A2 = nscf_out.readline().split()
127
+ A2x = float(A2[3]); A2y = float(A2[4]); A2z = float(A2[5]) # Leitura das coordenadas (X, Y, Z) do vetor primitivo (A2) da celula unitaria no espaco real
128
+
129
+ A3 = nscf_out.readline().split()
130
+ A3x = float(A3[3]); A3y = float(A3[4]); A3z = float(A3[5]) # Leitura das coordenadas (X, Y, Z) do vetor primitivo (A3) da celula unitaria no espaco real
131
+
132
+ #----------------------------------------------------------------------
133
+
134
+ VTemp = nscf_out.readline()
135
+ VTemp = nscf_out.readline()
136
+
137
+ B1 = nscf_out.readline().split()
138
+ B1x = float(B1[3]); B1y = float(B1[4]); B1z = float(B1[5]) # Leitura das coordenadas (Kx, Ky, Kz) do vetor primitivo (B1) da 1º Zona de Brillouin no espaço recíproco
139
+
140
+ B2 = nscf_out.readline().split()
141
+ B2x = float(B2[3]); B2y = float(B2[4]); B2z = float(B2[5]) # Leitura das coordenadas (Kx, Ky, Kz) do vetor primitivo (B2) da 1º Zona de Brillouin no espaço recíproco
142
+
143
+ B3 = nscf_out.readline().split()
144
+ B3x = float(B3[3]); B3y = float(B3[4]); B3z = float(B3[5]) # Leitura das coordenadas (Kx, Ky, Kz) do vetor primitivo (B3) da 1º Zona de Brillouin no espaço recíproco
145
+
146
+ #----------------------------------------------------------------------
147
+
148
+ for line in nscf_out:
149
+ if 'site' in line:
150
+ break
151
+
152
+ rotulo = [0]*(ni+1)
153
+ rotulo_temp = [0]*(ni+1)
154
+
155
+ for i in range(1,(ni+1)):
156
+ VTemp = nscf_out.readline().split()
157
+ rotulo[i] = VTemp[1] # Obtenção dos rótulos para cada ion da rede
158
+
159
+ #----------------------------------------------------------------------
160
+
161
+ test = 'null'
162
+
163
+ while (test == 'number'):
164
+ #----------------------------------------------
165
+ VTemp = nscf_out.readline().replace('=', ' = ')
166
+ VTemp = VTemp.split()
167
+ #--------------------
168
+ if (len(VTemp) > 6):
169
+ test = str(VTemp[0])
170
+ nk = int(VTemp[5])
171
+
172
+ #---------------
173
+ nscf_out.close()
174
+ #---------------
175
+
176
+ #======================================================================
177
+
178
+ #-------------------------------------------
179
+ bands = open(dir_files + '/' + filband, "r")
180
+ #-------------------------------------------
181
+
182
+ #--------------------------------
183
+ VTemp = bands.readline()
184
+ VTemp = VTemp.replace('=', ' = ')
185
+ VTemp = VTemp.replace(',', ' , ')
186
+ VTemp = VTemp.replace('/', ' / ')
187
+ VTemp = VTemp.split()
188
+ #--------------------------------
189
+
190
+ nb = int(VTemp[3]) # Numero de bandas
191
+ nb = nb*ispin # ??????????????????
192
+ nk = int(VTemp[7]) # Numero de pontos-k
193
+
194
+ #------------
195
+ bands.close()
196
+ #------------
197
+
198
+ #======================================================================
199
+
200
+ #--------------------------------------------------------
201
+ inform = open(dir_files + '/output/informacoes.txt', "w")
202
+ #--------------------------------------------------------
203
+
204
+ inform.write(" \n")
205
+ inform.write("############################################################## \n")
206
+ inform.write(f'# {VASProcar_name} \n')
207
+ inform.write(f'# {url_1} \n')
208
+ inform.write(f'# {url_2} \n')
209
+ inform.write("############################################################## \n")
210
+ inform.write(" \n")
211
+
212
+ inform.write("------------------------------------------------------ \n")
213
+
214
+ if (SO == 1):
215
+ inform.write("LSORBIT = .FALSE. (Calculo sem acoplamento SO) \n")
216
+ if (SO == 2):
217
+ inform.write("LSORBIT = .TRUE. (Calculo com acoplamento SO) \n")
218
+
219
+ inform.write("------------------------------------------------------ \n")
220
+
221
+ # if (n_procar == 1): inform.write(f'nº Pontos-k = {nk}; nº Bandas = {nb} \n')
222
+ # if (n_procar > 1): inform.write(f'nº Pontos-k = {nk*n_procar} (nº PROCARs = {n_procar}); nº Bandas = {nb} \n')
223
+
224
+ inform.write(f'nº Pontos-k = {nk}; nº Bandas = {nb} \n')
225
+ inform.write(f'nº ions = {ni}; nº eletrons = {n_eletrons} \n')
226
+
227
+ inform.write("----------------------------------------------------- \n")
228
+ inform.write(f'ISPIN = {ispin} ')
229
+ if (ispin == 1): inform.write("(sem polarizacao de spin) \n")
230
+ if (ispin == 4): inform.write("(com polarizacao de spin) \n")
231
+ inform.write("----------------------------------------------------- \n")
232
+
233
+ if (Efermi != -1000.0):
234
+ inform.write(f'Energia de fermi = {Efermi} eV \n')
235
+ inform.write("----------------------------------------------------- \n")
236
+
237
+ #------------------------------------------------------------------------------
238
+ # inform.write(f'Ultima Banda ocupada = {n1_valencia} \n')
239
+ # inform.write(f'Primeira Banda vazia = {n1_conducao} \n')
240
+ # if (kp1 == kp2):
241
+ # inform.write(f'GAP (direto) = {GAP:.4f} eV - Kpoint {kp1} \n')
242
+ # if (kp1 != kp2):
243
+ # inform.write(f'GAP (indireto) = {GAP:.4f} eV // Kpoints {kp1} e {kp2} \n')
244
+ # inform.write("---------------------------------------------------- \n")
245
+ #------------------------------------------------------------------------------
246
+
247
+ if (energ_tot_all_electron != 0.0):
248
+ inform.write(f'total all-electron energy = {(energ_tot_all_electron/13.605684958731):.6f} eV ({(energ_tot_all_electron):.6f} Ry) \n')
249
+ if (energ_tot != 0.0):
250
+ inform.write(f'total energy = {(energ_tot/13.605684958731):.6f} eV ({(energ_tot):.6f} Ry) \n')
251
+ inform.write("----------------------------------------------------- \n")
252
+
253
+ # inform.write(" \n")
254
+ # inform.write("################# Magnetizacao: ##################### \n")
255
+ # inform.write(f'Eixo X: total = {mag_tot_x:.4f} \n')
256
+ # inform.write(f'Eixo Y: total = {mag_tot_y:.4f} \n')
257
+ # inform.write(f'Eixo Z: total = {mag_tot_z:.4f} \n')
258
+ # inform.write("##################################################### \n")
259
+
260
+ #-----------------------------------------------------------------------
261
+
262
+ param_angs = (Parametro/1.8897259886)
263
+ V_real = A1x*((A2y*A3z) - (A2z*A3y)) # I just divide this sum into three parts, since it is very long, and it exceeded the length of the line.
264
+ V_real += A1y*((A2z*A3x) - (A2x*A3z))
265
+ V_real += A1z*((A2x*A3y) - (A2y*A3x))
266
+ V_real1 = abs(V_real*(param_angs**3)); V_real1 = round(V_real1, 6) # Cell volume in real space (in Angs^3)
267
+ V_real2 = abs(V_real*(Parametro**3)); V_real2 = round(V_real2, 6) # Cell volume in real space (in Bohr^3)
268
+
269
+ #-----------------------------------------------------------------------
270
+
271
+ inform.write(" \n")
272
+ inform.write("***************************************************** \n")
273
+ inform.write("Vetores Primitivos da Rede Cristalina *************** \n")
274
+ inform.write(f'Param. = {(Parametro/1.8897259886):.6f} Angs. ({Parametro:.6f} Bohr|a.u.) \n')
275
+ inform.write(f'A1 = Param.({(A1x):12.9f}, {(A1y):12.9f}, {(A1z):12.9f}) \n')
276
+ inform.write(f'A2 = Param.({(A2x):12.9f}, {(A2y):12.9f}, {(A2z):12.9f}) \n')
277
+ inform.write(f'A3 = Param.({(A3x):12.9f}, {(A3y):12.9f}, {(A3z):12.9f}) \n')
278
+ inform.write(f'Volume = {V_real1} Angs^3 ({V_real2} Bohr|a.u.^3) \n')
279
+ inform.write("***************************************************** \n")
280
+ inform.write(" \n")
281
+
282
+ #-----------------------------------------------------------------------
283
+
284
+ dpi = 2*3.1415926535897932384626433832795
285
+ param_angs = (Parametro/1.8897259886)
286
+ V_rec = B1x*((B2y*B3z) - (B2z*B3y)) # I just divide this sum into three parts, since it is very long, and it exceeded the length of the line.
287
+ V_rec += B1y*((B2z*B3x) - (B2x*B3z))
288
+ V_rec += B1z*((B2x*B3y) - (B2y*B3x))
289
+ V_rec1 = abs(V_rec*((dpi/param_angs)**3)); V_rec1 = round(V_rec1, 6) # Cell volume in reciprocal space (in Angs^-3)
290
+ V_rec2 = abs(V_rec*((dpi/Parametro)**3)); V_rec2 = round(V_rec2, 6) # Cell volume in real space (in Bohr^3)
291
+
292
+ #-----------------------------------------------------------------------
293
+
294
+ inform.write("***************************************************** \n")
295
+ inform.write("Vetores Primitivos da Rede Reciproca **************** \n")
296
+ inform.write(f'Param. = {(Parametro/1.8897259886):.6f} Angs. ({Parametro:.6f} Bohr|a.u.) \n')
297
+ inform.write(f'B1 = 2pi/Param.({(B1x):11.8f}, {(B1y):11.8f}, {(B1z):11.8f}) \n')
298
+ inform.write(f'B2 = 2pi/Param.({(B2x):11.8f}, {(B2y):11.8f}, {(B2z):11.8f}) \n')
299
+ inform.write(f'B3 = 2pi/Param.({(B3x):11.8f}, {(B3y):11.8f}, {(B3z):11.8f}) \n')
300
+ inform.write(f'Volume = {V_rec1} Angs^-3 ({V_rec2} Bohr|a.u.^-3) \n')
301
+ inform.write("***************************************************** \n")
302
+ inform.write(" \n")
303
+
304
+ #-----------------------------------------------------------------------
305
+
306
+ #-------------
307
+ inform.close()
308
+ #-------------