def from_files(struct="CONTCAR", wavecar="WAVECAR", cr="POTCAR", vr="vasprun.xml", setup_projectors=False): """ Construct a Wavefunction object from file paths. Arguments: struct (str): VASP POSCAR or CONTCAR file path wavecar (str): VASP WAVECAR file path cr (str): VASP POTCAR file path vr (str): VASP vasprun file path outcar (str): VASP OUTCAR file path setup_projectors (bool, False): Whether to set up the core region components of the wavefunctions. Pawpyseed will set up the projectors automatically when they are first needed, so this generally can be left as False. Returns: Wavefunction object """ vr = Vasprun(vr) dim = np.array( [vr.parameters["NGX"], vr.parameters["NGY"], vr.parameters["NGZ"]]) symprec = vr.parameters["SYMPREC"] pwf = pawpyc.PWFPointer(wavecar, vr) return Wavefunction( Poscar.from_file(struct).structure, pwf, CoreRegion(Potcar.from_file(cr)), dim, symprec, setup_projectors)
def get_wavefunction(potcar="POTCAR", wavecar="WAVECAR", vasprun="vasprun.xml", directory=None): from pawpyseed.core import pawpyc from pawpyseed.core.wavefunction import CoreRegion, Wavefunction if directory: wf = Wavefunction.from_directory(path=directory) else: if isinstance(vasprun, str): vasprun = Vasprun(vasprun) if isinstance(potcar, str): potcar = Potcar.from_file(potcar) ngx = vasprun.parameters["NGX"] ngy = vasprun.parameters["NGY"] ngz = vasprun.parameters["NGZ"] dim = np.array([ngx, ngy, ngz]) symprec = vasprun.parameters["SYMPREC"] structure = vasprun.final_structure pwf = pawpyc.PWFPointer(wavecar, vasprun) core_region = CoreRegion(potcar) wf = Wavefunction(structure, pwf, core_region, dim, symprec, False) wf = wf.desymmetrized_copy(time_reversal_symmetry=False, symprec=1e-4) return wf