code: def _build_primitive_cell(self):
          
  
          inv_supercell_matrix = np.linalg.inv(self._supercell_matrix)
          if self._primitive_matrix is None:
              trans_mat = inv_supercell_matrix
          else:
              trans_mat = np.dot(inv_supercell_matrix, self._primitive_matrix)
  
          try:
              self._primitive = get_primitive(
                  self._supercell, trans_mat, self._symprec)
          except ValueError:
              msg = ("Creating primitive cell is failed. "
                     "PRIMITIVE_AXIS may be incorrectly specified.")
              raise RuntimeError(msg)
docs: primitive_matrix:
            Relative axes of primitive cell to the input unit cell.
            Relative axes to the supercell is calculated by:
               supercell_matrix^-1 * primitive_matrix
            Therefore primitive cell lattice is finally calculated by:
               (supercell_lattice * (supercell_matrix)^-1 * primitive_matrix)^T