def _get_atomdata(self, atomconfig, atomcalcs): atomdata = sc.ClassDict() atomdata.potentials = atomcalcs.dens_result.get_potential() atomdata.density = atomcalcs.dens_result.get_density() atomdata.wavefuncs = self._get_standardized_compressed_wfcs( atomconfig, atomcalcs.wave_result) return atomdata
def _store_atomdata(self, workdir, atomdata, iatom): atomfiles = sc.ClassDict() atomfiles.wavefuncs = self._store_wavefuncs(workdir, atomdata.wavefuncs, iatom) atomfiles.potential = self._store_potentials(workdir, atomdata.potentials, iatom) atomfiles.density = self._store_density(workdir, atomdata.density, iatom) return atomfiles
def _collect_free_atom_result(self, output): result = sc.ClassDict() result.etot = output.get_energy() eigvals0 = [] occs0 = [] for nn, ll in self._atomconfig.valenceshells: eigval = ( output.get_eigenvalue(0, nn, ll), output.get_eigenvalue(1, nn, ll) ) eigvals0.append(eigval) occ = ( output.get_occupation(0, nn, ll), output.get_occupation(1, nn, ll) ) occs0.append(occ) homo0 = output.get_homo_or_lowest_nl(0) homo1 = output.get_homo_or_lowest_nl(1) result.valence_eigvals = np.array(eigvals0, dtype=float) result.valence_occs = np.array(occs0, dtype=float) result.h**o = ( homo0, homo1 ) result.homo_eigval = ( output.get_eigenvalue(0, homo0[0], homo0[1]), output.get_eigenvalue(1, homo1[0], homo1[1]) ) return result
def register_onecenter_calculator(): """Returns data for calculator registration""" calc = sc.ClassDict() calc.settings = SlaterAtomSettings calc.calculator = SlaterAtom return calc