ProfM's answer gets the core idea perfectly right: Symmetry really is your best friend here. However, symmetry analysis is often quite involved, especially for larger unit cells.
I recently discovered the hiPhive package, which uses statistical fits (forces from random displacements fit to a force-constant potential), combined with with symmetry analysis (from spglib), to create a sparse representation of your potential energy surface.
I'm still learning the package myself, so I cannot go into much more detail, but the idea behind the package, very coarsely, is:
- Create a few supercells with random atomic displacements. The magnitude of the displacements may be small (~0.01 Angstroms) if you want purely harmonic phonons, or can be larger (~0.2 Angstroms) if you want the anharmonic force-constants too (for thermal conductivity, etc).
- Once the forces have been calculated for a fair number of disordered supercells (this is the most time-consuming part, since your forces are typically being calculated by a DFT code, and you may end up with ~500-600+ atoms), you can then proceed to use the hiPhive to generate a force-constant potential. There are tutorials on the website as well as the the method paper about what parameters to check for convergence, what controls convergence, etc.
- Once you have your force-constant potential (fcp), you can then use Phono3py or any other code that can generate/use force-constants, to get your dynamical properties of choice.
There is absolutely the question where convergence for a statistical/least-squares process is subtle, but the method paper (linked below) goes into at least some detail about the procedures to follow for a meaningful result from your calculations.
References:
- The Hiphive Package for the Extraction of High‐Order Force Constants by Machine Learning