code: def get_frequencies(self, q):
          
          self._set_dynamical_matrix()
          if self._dynamical_matrix is None:
              msg = ("Dynamical matrix has not yet built.")
              raise RuntimeError(msg)
  
          self._dynamical_matrix.set_dynamical_matrix(q)
          dm = self._dynamical_matrix.get_dynamical_matrix()
          frequencies = []
          for eig in np.linalg.eigvalsh(dm).real:
              if eig < 0:
                  frequencies.append(-np.sqrt(-eig))
              else:
                  frequencies.append(np.sqrt(eig))
  
          return np.array(frequencies) * self._factor
docs: Calculate phonon frequencies at a given q-point
  
          Parameters
          ----------
          q: array_like
              A q-vector.
              shape=(3,), dtype='double'
  
          Returns
          -------
          frequencies: ndarray
              Phonon frequencies.
              shape=(bands, ), dtype='double'