Skip to content

Commit

Permalink
Parse outcar.
Browse files Browse the repository at this point in the history
  • Loading branch information
knc6 committed May 4, 2024
1 parent f652a3f commit 320805e
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 13 deletions.
62 changes: 55 additions & 7 deletions jarvis/io/vasp/outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,61 @@ def efermi(self):
efermi.append(float(i.split()[2]))
return efermi[-1]

def all_structures(self, elements=[]):
"""Get all structure snapshots."""
if not elements:
atoms = Atoms.from_poscar(
self.filename.replace("OUTCAR", "POSCAR")
).elements
nions = self.nions
atoms_array = []
energy_array = []
force_array = []
stress_array = []
for ii, i in enumerate(self.data):
if "in kB" in i:
stress = [
float(j) for j in self.data[ii].split("in kB")[1].split()
]
stress_array.append(stress)
if "VOLUME and BASIS-vectors are now :" in i:
tmp1 = [float(j) for j in self.data[ii + 5].split()]
tmp2 = [float(j) for j in self.data[ii + 6].split()]
tmp3 = [float(j) for j in self.data[ii + 7].split()]
lat_mat = [
[tmp1[0], tmp1[1], tmp1[2]],
[tmp2[0], tmp2[1], tmp2[2]],
[tmp3[0], tmp3[1], tmp3[2]],
]
if " free energy TOTEN =" in i:
energy = (
self.data[ii]
.split(" free energy TOTEN =")[1]
.split("eV")[0]
)
energy_array.append(energy)

if (
" POSITION TOTAL-FORCE (eV/Angst)"
in i
):
coords = []
forces = []
for j in range(nions):
tmp = [float(k) for k in self.data[ii + 2 + j].split()]
coords.append([tmp[0], tmp[1], tmp[2]])
forces.append([tmp[3], tmp[4], tmp[5]])
# print(tmp)
atoms = Atoms(
lattice_mat=lat_mat,
coords=coords,
elements=elements,
cartesian=True,
)

atoms_array.append(atoms)
return atoms_array, energy_array, force_array, stress_array

@property
def all_band_energies(self):
"""Get all band energies."""
Expand Down Expand Up @@ -2377,10 +2432,3 @@ def parse_raman_dat(
info["indices"] = indices
info["intensity"] = intensity
return info


"""
kp='/users/knc6/Software/Devs/jarvis/jarvis/examples/vasp/SiOptb88/MAIN-RELAX-bulk@mp_149/KPOINT'
kpt=Kpoints(filename=kp)
print (kpt)
"""
13 changes: 7 additions & 6 deletions jarvis/tests/testfiles/io/vasp/test_outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@
"OUTCAR",
)
)
#TODO:
# TODO:
# wder = Waveder(
# os.path.join(
# os.path.dirname(__file__),
Expand Down Expand Up @@ -266,16 +266,16 @@ def test_locpot():
(2, 56, 56, 56),
)
vac = loc.vac_potential()[0]
#assert round(vac, 2) == round(7.62302803577618, 2)
# assert round(vac, 2) == round(7.62302803577618, 2)

#td = loc.to_dict()
#fd = Locpot.from_dict(td)
# td = loc.to_dict()
# fd = Locpot.from_dict(td)

vac = loc.vac_potential(direction="Y")[0]
#assert round(vac, 2) == round(7.62302803577618, 2)
# assert round(vac, 2) == round(7.62302803577618, 2)

vac = loc.vac_potential(direction="Z")[0]
#assert round(vac, 2) == round(7.62302803577618, 2)
# assert round(vac, 2) == round(7.62302803577618, 2)


def test_vrun():
Expand Down Expand Up @@ -329,6 +329,7 @@ def test_out():
out_efg = Outcar(
os.path.join(os.path.dirname(__file__), "OUTCAR.EFG-JVASP-12148")
)
print(out_efg.all_structures())
rl, imag = opt_out.freq_dielectric_tensor()
nedos = opt_out.nedos
out_efg_raw = Outcar(
Expand Down

0 comments on commit 320805e

Please sign in to comment.