code: def get_band_structure_dict(self):
          
  
          if self._band_structure is None:
              msg = ("run_band_structure has to be done.")
              raise RuntimeError(msg)
  
          retdict = {'qpoints': self._band_structure.qpoints,
                     'distances': self._band_structure.distances,
                     'frequencies': self._band_structure.frequencies,
                     'eigenvectors': self._band_structure.eigenvectors,
                     'group_velocities': self._band_structure.group_velocities}
  
          return retdict
docs: Returns calclated band structures
  
          Returns
          -------
          dict
              keys: qpoints, distances, frequencies, eigenvectors, and
                    group_velocities
              Each dict value is a list containing properties on number of paths.
              The number of q-points on one path can be different from that on
              the other path. Each set of properties on a path is ndarray and is
              explained as below:
  
              qpoints[i]: ndarray
                  q-points in reduced coordinates of reciprocal space without
                  2pi.
                  shape=(q-points, 3), dtype='double'
              distances[i]: ndarray
                  Distances in reciprocal space along paths.
                  shape=(q-points,), dtype='double'
              frequencies[i]: ndarray
                  Phonon frequencies
                  shape=(q-points, bands), dtype='double'
              eigenvectors[i]: ndarray
                  Phonon eigenvectors. None if eigenvectors are not stored.
                  shape=(q-points, bands, bands), dtype='complex'
              group_velocities[i]: ndarray
                  Phonon group velocities. None if group velocities are not
                  calculated.
                  shape=(q-points, bands, 3), dtype='double'