SAMBA-ilum 1.0.0.472__tar.gz → 1.0.0.474__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.474}/PKG-INFO +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/PKG-INFO +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/__main__.py +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/HeteroStructure_Generator.py +3 -5
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/data-base_json.py +93 -80
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/job.py +50 -96
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/setup.py +1 -1
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/LICENSE.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/README.md +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/SOURCES.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/dependency_links.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/entry_points.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/requires.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/SAMBA_ilum.egg-info/top_level.txt +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/__init__.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/BZ_2D.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_a-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_bader +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_bader.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_bands +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_bands.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_dos +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_dos.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_relax +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_scf +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_scf.SO +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_xy-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_xyz-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/INCAR_z-scan +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/SAMBA_HeteroStructure.input +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/SAMBA_WorkFlow.input +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.bands +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.chgcar +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.dos +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.location +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.locpot +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.orbitals +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/inputs_VASProcar/input.vasprocar.spin +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/INPUTS/vdw_kernel.bindat +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/_info_pseudo.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/a-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/a-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/bader +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/bader_poscar.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/bader_update.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/charge_transfer.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/chgsum.pl +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/contcar_update.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/data-base_union.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/energy_scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/hubbard_correction.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/kpoints.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/lattice_plot3d.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/make_files.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/output.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/potcar.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/vdW_DF.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/xy-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/xy-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/xyz-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/xyz-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/z-scan.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/samba_ilum/src/z-scan_analysis.py +0 -0
- {samba_ilum-1.0.0.472 → samba_ilum-1.0.0.474}/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
|
|
|
@@ -112,10 +112,10 @@ job.write(f' echo "$dir0/$i/$j" >> "$dir0/check_list.txt" \n')
|
|
|
112
112
|
job.write(f' #===================================================== \n')
|
|
113
113
|
job.write(f' if [[ "$j" == "xyz-scan" || "$j" == "xy-scan" ]]; then \n')
|
|
114
114
|
job.write(f' cd $dir0/$i/$j \n')
|
|
115
|
-
job.write(f' python3 contcar_update.py
|
|
115
|
+
job.write(f' python3 contcar_update.py \n')
|
|
116
116
|
job.write(f' cp POSCAR POSCAR.0 \n')
|
|
117
117
|
job.write(f' cp CONTCAR CONTCAR.0 \n')
|
|
118
|
-
job.write(" python3 ${j}.py
|
|
118
|
+
job.write(" python3 ${j}.py \n")
|
|
119
119
|
job.write(f' #--------------- \n')
|
|
120
120
|
job.write(f' folders2=() \n')
|
|
121
121
|
job.write(f' for folder in $dir0/$i/$j/*; do \n')
|
|
@@ -126,19 +126,16 @@ job.write(f' done \n')
|
|
|
126
126
|
job.write(f' #------------------------ \n')
|
|
127
127
|
job.write(f' for k in "{folders2}"; do \n')
|
|
128
128
|
job.write(f' cd $dir0/$i/$j/$k \n')
|
|
129
|
-
job.write(f'
|
|
130
|
-
job.write(f'
|
|
131
|
-
job.write(f'
|
|
132
|
-
job.write(f'
|
|
133
|
-
job.write(f' fi \n')
|
|
134
|
-
job.write(f' python3 contcar_update.py || echo "Erro no contcar_update.py em $dir0/$i/$j/$k" >> $dir0/error_log.txt \n')
|
|
135
|
-
job.write(f' python3 energy_scan.py || echo "Erro no energy_scan.py em $dir0/$i/$j/$k" >> $dir0/error_log.txt \n')
|
|
129
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
130
|
+
job.write(f' sleep 10 \n')
|
|
131
|
+
job.write(f' python3 contcar_update.py \n')
|
|
132
|
+
job.write(f' python3 energy_scan.py \n')
|
|
136
133
|
job.write(f' rm -r CHG CHGCAR DOSCAR PROCAR WAVECAR INCAR KPOINTS OSZICAR PCDAT POTCAR REPORT XDATCAR vdw_kernel.bindat EIGENVAL IBZKPT vasprun.xml *.py \n')
|
|
137
134
|
job.write(f' bzip2 OUTCAR \n')
|
|
138
135
|
job.write(f' done \n')
|
|
139
136
|
job.write(f' #------------- \n')
|
|
140
137
|
job.write(f' cd $dir0/$i/$j \n')
|
|
141
|
-
job.write(" python3 ${j}_analysis.py
|
|
138
|
+
job.write(" python3 ${j}_analysis.py \n")
|
|
142
139
|
job.write(" # rm -r 0* 1* 2* 3* 4* 5* 6* 7* 8* 9* \n")
|
|
143
140
|
job.write(f' #----------------------- \n')
|
|
144
141
|
job.write(f' for k in "{tasks2}"; do \n')
|
|
@@ -155,12 +152,12 @@ job.write(f' cp $dir0/$i/$j/POSCAR $dir0/$i/output/POSCAR \n
|
|
|
155
152
|
job.write(f' #==================================================== \n')
|
|
156
153
|
job.write(f' elif [[ "$j" == "z-scan" || "$j" == "a-scan" ]]; then \n')
|
|
157
154
|
job.write(f' cd $dir0/$i/$j \n')
|
|
158
|
-
job.write(f' python3 contcar_update.py
|
|
155
|
+
job.write(f' python3 contcar_update.py \n')
|
|
159
156
|
job.write(f' cp POSCAR POSCAR.0 \n')
|
|
160
157
|
job.write(f' cp CONTCAR CONTCAR.0 \n')
|
|
161
158
|
job.write(" for p in {1..8}; do \n")
|
|
162
159
|
job.write(f' echo "$p" > "$dir0/$i/$j/check_steps.txt" \n')
|
|
163
|
-
job.write(" python3 ${j}.py
|
|
160
|
+
job.write(" python3 ${j}.py \n")
|
|
164
161
|
job.write(f' #--------------- \n')
|
|
165
162
|
job.write(f' folders2=() \n')
|
|
166
163
|
job.write(f' for folder in $dir0/$i/$j/*; do \n')
|
|
@@ -173,13 +170,10 @@ job.write(f' for k in "{folders2}"; do \n')
|
|
|
173
170
|
job.write(" prefixo=${k:0:3} \n")
|
|
174
171
|
job.write(f' if [ "$prefixo" != "OK_" ]; then \n')
|
|
175
172
|
job.write(f' cd $dir0/$i/$j/$k \n')
|
|
176
|
-
job.write(f'
|
|
177
|
-
job.write(f'
|
|
178
|
-
job.write(f'
|
|
179
|
-
job.write(f'
|
|
180
|
-
job.write(f' fi \n')
|
|
181
|
-
job.write(f' python3 contcar_update.py || echo "Erro no contcar_update.py em $dir0/$i/$j/$k" >> $dir0/error_log.txt \n')
|
|
182
|
-
job.write(f' python3 energy_scan.py || echo "Erro no energy_scan.py em $dir0/$i/$j/$k" >> $dir0/error_log.txt \n')
|
|
173
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
174
|
+
job.write(f' sleep 10 \n')
|
|
175
|
+
job.write(f' python3 contcar_update.py \n')
|
|
176
|
+
job.write(f' python3 energy_scan.py \n')
|
|
183
177
|
job.write(f' rm -r CHG CHGCAR DOSCAR PROCAR WAVECAR INCAR KPOINTS OSZICAR PCDAT POTCAR REPORT XDATCAR vdw_kernel.bindat EIGENVAL IBZKPT vasprun.xml *.py \n')
|
|
184
178
|
job.write(f' bzip2 OUTCAR \n')
|
|
185
179
|
job.write(f' cd $dir0/$i/$j \n')
|
|
@@ -199,7 +193,7 @@ job.write(f' for k in "{folders2}"; do \n')
|
|
|
199
193
|
job.write(" new_name=${k:3} \n")
|
|
200
194
|
job.write(f' mv "$k" "$new_name" \n')
|
|
201
195
|
job.write(f' done \n')
|
|
202
|
-
job.write(" python3 ${j}_analysis.py
|
|
196
|
+
job.write(" python3 ${j}_analysis.py \n")
|
|
203
197
|
job.write(" # rm -r 0* 1* 2* 3* 4* 5* 6* 7* 8* 9* \n")
|
|
204
198
|
job.write(f' #----------------------- \n')
|
|
205
199
|
job.write(f' for k in "{tasks2}"; do \n')
|
|
@@ -220,24 +214,18 @@ job.write(f' cp CONTCAR CONTCAR.0 \n')
|
|
|
220
214
|
job.write(f' mv INCAR INCAR_relax \n')
|
|
221
215
|
job.write(f' #------------------- \n')
|
|
222
216
|
job.write(f' mv INCAR_relax_frozen INCAR \n')
|
|
223
|
-
job.write(f'
|
|
224
|
-
job.write(f'
|
|
225
|
-
job.write(f' else \n')
|
|
226
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
227
|
-
job.write(f' fi \n')
|
|
217
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
218
|
+
job.write(f' sleep 30 \n')
|
|
228
219
|
job.write(f' mv OSZICAR OSZICAR_frozen \n')
|
|
229
220
|
job.write(f' rm -r CHG CHGCAR DOSCAR PROCAR WAVECAR EIGENVAL IBZKPT vasprun.xml \n')
|
|
230
221
|
job.write(f' mv INCAR INCAR_relax_frozen \n')
|
|
231
222
|
job.write(f' mv OUTCAR OUTCAR_frozen \n')
|
|
232
223
|
job.write(f' #---------------------- \n')
|
|
233
224
|
job.write(f' mv INCAR_relax INCAR \n')
|
|
234
|
-
job.write(f'
|
|
235
|
-
job.write(f'
|
|
236
|
-
job.write(f' else \n')
|
|
237
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
238
|
-
job.write(f' fi \n')
|
|
225
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
226
|
+
job.write(f' sleep 30 \n')
|
|
239
227
|
job.write(f' rm -r CHG CHGCAR DOSCAR PROCAR WAVECAR EIGENVAL IBZKPT vasprun.xml \n')
|
|
240
|
-
job.write(f' python3 contcar_update.py
|
|
228
|
+
job.write(f' python3 contcar_update.py \n')
|
|
241
229
|
job.write(f' #------------------------ \n')
|
|
242
230
|
job.write(f' for k in "{tasks2}"; do \n')
|
|
243
231
|
job.write(f' #-------------------------------------------------- \n')
|
|
@@ -254,22 +242,16 @@ job.write(f' cp $dir0/$i/$j/CONTCAR $dir0/$i/output/POSCAR
|
|
|
254
242
|
job.write(f' #================================= \n')
|
|
255
243
|
job.write(f' elif [ "$string1" == "scf" ]; then \n')
|
|
256
244
|
job.write(f' if [ "$string2" != "SO" ]; then \n')
|
|
257
|
-
job.write(f'
|
|
258
|
-
job.write(f'
|
|
259
|
-
job.write(f' else \n')
|
|
260
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
261
|
-
job.write(f' fi \n')
|
|
245
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
246
|
+
job.write(f' sleep 30 \n')
|
|
262
247
|
job.write(f' for k in "{tasks2}"; do \n')
|
|
263
248
|
job.write(f' if [[ "$k" == "bands" || "$k" == "dos" ]]; then \n')
|
|
264
249
|
job.write(f' cp $dir0/$i/$j/CHGCAR $dir0/$i/$k/CHGCAR \n')
|
|
265
250
|
job.write(f' fi \n')
|
|
266
251
|
job.write(f' done \n')
|
|
267
252
|
job.write(f' elif [ "$string2" == "SO" ]; then \n')
|
|
268
|
-
job.write(f'
|
|
269
|
-
job.write(f'
|
|
270
|
-
job.write(f' else \n')
|
|
271
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
272
|
-
job.write(f' fi \n')
|
|
253
|
+
job.write(f' $vasp_ncl || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
254
|
+
job.write(f' sleep 30 \n')
|
|
273
255
|
job.write(f' for k in "{tasks2}"; do \n')
|
|
274
256
|
job.write(f' if [[ "$k" == "bands.SO" || "$k" == "dos.SO" ]]; then \n')
|
|
275
257
|
job.write(f' cp $dir0/$i/$j/CHGCAR $dir0/$i/$k/CHGCAR \n')
|
|
@@ -277,15 +259,13 @@ job.write(f' fi \n')
|
|
|
277
259
|
job.write(f' done \n')
|
|
278
260
|
job.write(f' fi \n')
|
|
279
261
|
job.write(f' #------------------- \n')
|
|
280
|
-
job.write(f'
|
|
281
|
-
job.write(f' python3 -m vasprocar || echo "Erro no VASPROCAR em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
282
|
-
job.write(f' fi \n')
|
|
262
|
+
job.write(f' python3 -m vasprocar \n')
|
|
283
263
|
job.write(f' #------------------- \n')
|
|
284
264
|
job.write(f' # rm -r CHG DOSCAR WAVECAR EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
285
265
|
job.write(f' # bzip2 CHGCAR OUTCAR PROCAR LOCPOT \n')
|
|
286
266
|
job.write(f' rm -r CHG DOSCAR WAVECAR \n')
|
|
287
267
|
job.write(f' bzip2 CHGCAR OUTCAR PROCAR LOCPOT EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
288
|
-
job.write(f' python3 contcar_update.py
|
|
268
|
+
job.write(f' python3 contcar_update.py \n')
|
|
289
269
|
job.write(f' #----------------------------------------------- \n')
|
|
290
270
|
job.write(f' cp $dir0/$i/$j/CONTCAR $dir0/$i/output/CONTCAR \n')
|
|
291
271
|
job.write(f' cp $dir0/$i/$j/POSCAR $dir0/$i/output/POSCAR \n')
|
|
@@ -316,22 +296,16 @@ job.write(f' mv KPOINTS.$string4 KPOINTS \n')
|
|
|
316
296
|
job.write(f' fi \n')
|
|
317
297
|
job.write(f' #------------------------------ \n')
|
|
318
298
|
job.write(f' if [ "$string2" != "SO" ]; then \n')
|
|
319
|
-
job.write(f'
|
|
320
|
-
job.write(f'
|
|
321
|
-
job.write(f' else \n')
|
|
322
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
323
|
-
job.write(f' fi \n')
|
|
299
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
300
|
+
job.write(f' sleep 30 \n')
|
|
324
301
|
job.write(f' elif [ "$string2" == "SO" ]; then \n')
|
|
325
|
-
job.write(f'
|
|
326
|
-
job.write(f'
|
|
327
|
-
job.write(f' else \n')
|
|
328
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
329
|
-
job.write(f' fi \n')
|
|
302
|
+
job.write(f' $vasp_ncl || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
303
|
+
job.write(f' sleep 30 \n')
|
|
330
304
|
job.write(f' fi \n')
|
|
331
305
|
job.write(f' #----------------------------------- \n')
|
|
332
306
|
job.write(f' # rm -r CHG DOSCAR WAVECAR EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
333
307
|
job.write(f' rm -r CHG DOSCAR WAVECAR \n')
|
|
334
|
-
job.write(f' python3 contcar_update.py
|
|
308
|
+
job.write(f' python3 contcar_update.py \n')
|
|
335
309
|
job.write(f' #----------------------------------- \n')
|
|
336
310
|
job.write(f' if [ "$string4" != "KPOINTS" ]; then \n')
|
|
337
311
|
job.write(f' cp OUTCAR OUTCAR.$string4 \n')
|
|
@@ -341,9 +315,7 @@ job.write(f' fi \n')
|
|
|
341
315
|
job.write(f' fi \n')
|
|
342
316
|
job.write(f' done \n')
|
|
343
317
|
job.write(f' #------------------- \n')
|
|
344
|
-
job.write(f'
|
|
345
|
-
job.write(f' python3 -m vasprocar || echo "Erro no VASPROCAR em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
346
|
-
job.write(f' fi \n')
|
|
318
|
+
job.write(f' python3 -m vasprocar \n')
|
|
347
319
|
job.write(f' #------------------- \n')
|
|
348
320
|
job.write(f' # bzip2 CHGCAR OUTCAR* PROCAR* LOCPOT \n')
|
|
349
321
|
job.write(f' bzip2 CHGCAR OUTCAR* PROCAR* LOCPOT EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
@@ -359,31 +331,23 @@ job.write(f' fi \n')
|
|
|
359
331
|
job.write(f' #================================= \n')
|
|
360
332
|
job.write(f' elif [ "$string1" == "dos" ]; then \n')
|
|
361
333
|
job.write(f' if [ "$string2" != "SO" ]; then \n')
|
|
362
|
-
job.write(f'
|
|
363
|
-
job.write(f'
|
|
364
|
-
job.write(f' else \n')
|
|
365
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
366
|
-
job.write(f' fi \n')
|
|
334
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
335
|
+
job.write(f' sleep 30 \n')
|
|
367
336
|
job.write(f' elif [ "$string2" == "SO" ]; then \n')
|
|
368
|
-
job.write(f'
|
|
369
|
-
job.write(f'
|
|
370
|
-
job.write(f' else \n')
|
|
371
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j >> "$dir0/error_log.txt" \n')
|
|
372
|
-
job.write(f' fi \n')
|
|
373
|
-
job.write(f' fi \n')
|
|
374
|
-
job.write(f' if [[ -f CONTCAR && -f OUTCAR && -f PROCAR && -f KPOINTS && -f DOSCAR ]]; then \n')
|
|
375
|
-
job.write(f' python3 -m vasprocar || echo "Erro no VASPROCAR em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
337
|
+
job.write(f' $vasp_ncl || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
338
|
+
job.write(f' sleep 30 \n')
|
|
376
339
|
job.write(f' fi \n')
|
|
340
|
+
job.write(f' python3 -m vasprocar \n')
|
|
377
341
|
job.write(f' # rm -r CHG WAVECAR EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
378
342
|
job.write(f' # bzip2 CHGCAR OUTCAR DOSCAR PROCAR \n')
|
|
379
343
|
job.write(f' rm -r CHG WAVECAR \n')
|
|
380
344
|
job.write(f' bzip2 CHGCAR OUTCAR DOSCAR PROCAR EIGENVAL IBZKPT OSZICAR PCDAT XDATCAR vasprun.xml \n')
|
|
381
|
-
job.write(f' python3 contcar_update.py
|
|
345
|
+
job.write(f' python3 contcar_update.py \n')
|
|
382
346
|
job.write(f' cp $dir0/$i/$j/CONTCAR $dir0/$i/output/CONTCAR \n')
|
|
383
347
|
job.write(f' cp $dir0/$i/$j/POSCAR $dir0/$i/output/POSCAR \n')
|
|
384
348
|
job.write(f' #=================================== \n')
|
|
385
349
|
job.write(f' elif [ "$string1" == "bader" ]; then \n')
|
|
386
|
-
job.write(f' python3 bader_update.py
|
|
350
|
+
job.write(f' python3 bader_update.py \n')
|
|
387
351
|
job.write(f' #---------------------- \n')
|
|
388
352
|
job.write(f' folders2=() \n')
|
|
389
353
|
job.write(f' for folder in $dir0/$i/$j/*; do \n')
|
|
@@ -396,21 +360,13 @@ job.write(f' for k in "{folders2}"; do \n')
|
|
|
396
360
|
job.write(f' if [ "$k" != "Charge_transfer" ]; then \n')
|
|
397
361
|
job.write(f' cd $dir0/$i/$j/$k \n')
|
|
398
362
|
job.write(f' if [ "$string2" != "SO" ]; then \n')
|
|
399
|
-
job.write(f'
|
|
400
|
-
job.write(f'
|
|
401
|
-
job.write(f' else \n')
|
|
402
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j/$k >> "$dir0/error_log.txt" \n')
|
|
403
|
-
job.write(f' fi \n')
|
|
363
|
+
job.write(f' $vasp_std || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
364
|
+
job.write(f' sleep 30 \n')
|
|
404
365
|
job.write(f' elif [ "$string2" == "SO" ]; then \n')
|
|
405
|
-
job.write(f'
|
|
406
|
-
job.write(f'
|
|
407
|
-
job.write(f' else \n')
|
|
408
|
-
job.write(f' echo "Arquivos necessários ausentes em $dir0/$i/$j/$k >> "$dir0/error_log.txt" \n')
|
|
409
|
-
job.write(f' fi \n')
|
|
410
|
-
job.write(f' fi \n')
|
|
411
|
-
job.write(f' if [[ -f CONTCAR && -f OUTCAR && -f PROCAR && -f KPOINTS && -f LOCPOT ]]; then \n')
|
|
412
|
-
job.write(f' python3 -m vasprocar || echo "Erro no VASPROCAR em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
366
|
+
job.write(f' $vasp_ncl || echo "Erro no VASP em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
367
|
+
job.write(f' sleep 30 \n')
|
|
413
368
|
job.write(f' fi \n')
|
|
369
|
+
job.write(f' python3 -m vasprocar \n')
|
|
414
370
|
job.write(f' #------------------- \n')
|
|
415
371
|
job.write(f' cp -r $dir0/$i/$j/$k/output/Potencial $dir0/$i/$j/Charge_transfer/Potencial_$k \n')
|
|
416
372
|
job.write(f' rm -r output \n')
|
|
@@ -430,12 +386,10 @@ job.write(f' fi \n')
|
|
|
430
386
|
job.write(f' done \n')
|
|
431
387
|
job.write(f' #------------- \n')
|
|
432
388
|
job.write(f' cd $dir0/$i/$j \n')
|
|
433
|
-
job.write(f' python3 charge_transfer.py
|
|
389
|
+
job.write(f' python3 charge_transfer.py \n')
|
|
434
390
|
job.write(f' #----------------------------- \n')
|
|
435
391
|
job.write(f' cd $dir0/$i/$j/Charge_transfer \n')
|
|
436
|
-
job.write(f'
|
|
437
|
-
job.write(f' python3 -m vasprocar || echo "Erro no VASPROCAR em $dir0/$i/$j" >> $dir0/error_log.txt \n')
|
|
438
|
-
job.write(f' fi \n')
|
|
392
|
+
job.write(f' python3 -m vasprocar \n')
|
|
439
393
|
job.write(f' cp -r $dir0/$i/$j/Charge_transfer/output/Charge $dir0/$i/$j/Charge_transfer/Charge_transfer_plot2D \n')
|
|
440
394
|
job.write(f' mv CHGCAR_Charge_Transfer.vasp CHGCAR_Charge_Transfer \n')
|
|
441
395
|
job.write(f' # rm -r output CHGCAR_H* CHGCAR_m* \n')
|
|
@@ -452,12 +406,12 @@ job.write(f' fi \n')
|
|
|
452
406
|
job.write(f' fi \n')
|
|
453
407
|
job.write(f' done \n')
|
|
454
408
|
job.write(f' cd $dir0/$i \n')
|
|
455
|
-
job.write(f' python3 output.py
|
|
456
|
-
job.write(f' python3 BZ_2D.py
|
|
457
|
-
job.write(f' python3 lattice_plot3d.py
|
|
409
|
+
job.write(f' python3 output.py \n')
|
|
410
|
+
job.write(f' python3 BZ_2D.py \n')
|
|
411
|
+
job.write(f' python3 lattice_plot3d.py \n')
|
|
458
412
|
job.write(f' #------------------------ \n')
|
|
459
413
|
job.write(f' cp -r $dir0/$i/output/POSCAR $dir0/$i/output/POSCAR.info \n')
|
|
460
|
-
job.write(f' python3 data-base_json.py
|
|
414
|
+
job.write(f' python3 data-base_json.py \n')
|
|
461
415
|
job.write(f' #------------------------ \n')
|
|
462
416
|
job.write(f' if [ -d "$dir0/completed" ]; then \n')
|
|
463
417
|
job.write(f' mv $dir0/$i $dir0/completed/$i \n')
|
|
@@ -465,7 +419,7 @@ job.write(f' fi \n')
|
|
|
465
419
|
job.write(f' #------------------------ \n')
|
|
466
420
|
job.write(f' done \n')
|
|
467
421
|
job.write(f' fi \n')
|
|
468
|
-
job.write(f' sleep
|
|
422
|
+
job.write(f' sleep 10 \n')
|
|
469
423
|
job.write(f'done \n')
|
|
470
424
|
#====================
|
|
471
425
|
job.close()
|
|
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.474}/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
|