#!/usr/bin/env python # Zhu Li import yaml try: from yaml import CLoader as Loader except: from yaml import Loader string = open('band.yaml').read() data = yaml.load(string, Loader=Loader) npts_ok = False try: finphon = open('INPHON') try: for line in finphon: if 'NPOINTS' in line: npts = int(line.split('=')[1]) npts_ok = True finally: finphon.close() except: npts = int(raw_input('NPOINTS(in INPHON)= ?\n')) npts_ok = True if npts_ok == False: npts = int(raw_input('NPOINTS(in INPHON)= ?\n')) bdat = open('band.dat', 'w') qdat = open('qpoint.dat', 'w') count = 0 for v in data['phonon']: print >>bdat, v['distance'], for fq in v['band']: print >>bdat, fq['frequency'], print >>bdat if count == 0: print >>qdat, '%5.4f' % v['distance'], print >>qdat, "[%5.2f %5.2f %5.2f]" % tuple(v['q-position']) if (count + 1) % npts == 0: print >>qdat, '%5.4f' % v['distance'], print >>qdat, "[%5.2f %5.2f %5.2f]" % tuple(v['q-position']) count += 1 bdat.close() qdat.close()