code: def write_force_constants_to_hdf5(force_constants,
                                    filename='force_constants.hdf5',
                                    p2s_map=None,
                                    physical_unit=None,
                                    compression=None):
      
  
      try:
          import h5py
      except ImportError:
          raise ModuleNotFoundError("You need to install python-h5py.")
  
      with h5py.File(filename, 'w') as w:
          w.create_dataset('force_constants', data=force_constants,
                           compression=compression)
          if p2s_map is not None:
              w.create_dataset('p2s_map', data=p2s_map)
          if physical_unit is not None:
              dset = w.create_dataset('physical_unit', (1,),
                                      dtype='S%d' % len(physical_unit))
              dset[0] = np.string_(physical_unit)
docs: Write force constants in hdf5 format.
  
      Parameters
      ----------
      force_constants: ndarray
          Force constants
          shape=(n_satom,n_satom,3,3) or (n_patom,n_satom,3,3)
          dtype=double
      filename: str
          Filename to be saved
      p2s_map: ndarray
          Primitive atom indices in supercell index system
          shape=(n_patom,)
          dtype=intc
      physical_unit : str, optional
          Physical unit used for force contants. Default is None.
      compression : str or int, optional
          h5py's lossless compression filters (e.g., "gzip", "lzf").
          See the detail at docstring of h5py.Group.create_dataset. Default is
          None.