def test_inputs(): p = Poscar.from_file(pos) print(p) td = p.to_dict() print("td is:", td) fd = Poscar.from_dict(td) new_file, filename = tempfile.mkstemp() p.write_file(filename) i = Incar.from_file(inc) i.update({"ENCUT": 1000}) assert (round(p.atoms.density, 2), i.to_dict()["ISIF"]) == (2.25, "3") f = open(pos, "r") lines = f.read() f.close() p = Poscar.from_string(lines) assert (round(p.atoms.density, 2), i.to_dict()["ISIF"]) == (2.25, "3") d = i.to_dict() ii = Incar.from_dict(d) pot = os.path.join( os.path.dirname(__file__), "POT_GGA_PAW_PBE", "Xe", "POTCAR", ) potc = IndividualPotcarData.from_file(pot) print(potc) os.environ["JARVIS_VASP_PSP_DIR"] = os.path.join(os.path.dirname(__file__)) new_file, filename = tempfile.mkstemp() pot = Potcar(elements=["Xe"]) td = pot.to_dict() fd = Potcar.from_dict(td) print(pot) pot.write_file(filename)
def read_file(self): """Read CHGCAR.""" f = open(self.filename, "r") lines = f.read() f.close() self.atoms = Poscar.from_string(lines).atoms volume = self.atoms.volume text = lines.splitlines() ng_line = text[self.atoms.num_atoms + 9] ng = [int(j) for j in ng_line.split()] self.dim = np.array(ng) found = self.atoms.num_atoms + 8 nsets = 0 for i in text: if "augmentation occupancies 1 " in i: nsets = nsets + 1 self.nsets = nsets if self.is_spin_orbit(): ValueError("Not implemeted for spin-orbit calculations yet") # print ('nsets=',nsets) start = found + 2 ngs = int(ng[0] * ng[1] * ng[2]) if ngs % 5 == 0: nlines = int(ngs / 5.0) else: nlines = int(ngs / 5.0) + 1 end = nlines + start # +1 for ii, i in enumerate(text): if text[ii] == ng_line: start = ii + 1 end = start + nlines chg = self.chg_set(text, start, end, volume, ng) self.chg.append(chg) self.chg = np.array(self.chg)