atoms = ase.io.read("./primCIFs/Cd.cif") #atoms = bulk(element,struct,a=La,b=Lb,c=Lc,alpha=Lalpha) # sc,fcc,bcc,tetragonal,bct,hcp,rhmbohedral,orthorhombic # mlc, diamond,zincblende,rocksalt,cesiumchloride, fluorite, wurtzite atoms.set_calculator(calc) atoms.get_potential_energy() # Get the valence band maximum efermi = calc.get_fermi_level() Nk = len(calc.get_ibz_k_points()) Ns = calc.get_number_of_spins() eigval = np.array([[calc.get_eigenvalues(kpt=k, spin=s) for k in range(Nk)] for s in range(Ns)]) evbm = np.max(eigval[eigval < efermi]) # Next, a band structure calculation calc.set(nbands=nbnd, # 4 occupied and 4 unoccupied bands fixdensity=True, eigensolver=CG(niter=5), symmetry='off', kpts={'path': spath, 'npoints': 50}, convergence={'bands': 'all'}, ) calc.get_potential_energy() bs_gpaw = calc.band_structure() #bs_gpaw.reference = evbm bs_gpaw_reference = evbm bs_gpaw.plot(filename='bs_gpaw_data.png', show=False, emax=evbm + 5., emin=evbm - 15.) write_json('bs_gpaw.json', bs_gpaw)
tprnfor=True, # kwargs added to parameters input_data=input_data) atoms.calc = calc atoms.get_potential_energy() # Get the valence band maximum efermi = calc.get_fermi_level() Nk = len(calc.get_ibz_k_points()) Ns = calc.get_number_of_spins() eigval = np.array([[calc.get_eigenvalues(kpt=k, spin=s) for k in range(Nk)] for s in range(Ns)]) evbm = np.max(eigval[eigval < efermi]) # Next, a band structure calculation input_data['control'].update({ 'calculation': 'bands', 'restart_mode': 'restart', 'verbosity': 'high' }) calc.set(kpts={'path': spath, 'npoints': 50}, input_data=input_data) calc.calculate(atoms) bs_qe = calc.band_structure() bs_qe.reference = evbm bs_qe.plot(filename='bs_qe_data.png', show=False, emax=evbm + 5., emin=evbm - 15.) write_json('bs_qe.json', bs_qe)
def write(self, filename): """Write local density of states to JSON file.""" write_json(filename, (self.ldos, self.bias, self.cell))
def dump(self, data): if world.rank == 0 and self.restart is not None: with open(self.restart, 'w') as fd: write_json(fd, data)
from datetime import datetime import numpy as np import io from ase.io.jsonio import encode, decode, read_json, write_json assert decode(encode(np.int64(42))) == 42 c = np.array([0.1j]) assert (decode(encode(c)) == c).all() fd = io.StringIO() obj1 = {'hello': 'world'} write_json(fd, obj1) fd.seek(0) obj2 = read_json(fd) print(obj1) print(obj2) for obj in [0.5 + 1.5j, datetime.now()]: s = encode(obj) o = decode(s) print(obj) print(s) print(obj) assert obj == o, (obj, o, s)
def write_file(): f_ = open("tmp.traj","a") f_.write("{}".format(spositions)) return 0 if __name__ == '__main__': #write_file() jsonio.write_json("tmp.traj",positions) sys.exit()