def forces(self, sets_of_forces):
        """Set forces in displacement dataset.

        Parameters
        ----------
        sets_of_forces : array_like
            A set of atomic forces in displaced supercells. The order of
            displaced supercells has to match with that in displacement
            dataset.
            shape=(displaced supercells, atoms in supercell, 3), dtype='double'

            [[[f_1x, f_1y, f_1z], [f_2x, f_2y, f_2z], ...], # first supercell
             [[f_1x, f_1y, f_1z], [f_2x, f_2y, f_2z], ...], # second supercell
             ...
            ]

        """

        if 'first_atoms' in self._displacement_dataset:
            for disp, forces in zip(self._displacement_dataset['first_atoms'],
                                    sets_of_forces):
                disp['forces'] = forces
        elif 'forces' in self._displacement_dataset:
            forces = np.array(sets_of_forces, dtype='double', order='C')
            self._displacement_dataset['forces'] = forces
Set forces in displacement dataset.

        Parameters
        ----------
        sets_of_forces : array_like
            A set of atomic forces in displaced supercells. The order of
            displaced supercells has to match with that in displacement
            dataset.
            shape=(displaced supercells, atoms in supercell, 3), dtype='double'

            [[[f_1x, f_1y, f_1z], [f_2x, f_2y, f_2z], ...], # first supercell
             [[f_1x, f_1y, f_1z], [f_2x, f_2y, f_2z], ...], # second supercell
             ...
            ]