def from_dict(d): """ Args: A dict with all data for a band structure symm line object. Returns: A BandStructureSymmLine object """ labels_dict = d['labels_dict'] projections = {} structure = None if 'projections' in d and len(d['projections']) != 0: structure = Structure.from_dict(d['structure']) projections = { Spin.from_int(int(spin)): [ [{Orbital.from_string(orb): [ d['projections'][spin][i][j][orb][k] for k in range(len(d['projections'][spin][i][j][orb]))] for orb in d['projections'][spin][i][j]} for j in range(len(d['projections'][spin][i]))] for i in range(len(d['projections'][spin]))] for spin in d['projections']} return BandStructureSymmLine( d['kpoints'], {Spin.from_int(int(k)): d['bands'][k] for k in d['bands']}, Lattice(d['lattice_rec']['matrix']), d['efermi'], labels_dict, structure=structure, projections=projections)
def from_dict(cls, d): """ Args: A dict with all data for a band structure symm line object. Returns: A BandStructureSymmLine object """ labels_dict = d['labels_dict'] projections = {} structure = None if 'projections' in d and len(d['projections']) != 0: structure = Structure.from_dict(d['structure']) projections = { Spin.from_int(int(spin)): [[{ Orbital.from_string(orb): [ d['projections'][spin][i][j][orb][k] for k in range(len(d['projections'][spin][i][j][orb])) ] for orb in d['projections'][spin][i][j] } for j in range(len(d['projections'][spin][i]))] for i in range(len(d['projections'][spin]))] for spin in d['projections'] } return BandStructureSymmLine( d['kpoints'], {Spin.from_int(int(k)): d['bands'][k] for k in d['bands']}, Lattice(d['lattice_rec']['matrix']), d['efermi'], labels_dict, structure=structure, projections=projections)
def from_dict(cls, d): """ Args: A dict with all data for a band structure symm line object. Returns: A BandStructureSymmLine object """ # Strip the label to recover initial string (see trick used in as_dict to handle $ chars) labels_dict = {k.strip(): v for k, v in d['labels_dict'].items()} projections = {} structure = None if 'projections' in d and len(d['projections']) != 0: structure = Structure.from_dict(d['structure']) projections = { Spin.from_int(int(spin)): [ [{Orbital.from_string(orb): [ d['projections'][spin][i][j][orb][k] for k in range(len(d['projections'][spin][i][j][orb]))] for orb in d['projections'][spin][i][j]} for j in range(len(d['projections'][spin][i]))] for i in range(len(d['projections'][spin]))] for spin in d['projections']} return BandStructureSymmLine( d['kpoints'], {Spin.from_int(int(k)): d['bands'][k] for k in d['bands']}, Lattice(d['lattice_rec']['matrix']), d['efermi'], labels_dict, structure=structure, projections=projections)
def get_complete_dos(self, structure): """ Gives a CompleteDos object with the DOS from the interpolated projected band structure Args: the structure (necessary to identify sites for projection) Returns: a CompleteDos object """ pdoss = {} for s in self._dos_partial: if structure.sites[int(s)] not in pdoss: pdoss[structure.sites[int(s)]] = {} for o in self._dos_partial[s]: if Orbital.from_string(o) not in pdoss[structure.sites[int(s)]]: pdoss[structure.sites[int(s)]][Orbital.from_string(o)] = {} pdoss[structure.sites[int(s)]][Orbital.from_string(o)][Spin.up] = self._dos_partial[s][o] return CompleteDos(structure, total_dos=self.dos, pdoss=pdoss)
def get_complete_dos(self, structure): """ Gives a CompleteDos object with the DOS from the interpolated projected band structure Args: the structure (necessary to identify sites for projection) Returns: a CompleteDos object """ pdoss = {} for s in self._dos_partial: if structure.sites[int(s)] not in pdoss: pdoss[structure.sites[int(s)]] = {} for o in self._dos_partial[s]: if Orbital.from_string(o) not in pdoss[structure.sites[int(s)]]: pdoss[structure.sites[int(s)]][Orbital.from_string(o)] = {} pdoss[structure.sites[int(s)]][Orbital.from_string(o)][Spin.up] = self._dos_partial[s][o] return CompleteDos(structure, total_dos=self.dos, pdoss=pdoss)
def from_dict(d): """ Returns PDos object from dict representation. """ return PDos( d["efermi"], d["energies"], {Spin.from_int(int(k)): v for k, v in d["densities"].items()}, Orbital.from_string(d["orbital"]), )
def from_dict(cls, d): """ Returns CompleteDos object from dict representation. """ tdos = Dos.from_dict(d) struct = Structure.from_dict(d["structure"]) pdoss = {} for i in range(len(d["pdos"])): at = struct[i] orb_dos = {} for orb_str, odos in d["pdos"][i].items(): orb = Orbital.from_string(orb_str) orb_dos[orb] = {Spin.from_int(int(k)): v for k, v in odos["densities"].items()} pdoss[at] = orb_dos return CompleteDos(struct, tdos, pdoss)
def from_dict(cls, d): """ Returns CompleteDos object from dict representation. """ tdos = Dos.from_dict(d) struct = Structure.from_dict(d["structure"]) pdoss = {} for i in range(len(d["pdos"])): at = struct[i] orb_dos = {} for orb_str, odos in d["pdos"][i].items(): orb = Orbital.from_string(orb_str) orb_dos[orb] = {Spin.from_int(int(k)): v for k, v in odos["densities"].items()} pdoss[at] = orb_dos return CompleteDos(struct, tdos, pdoss)
def from_dict(cls, d): """ Args: A dict with all data for a band structure symm line object. Returns: A BandStructureSymmLine object """ labels_dict = d["labels_dict"] projections = {} structure = None if "projections" in d and len(d["projections"]) != 0: structure = Structure.from_dict(d["structure"]) projections = { Spin.from_int(int(spin)): [ [ { Orbital.from_string(orb): [ d["projections"][spin][i][j][orb][k] for k in range(len(d["projections"][spin][i][j][orb])) ] for orb in d["projections"][spin][i][j] } for j in range(len(d["projections"][spin][i])) ] for i in range(len(d["projections"][spin])) ] for spin in d["projections"] } return BandStructureSymmLine( d["kpoints"], {Spin.from_int(int(k)): d["bands"][k] for k in d["bands"]}, Lattice(d["lattice_rec"]["matrix"]), d["efermi"], labels_dict, structure=structure, projections=projections, )
def from_dict(cls, d): """ Args: A dict with all data for a band structure symm line object. Returns: A BandStructureSymmLine object """ # Strip the label to recover initial string (see trick used in as_dict to handle $ chars) labels_dict = {k.strip(): v for k, v in d['labels_dict'].items()} projections = {} structure = None if 'projections' in d and len(d['projections']) != 0: structure = Structure.from_dict(d['structure']) projections = { Spin.from_int(int(spin)): [[{ Orbital.from_string(orb): [ d['projections'][spin][i][j][orb][k] for k in range(len(d['projections'][spin][i][j][orb])) ] for orb in d['projections'][spin][i][j] } for j in range(len(d['projections'][spin][i]))] for i in range(len(d['projections'][spin]))] for spin in d['projections'] } return BandStructureSymmLine( d['kpoints'], {Spin.from_int(int(k)): d['bands'][k] for k in d['bands']}, Lattice(d['lattice_rec']['matrix']), d['efermi'], labels_dict, structure=structure, projections=projections)