code: def eigvec_to_eigdispl(v, q, frac_coords, mass):
      
  
      c = np.exp(2j * np.pi * np.dot(frac_coords, q)) / np.sqrt(mass)
  
      return c*v
docs: Converts a single eigenvector to an eigendisplacement in the primitive cell
      according to the formula::
          
          exp(2*pi*i*(frac_coords \\dot q) / sqrt(mass) * v
      
      Compared to the modulation option in phonopy, here all the additional
      multiplicative and phase factors are set to 1.
      
      Args:
          v: the vector that should be converted. A 3D complex numpy array.
          q: the q point in fractional coordinates
          frac_coords: the fractional coordinates of the atom
          mass: the mass of the atom