SAMBA-ilum 1.0.0.472__tar.gz → 1.0.0.473__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.
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/PKG-INFO +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/__main__.py +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/HeteroStructure_Generator.py +3 -5
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/data-base_json.py +93 -80
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/setup.py +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/LICENSE.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/README.md +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/SOURCES.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/requires.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/SAMBA_ilum.egg-info/top_level.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/__init__.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/BZ_2D.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_xy-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_xyz-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/INCAR_z-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/_info_pseudo.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/a-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/a-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/bader +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/bader_poscar.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/bader_update.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/charge_transfer.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/chgsum.pl +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/contcar_update.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/data-base_union.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/energy_scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/hubbard_correction.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/job.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/kpoints.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/lattice_plot3d.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/make_files.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/output.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/potcar.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/vdW_DF.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/xy-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/xy-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/xyz-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/xyz-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/z-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/z-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/setup.cfg +0 -0
|
@@ -39,12 +39,10 @@ if (crit_area <= 0.0): crit_area = 0.01
|
|
|
39
39
|
#----------------------------------------------------------------------------------------------------------------------------------------------
|
|
40
40
|
# Rotulo temporário para os ions inequivalentes da célula unitária ----------------------------------------------------------------------------
|
|
41
41
|
#----------------------------------------------------------------------------------------------------------------------------------------------
|
|
42
|
-
letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W'
|
|
43
|
-
alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W'
|
|
44
|
-
# letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'z', 'y', 'w' ]
|
|
45
|
-
# alphabet += ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'z', 'y', 'w' ]
|
|
42
|
+
letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W']
|
|
43
|
+
alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', 'Y', 'W']
|
|
46
44
|
#------------------------------------------------------
|
|
47
|
-
# Gerando
|
|
45
|
+
# Gerando 1066 rótulos temporários para os ions da rede
|
|
48
46
|
#------------------------------------------------------
|
|
49
47
|
for k in range(40):
|
|
50
48
|
for i in range(len(letters)):
|
|
@@ -38,7 +38,8 @@ if (l_file == 'null' and l_file_SO == 'null'): sys.exit(0)
|
|
|
38
38
|
#==========================================================
|
|
39
39
|
kpoints_file = []
|
|
40
40
|
kpath = []
|
|
41
|
-
|
|
41
|
+
kpath_label = []
|
|
42
|
+
#---------------
|
|
42
43
|
if os.path.isdir('output/Bandas'): dir_kpath = 'bands'
|
|
43
44
|
if os.path.isdir('output/Bandas_SO'): dir_kpath = 'bands.SO'
|
|
44
45
|
#-----------------------------------------------------------------------------
|
|
@@ -58,24 +59,27 @@ for i in range(len(kpoints_file)):
|
|
|
58
59
|
if (j > 3 and len(lines[j]) > 1):
|
|
59
60
|
line = lines[j].split()
|
|
60
61
|
line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
|
|
61
|
-
kpath.append([float(line[0]), float(line[1]), float(line[2]),
|
|
62
|
-
|
|
62
|
+
kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
|
|
63
|
+
kpath_label.append(line[3])
|
|
64
|
+
#--------------------------------------
|
|
63
65
|
if (len(kpoints_file) > 1):
|
|
64
66
|
for j in range(len(lines)):
|
|
65
67
|
if (i == 0 and j > 3 and len(lines[j]) > 1):
|
|
66
68
|
line = lines[j].split()
|
|
67
69
|
line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
|
|
68
|
-
kpath.append([float(line[0]), float(line[1]), float(line[2]),
|
|
70
|
+
kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
|
|
71
|
+
kpath_label.append([line[3]])
|
|
69
72
|
if (i > 0 and j > 4 and len(lines[j]) > 1):
|
|
70
73
|
line = lines[j].split()
|
|
71
74
|
line[3] = line[3].replace('!', '').replace('#1', 'Gamma').replace('#', '')
|
|
72
|
-
kpath.append([float(line[0]), float(line[1]), float(line[2]),
|
|
75
|
+
kpath.append([round(float(line[0]), 15), round(float(line[1]), 15), round(float(line[2]), 15)])
|
|
73
76
|
#----------------------------------------------------------
|
|
74
77
|
# Removendo elementos adjacentes e repetidos da lista kpath
|
|
75
78
|
#----------------------------------------------------------
|
|
76
79
|
i = 0
|
|
77
80
|
while i < (len(kpath) -1):
|
|
78
81
|
if kpath[i] == kpath[i +1]: del kpath[i +1]
|
|
82
|
+
if kpath_label[i] == kpath_label[i +1]: del kpath_label[i +1]
|
|
79
83
|
else: i += 1 # Avança para o próximo par de elementos
|
|
80
84
|
|
|
81
85
|
|
|
@@ -125,54 +129,55 @@ if os.path.isfile('output/POSCAR.info'):
|
|
|
125
129
|
passo = n_materials +1
|
|
126
130
|
passo += 4
|
|
127
131
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
128
|
-
area_perc_mismatch.append([float(temp1[0]), float(temp1[1])])
|
|
132
|
+
area_perc_mismatch.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
|
|
129
133
|
if (n_materials == 3):
|
|
130
|
-
area_perc_mismatch.append([float(temp1[2]), float(temp1[3])])
|
|
131
|
-
|
|
134
|
+
area_perc_mismatch.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
|
|
135
|
+
#-------------------------------------------------
|
|
132
136
|
passo += 4
|
|
133
137
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
134
|
-
for ii in range(len(temp1)): perc_area_change.append(float(temp1[ii]))
|
|
135
|
-
|
|
138
|
+
for ii in range(len(temp1)): perc_area_change.append(round(float(temp1[ii]), 15))
|
|
139
|
+
#--------------------------------------------------------------
|
|
136
140
|
passo += 4
|
|
137
141
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
138
|
-
perc_mod_vectors_change.append([float(temp1[0]), float(temp1[1])])
|
|
139
|
-
perc_mod_vectors_change.append([float(temp1[2]), float(temp1[3])])
|
|
142
|
+
perc_mod_vectors_change.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
|
|
143
|
+
perc_mod_vectors_change.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
|
|
140
144
|
if (n_materials == 3):
|
|
141
|
-
perc_mod_vectors_change.append([float(temp1[4]), float(temp1[5])])
|
|
142
|
-
|
|
145
|
+
perc_mod_vectors_change.append([round(float(temp1[4]), 15), round(float(temp1[5]), 15)])
|
|
146
|
+
#------------------------------------------------------
|
|
143
147
|
passo += 4
|
|
144
148
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
145
|
-
angle_perc_mismatch.append([float(temp1[0]), float(temp1[1])])
|
|
149
|
+
angle_perc_mismatch.append([round(float(temp1[0]), 15), round(float(temp1[1]), 15)])
|
|
146
150
|
if (n_materials == 3):
|
|
147
|
-
angle_perc_mismatch.append([float(temp1[2]), float(temp1[3])])
|
|
148
|
-
|
|
151
|
+
angle_perc_mismatch.append([round(float(temp1[2]), 15), round(float(temp1[3]), 15)])
|
|
152
|
+
#--------------------------------------------------
|
|
149
153
|
passo += 4
|
|
150
154
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
151
|
-
for ii in range(len(temp1)): perc_angle_change.append(float(temp1[ii]))
|
|
152
|
-
|
|
155
|
+
for ii in range(len(temp1)): perc_angle_change.append(round(float(temp1[ii]), 15))
|
|
156
|
+
#---------------------------------------------------------------
|
|
153
157
|
passo += 4
|
|
154
158
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
155
|
-
for ii in range(len(temp1)): rotation_angle.append(float(temp1[ii]))
|
|
156
|
-
|
|
159
|
+
for ii in range(len(temp1)): rotation_angle.append(round(float(temp1[ii]), 15))
|
|
160
|
+
#------------------------------------------------------------
|
|
157
161
|
for i in range(n_materials):
|
|
158
162
|
passo += 4
|
|
159
163
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
160
164
|
supercell_matrix.append([[int(temp1[0]), int(temp1[1])], [int(temp1[2]), int(temp1[3])]])
|
|
161
|
-
|
|
165
|
+
# supercell_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
|
|
166
|
+
#------------------------------------------------------------------------
|
|
162
167
|
for i in range(n_materials):
|
|
163
168
|
passo += 4
|
|
164
169
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
165
|
-
deformation_matrix.append([[float(temp1[0]), float(temp1[1])], [float(temp1[2]), float(temp1[3])]])
|
|
166
|
-
|
|
170
|
+
deformation_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
|
|
171
|
+
#--------------------------------------------------------------------------
|
|
167
172
|
for i in range(n_materials):
|
|
168
173
|
passo += 4
|
|
169
174
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
170
|
-
strain_matrix.append([[float(temp1[0]), float(temp1[1])], [float(temp1[2]), float(temp1[3])]])
|
|
171
|
-
|
|
175
|
+
strain_matrix.append([[round(float(temp1[0]), 15), round(float(temp1[1]), 15)], [round(float(temp1[2]), 15), round(float(temp1[3]), 15)]])
|
|
176
|
+
#---------------------------------------------------------------------
|
|
172
177
|
passo += 4
|
|
173
178
|
temp1 = str(VTemp[passo]).replace('_', ' ').split()
|
|
174
|
-
for ii in range(len(temp1)): shift_plane.append(float(temp1[ii]))
|
|
175
|
-
|
|
179
|
+
for ii in range(len(temp1)): shift_plane.append(round(float(temp1[ii]), 15))
|
|
180
|
+
#---------------------------------------------------------
|
|
176
181
|
passo += 1
|
|
177
182
|
for i in range(n_materials):
|
|
178
183
|
id_materials.append(str(VTemp[-n_materials -1 +i]))
|
|
@@ -225,10 +230,12 @@ type_ions = poscar.readline().split()
|
|
|
225
230
|
type_ions_n = poscar.readline().split()
|
|
226
231
|
poscar.readline()
|
|
227
232
|
coord_ions = []
|
|
233
|
+
rotulo_ions = []
|
|
228
234
|
for i in range(len(type_ions)):
|
|
229
235
|
for j in range(int(type_ions_n[i])):
|
|
230
236
|
VTemp = poscar.readline().split()
|
|
231
|
-
coord_ions.append([ float(VTemp[0]), float(VTemp[1]), float(VTemp[2]),
|
|
237
|
+
coord_ions.append([ round(float(VTemp[0]), 15), round(float(VTemp[1]), 15), round(float(VTemp[2]), 15) ])
|
|
238
|
+
rotulo_ions.append(type_ions[i])
|
|
232
239
|
poscar.close()
|
|
233
240
|
|
|
234
241
|
|
|
@@ -243,6 +250,7 @@ for i in range(nion):
|
|
|
243
250
|
VTemp = poscar.readline().split()
|
|
244
251
|
temp_z.append(float(VTemp[2]))
|
|
245
252
|
total_thickness = (max(temp_z) -min(temp_z))*param
|
|
253
|
+
total_thickness = round(total_thickness, 15)
|
|
246
254
|
poscar.close()
|
|
247
255
|
#---------------------------------------------------------
|
|
248
256
|
if (n_materials == 1): thickness.append( total_thickness )
|
|
@@ -255,9 +263,12 @@ if (n_materials > 1):
|
|
|
255
263
|
for j in range(int(nions_materials[i])):
|
|
256
264
|
VTemp = poscar.readline().split()
|
|
257
265
|
temp_z.append(float(VTemp[2]))
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
266
|
+
temp_t = (max(temp_z) -min(temp_z))*param
|
|
267
|
+
thickness.append(round(temp_t, 15))
|
|
268
|
+
#---------------------------------------
|
|
269
|
+
if (i > 0):
|
|
270
|
+
temp_sep = (min(temp_z) -temp_max)*param
|
|
271
|
+
z_separation.append(round(temp_sep, 15))
|
|
261
272
|
temp_max = max(temp_z)
|
|
262
273
|
#---------------------
|
|
263
274
|
poscar.close()
|
|
@@ -308,7 +319,7 @@ if os.path.isfile('output/xy-scan/info_xy-scan.dat'):
|
|
|
308
319
|
xyscan = open('output/xy-scan/info_xy-scan.dat', "r")
|
|
309
320
|
#----------------------------------------------------
|
|
310
321
|
for i in range(6): VTemp = xyscan.readline().split()
|
|
311
|
-
e_slide = float(VTemp[2])
|
|
322
|
+
e_slide = round(float(VTemp[2]), 15)
|
|
312
323
|
#-------------
|
|
313
324
|
xyscan.close()
|
|
314
325
|
|
|
@@ -422,7 +433,7 @@ for n in range(2):
|
|
|
422
433
|
param_a = '--'; a1 = '--'; a2 = '--'; a3 = '--'; param_b = '--'; b1 = '--'; b2 = '--'; b3 = '--'
|
|
423
434
|
module_a1_a2_a3 = '--'; module_b1_b2_b3 = '--'; angle_a1a2_a1a3_a2a3 = '--'; angle_b1b2_b1b3_b2b3 = '--'
|
|
424
435
|
cell_area = '--'; cell_vol = '--'; zb_area = '--'; zb_volume = '--'
|
|
425
|
-
direct_coord_ions = '--'; k_path = '--'
|
|
436
|
+
direct_coord_ions = '--'; label_ions = '--'; k_path = '--'
|
|
426
437
|
|
|
427
438
|
|
|
428
439
|
#----------------------------------------------------------------------------------------------------------
|
|
@@ -477,8 +488,8 @@ for n in range(2):
|
|
|
477
488
|
if (VTemp[1] == 'k-points'): nk = int(VTemp[3])
|
|
478
489
|
if (VTemp[5] == 'bands'): nb = int(VTemp[7])
|
|
479
490
|
if (VTemp[1] == 'ions'): ni = int(VTemp[3])
|
|
480
|
-
if (VTemp[5] == 'electrons'): ne = float(VTemp[7])
|
|
481
|
-
|
|
491
|
+
if (VTemp[5] == 'electrons'): ne = round(float(VTemp[7]), 15)
|
|
492
|
+
#--------------------------------------------------------------------
|
|
482
493
|
elif (VTemp[0] == 'LORBIT'):
|
|
483
494
|
lorbit = int(VTemp[2])
|
|
484
495
|
if (VTemp[3] == 'ISPIN'): ispin = int(VTemp[5])
|
|
@@ -488,60 +499,60 @@ for n in range(2):
|
|
|
488
499
|
elif (VTemp[0] == 'First'): cbm = vbm +1
|
|
489
500
|
#----------------------------------------
|
|
490
501
|
elif (VTemp[0] == 'Valence'):
|
|
491
|
-
e_vbm = float(VTemp[7])
|
|
502
|
+
e_vbm = round(float(VTemp[7]), 15)
|
|
492
503
|
tk_vbm = int(VTemp[11])
|
|
493
504
|
#----------------------------------------
|
|
494
505
|
elif (VTemp[0] == 'Conduction'):
|
|
495
|
-
e_cbm = float(VTemp[7])
|
|
506
|
+
e_cbm = round(float(VTemp[7]), 15)
|
|
496
507
|
tk_cbm = int(VTemp[11])
|
|
497
508
|
#----------------------------------------
|
|
498
509
|
elif (VTemp[0] == 'GAP'):
|
|
499
510
|
type_gap = str(VTemp[2])
|
|
500
|
-
gap = float(VTemp[5])
|
|
511
|
+
gap = round(float(VTemp[5]), 15)
|
|
501
512
|
#----------------------------------------
|
|
502
|
-
elif (VTemp[0] == 'Fermi'): e_fermi = float(VTemp[3])
|
|
513
|
+
elif (VTemp[0] == 'Fermi'): e_fermi = round(float(VTemp[3]), 15)
|
|
503
514
|
#----------------------------------------
|
|
504
515
|
elif (VTemp[0] == 'free'):
|
|
505
|
-
total_energy = float(VTemp[4])
|
|
506
|
-
# e_per_ion = total_energy/ni
|
|
507
|
-
|
|
508
|
-
elif (VTemp[0] == 'Volume_cell'): Volume_cell = float(VTemp[2])
|
|
516
|
+
total_energy = round(float(VTemp[4]), 15)
|
|
517
|
+
# e_per_ion = round(float(total_energy)/ni, 15)
|
|
518
|
+
#--------------------------------------------------------
|
|
519
|
+
elif (VTemp[0] == 'Volume_cell'): Volume_cell = round(float(VTemp[2]), 15)
|
|
509
520
|
#----------------------------------------
|
|
510
521
|
elif (VTemp[0] == 'Param.'): param = float(VTemp[2])
|
|
511
522
|
#----------------------------------------
|
|
512
523
|
elif (VTemp[0] == 'A1'):
|
|
513
|
-
a1 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
|
|
514
|
-
A1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3 = []; module_a1_a2_a3.append(np.linalg.norm(A1))
|
|
524
|
+
a1 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
|
|
525
|
+
A1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3 = []; module_a1_a2_a3.append(round(np.linalg.norm(A1), 15))
|
|
515
526
|
elif (VTemp[0] == 'A2'):
|
|
516
|
-
a2 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
|
|
517
|
-
A2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(np.linalg.norm(A2))
|
|
527
|
+
a2 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
|
|
528
|
+
A2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(round(np.linalg.norm(A2), 15))
|
|
518
529
|
elif (VTemp[0] == 'A3'):
|
|
519
|
-
a3 = [float(VTemp[4])*param, float(VTemp[5])*param, float(VTemp[6])*param]
|
|
520
|
-
A3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(np.linalg.norm(A3))
|
|
530
|
+
a3 = [round(float(VTemp[4])*param, 15), round(float(VTemp[5])*param, 15), round(float(VTemp[6])*param, 15)]
|
|
531
|
+
A3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*param; module_a1_a2_a3.append(round(np.linalg.norm(A3), 15))
|
|
521
532
|
#-------------------------------------------------------
|
|
522
533
|
angle_a1a2_a1a3_a2a3 = []
|
|
523
|
-
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A2) / (np.linalg.norm(A1) * np.linalg.norm(A2)))),
|
|
524
|
-
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A3) / (np.linalg.norm(A1) * np.linalg.norm(A3)))),
|
|
525
|
-
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A2,A3) / (np.linalg.norm(A2) * np.linalg.norm(A3)))),
|
|
534
|
+
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A2) / (np.linalg.norm(A1) * np.linalg.norm(A2)))), 15))
|
|
535
|
+
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A1,A3) / (np.linalg.norm(A1) * np.linalg.norm(A3)))), 15))
|
|
536
|
+
angle_a1a2_a1a3_a2a3.append(round(np.degrees(np.arccos(np.dot(A2,A3) / (np.linalg.norm(A2) * np.linalg.norm(A3)))), 15))
|
|
526
537
|
#----------------------------------------
|
|
527
538
|
elif (VTemp[0] == '2pi/Param.'): fator_rec = float(VTemp[2])
|
|
528
539
|
#----------------------------------------
|
|
529
540
|
elif (VTemp[0] == 'B1'):
|
|
530
|
-
b1 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
|
|
531
|
-
B1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3 = []; module_b1_b2_b3.append(np.linalg.norm(B1))
|
|
541
|
+
b1 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
|
|
542
|
+
B1 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3 = []; module_b1_b2_b3.append(round(np.linalg.norm(B1), 15))
|
|
532
543
|
elif (VTemp[0] == 'B2'):
|
|
533
|
-
b2 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
|
|
534
|
-
B2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(np.linalg.norm(B2))
|
|
544
|
+
b2 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
|
|
545
|
+
B2 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(round(np.linalg.norm(B2), 15))
|
|
535
546
|
elif (VTemp[0] == 'B3'):
|
|
536
|
-
b3 = [float(VTemp[4])*fator_rec, float(VTemp[5])*fator_rec, float(VTemp[6])*fator_rec]
|
|
537
|
-
B3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(np.linalg.norm(B3))
|
|
547
|
+
b3 = [round(float(VTemp[4])*fator_rec, 15), round(float(VTemp[5])*fator_rec, 15), round(float(VTemp[6])*fator_rec, 15)]
|
|
548
|
+
B3 = np.array([float(VTemp[4]), float(VTemp[5]), float(VTemp[6])])*fator_rec; module_b1_b2_b3.append(round(np.linalg.norm(B3), 15))
|
|
538
549
|
#-------------------------------------------------------
|
|
539
550
|
angle_b1b2_b1b3_b2b3 = []
|
|
540
|
-
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B2) / (np.linalg.norm(B1) * np.linalg.norm(B2)))),
|
|
541
|
-
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B3) / (np.linalg.norm(B1) * np.linalg.norm(B3)))),
|
|
542
|
-
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B2,B3) / (np.linalg.norm(B2) * np.linalg.norm(B3)))),
|
|
551
|
+
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B2) / (np.linalg.norm(B1) * np.linalg.norm(B2)))), 15))
|
|
552
|
+
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B1,B3) / (np.linalg.norm(B1) * np.linalg.norm(B3)))), 15))
|
|
553
|
+
angle_b1b2_b1b3_b2b3.append(round(np.degrees(np.arccos(np.dot(B2,B3) / (np.linalg.norm(B2) * np.linalg.norm(B3)))), 15))
|
|
543
554
|
#----------------------------------------
|
|
544
|
-
elif (VTemp[0] == 'Volume_ZB'): vol_zb =
|
|
555
|
+
elif (VTemp[0] == 'Volume_ZB'): vol_zb = VTemp[2]
|
|
545
556
|
#----------------------------------------
|
|
546
557
|
elif (VTemp[0] == 'k-points'): loop = i+3
|
|
547
558
|
|
|
@@ -566,8 +577,8 @@ for n in range(2):
|
|
|
566
577
|
for nn in range(2): VTemp = info.readline()
|
|
567
578
|
for nn in range(1,(nk+1)):
|
|
568
579
|
VTemp = info.readline().split()
|
|
569
|
-
if (nn == int(tk_vbm)): k_vbm = [float(VTemp[1]), float(VTemp[2]), float(VTemp[3])]
|
|
570
|
-
if (nn == int(tk_cbm)): k_cbm = [float(VTemp[1]), float(VTemp[2]), float(VTemp[3])]
|
|
580
|
+
if (nn == int(tk_vbm)): k_vbm = [round(float(VTemp[1]), 15), round(float(VTemp[2]), 15), round(float(VTemp[3]), 15)]
|
|
581
|
+
if (nn == int(tk_cbm)): k_cbm = [round(float(VTemp[1]), 15), round(float(VTemp[2]), 15), round(float(VTemp[3]), 15)]
|
|
571
582
|
|
|
572
583
|
|
|
573
584
|
# =================================================================
|
|
@@ -585,10 +596,10 @@ for n in range(2):
|
|
|
585
596
|
vector_bader = []
|
|
586
597
|
VTemp = bader.readline()
|
|
587
598
|
VTemp = bader.readline().split()
|
|
588
|
-
vector_bader.append(float(VTemp[2]))
|
|
599
|
+
vector_bader.append(round(float(VTemp[2]), 15))
|
|
589
600
|
for mm in range(len(t_ions_materials[mn])):
|
|
590
601
|
VTemp = bader.readline().split()
|
|
591
|
-
vector_bader.append(float(VTemp[3]))
|
|
602
|
+
vector_bader.append(round(float(VTemp[3]), 15))
|
|
592
603
|
charge_transfer.append(vector_bader)
|
|
593
604
|
#===========
|
|
594
605
|
if (n == 1):
|
|
@@ -601,10 +612,10 @@ for n in range(2):
|
|
|
601
612
|
vector_bader = []
|
|
602
613
|
VTemp = bader.readline()
|
|
603
614
|
VTemp = bader.readline().split()
|
|
604
|
-
vector_bader.append(float(VTemp[2]))
|
|
615
|
+
vector_bader.append(round(float(VTemp[2]), 15))
|
|
605
616
|
for mm in range(len(t_ions_materials[mn])):
|
|
606
617
|
VTemp = bader.readline().split()
|
|
607
|
-
vector_bader.append(float(VTemp[3]))
|
|
618
|
+
vector_bader.append(round(float(VTemp[3]), 15))
|
|
608
619
|
charge_transfer_SO.append(vector_bader)
|
|
609
620
|
|
|
610
621
|
|
|
@@ -623,9 +634,9 @@ for n in range(2):
|
|
|
623
634
|
for i in range(loop): VTemp = info.readline()
|
|
624
635
|
for i in range(nk):
|
|
625
636
|
VTemp = info.readline().split()
|
|
626
|
-
k_points_direct.append([
|
|
627
|
-
k_points_cart.append([
|
|
628
|
-
k_path.append(
|
|
637
|
+
k_points_direct.append([VTemp[1], VTemp[2], VTemp[3]])
|
|
638
|
+
k_points_cart.append([VTemp[4], VTemp[5], VTemp[6]])
|
|
639
|
+
k_path.append(VTemp[7])
|
|
629
640
|
print(k_path)
|
|
630
641
|
#-----------
|
|
631
642
|
info.close()
|
|
@@ -669,8 +680,8 @@ for n in range(2):
|
|
|
669
680
|
V2 = np.array([A2[0], A2[1]])
|
|
670
681
|
#----------------------------
|
|
671
682
|
# Área da célula no plano XY
|
|
672
|
-
Area_cell = np.linalg.norm(np.cross(V1, V2))
|
|
673
|
-
|
|
683
|
+
Area_cell = round(np.linalg.norm(np.cross(V1, V2)), 15)
|
|
684
|
+
#------------------------------------------------------
|
|
674
685
|
|
|
675
686
|
|
|
676
687
|
#=======================================
|
|
@@ -680,8 +691,8 @@ for n in range(2):
|
|
|
680
691
|
V2 = np.array([B2[0], B2[1]])
|
|
681
692
|
#----------------------------
|
|
682
693
|
# Área da zb no plano KxKy
|
|
683
|
-
Area_ZB = np.linalg.norm(np.cross(V1, V2))
|
|
684
|
-
|
|
694
|
+
Area_ZB = round(np.linalg.norm(np.cross(V1, V2)), 15)
|
|
695
|
+
#----------------------------------------------------
|
|
685
696
|
|
|
686
697
|
|
|
687
698
|
# ===========================================
|
|
@@ -742,7 +753,9 @@ for n in range(2):
|
|
|
742
753
|
"zb_area": Area_ZB,
|
|
743
754
|
# "zb_volume": vol_zb,
|
|
744
755
|
"direct_coord_ions": coord_ions,
|
|
756
|
+
"label_ions": rotulo_ions,
|
|
745
757
|
"kpath": kpath,
|
|
758
|
+
"kpath_label": kpath_label,
|
|
746
759
|
}
|
|
747
760
|
|
|
748
761
|
|
|
@@ -766,8 +779,8 @@ for n in range(2):
|
|
|
766
779
|
"e_vacuum": e_vacuum,
|
|
767
780
|
# "work_function": work_function,
|
|
768
781
|
"total_energy": total_energy,
|
|
769
|
-
"e_per_ion": total_energy/ni,
|
|
770
|
-
"e_per_area": total_energy/Area_cell,
|
|
782
|
+
"e_per_ion": round(float(total_energy)/ni, 15),
|
|
783
|
+
"e_per_area": round(float(total_energy)/float(Area_cell), 15),
|
|
771
784
|
"e_binding": e_binding if n_materials > 1 else None,
|
|
772
785
|
"e_slide": e_slide if n_materials > 1 else None,
|
|
773
786
|
"charge_transfer": charge_transfer if n_materials > 1 else None,
|
|
@@ -794,8 +807,8 @@ for n in range(2):
|
|
|
794
807
|
"e_vacuum_SO": e_vacuum,
|
|
795
808
|
# "work_function_SO": work_function,
|
|
796
809
|
"total_energy_SO": total_energy,
|
|
797
|
-
"e_per_ion_SO": total_energy/ni,
|
|
798
|
-
"e_per_area_SO": total_energy/Area_cell,
|
|
810
|
+
"e_per_ion_SO": round(float(total_energy)/ni, 15),
|
|
811
|
+
"e_per_area_SO": round(float(total_energy)/float(Area_cell), 15),
|
|
799
812
|
"charge_transfer_SO": charge_transfer_SO if n_materials > 1 else None,
|
|
800
813
|
}
|
|
801
814
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{samba_ilum-1.0.0.472 → samba_ilum-1.0.0.473}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|