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.
- vasprocar-1.1.19.164/MANIFEST.in +1 -0
- {vasprocar-1.1.19.162/vasprocar.egg-info → vasprocar-1.1.19.164}/PKG-INFO +1 -1
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/setup.py +2 -1
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/__main__.py +1 -1
- vasprocar-1.1.19.164/vasprocar/src/_QE/_info.py +308 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/_info_b.py +422 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/_label.py +230 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/_nscf.py +892 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/_var_kpoints.py +86 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum.py +318 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/angular_momentum_plot/plot_projecao_angular_momentum_grace.py +188 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/contribuicao.py +121 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_pdos_ldos.py +527 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos.py +162 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado].py +202 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +177 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos.py +175 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/dos_plot/plot_dos_pdos_ldos_[polarizado].py +255 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/kpoints_2D_3D.py +503 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/projecao_angular_momentum.py +464 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/textura_spin_por_fazer/Spin.dat +40500 -0
- vasprocar-1.1.19.164/vasprocar/src/_QE/textura_spin_por_fazer/Texturas de Spin.f +444 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/_info.py +567 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/_info_b.py +445 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/_label.py +339 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/_nscf.py +636 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/_var_kpoints.py +203 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/chgcar.py +460 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/contcar_info.py +111 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/contribuicao.py +822 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/dielectric_function.py +318 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/dos_pdos_ldos.py +634 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/dos_pdos_ldos_[polarizado].py +657 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/kpoints_2D_3D.py +585 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/parchg.py +300 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/poscar_converter_coord.py +203 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/poscar_replace.py +364 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/postar_combination.py +103 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/potencial.py +302 -0
- vasprocar-1.1.19.164/vasprocar/src/_VASP/wave_function.py +309 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/BibTeX.dat +9 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/DOI.png +0 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/Greek_alphabet.jpg +0 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Gerador_Slab.py +22 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/POSCAR_Conversion_Direct_Cartesian.py +214 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Projection_BZs.py +161 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/Projection_kpoints.py +208 -0
- vasprocar-1.1.19.164/vasprocar/src/etc/codes_append/_TESTE_projecao_localizacao_contour_video.py +565 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.bands +95 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.chgcar +68 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.dos +99 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.fermi_surface +131 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.location +208 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.locpot +32 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.orbitals +140 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.spin +167 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/input.vasprocar.spin_video +213 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/inputs.py +27 -0
- vasprocar-1.1.19.164/vasprocar/src/inputs/inputs_files.py +121 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_bandas_2D.py +143 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_chgcar.py +95 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dielectric_function.py +130 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos.py +269 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado].py +249 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_dos_pdos_ldos_[polarizado_delta].py +224 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_parchg.py +90 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_potencial.py +108 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_localizacao.py +164 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_orbitais.py +273 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_psi.py +164 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_projecao_spin.py +248 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/Grace/plot_wave_function.py +90 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/_TESTE_plot_projecao_localizacao_contour_video.py +414 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/_plot_settings.py +141 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_2D.py +166 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_3D_matplotlib.py +150 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_3D_plotly.py +145 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_bandas_4D_plotly.py +155 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_chgcar.py +129 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_dielectric_function.py +115 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_dos_pdos_ldos.py +293 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_dos_pdos_ldos_[polarizado].py +592 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_fermi_surface.py +228 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_level_countour.py +181 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_orbital_texture.py +153 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_orbital_texture_vector.py +358 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_parchg.py +126 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_potencial.py +129 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_localizacao.py +323 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_orbitais.py +508 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_psi.py +322 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_projecao_spin.py +366 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_2D.py +293 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_3D.py +244 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_4D.py +154 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_4D_[iso].py +163 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_contour.py +384 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_spin_texture_contour_video.py +414 -0
- vasprocar-1.1.19.164/vasprocar/src/plot/plot_wave_function.py +126 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164/vasprocar.egg-info}/PKG-INFO +1 -1
- vasprocar-1.1.19.164/vasprocar.egg-info/SOURCES.txt +128 -0
- vasprocar-1.1.19.162/vasprocar.egg-info/SOURCES.txt +0 -32
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/LICENSE.txt +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/README.md +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/setup.cfg +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/__init__.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_dft.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_dft2kp.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_loop.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_settings.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/_update.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_2D.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_3D.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/bandas_4D.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/correction_file.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/fermi_surface.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/level_countour.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/orbital_texture.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/orbital_texture_vector.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_localizacao.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_orbitais.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_psi.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/projecao_spin.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture_contour.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar/src/spin_texture_contour_video.py +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/dependency_links.txt +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/entry_points.txt +0 -0
- {vasprocar-1.1.19.162 → vasprocar-1.1.19.164}/vasprocar.egg-info/requires.txt +0 -0
- {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.
|
|
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.
|
|
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",
|
|
@@ -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
|
+
#-------------
|