Source code for httk.atomistic.atomisticio.wavefunction_io
import os
from httk.core import IoAdapterFilename
[docs]
def load_wavefunc(ioa, ext=None, filename=None):
"""
Load wavefunction data from a file into a wavefunction object
"""
ioa = IoAdapterFilename.use(ioa)
if ext is None:
try:
if filename is None:
filename = ioa.filename
except Exception:
raise Exception("httk.httkio.load: original filename not known. Cannot open a generic file.")
splitfilename = os.path.splitext(os.path.basename(filename))
ext = splitfilename[1].lower()
if (ext == '.bz2' or ext == '.gz'):
splitfilename = os.path.splitext(splitfilename[0])
ext = splitfilename[1]
if ext == '':
ext = splitfilename[0]
if "wavecar" in splitfilename[0].lower():
ext = '.vasp'
if ext == '.vasp':
import httk.iface.vasp_if
return httk.iface.vasp_if.read_wavecar(ioa)
else:
raise Exception("httk.httkio.load: I do not know what to do with the file:" + filename)
[docs]
def save_wavefunc(planewave_obj, ioa, ext=None, **kwargs):
"""
Saves wavefunction data a wavefunction object into a file, with options for format conversion
"""
ioa = IoAdapterFilename.use(ioa)
if ext is None:
try:
filename = ioa.filename
except Exception:
raise Exception("httk.atomistic.atomisticio.wavefunction_io.save: original filename not known. Cannot open a generic file.")
splitfilename = os.path.splitext(os.path.basename(filename))
ext = splitfilename[1]
if (ext == '.bz2' or ext == '.gz'):
splitfilename = os.path.splitext(splitfilename[0])
ext = splitfilename[1]
if ext == '':
ext = splitfilename[0]
if "WAVECAR" in filename.upper():
ext = ".vasp"
if ext == '.vasp':
import httk.iface.vasp_if
httk.iface.vasp_if.write_wavecar(ioa, planewave_obj, **kwargs)
else:
raise Exception("httk.atomistic.atomisticio.wavefunction_io.save: I do not know what to do with the file:" + filename)