Methods for Determining Partial Charges
There are lots, and I mean lots of methods and software programs to produce partial charges. See Wikipedia for a small (incomplete list)

Let's start with the basics. The idea of a partial atomic charge, while useful for concept, can not be defined uniquely. Quantum chemical methods (whether wavefunction or DFT) produce some sort of electron density. Different schemes divide up that electron density in different ways.

I like Cramer and Truhlar's categories:


Class I: Some sort of intuitive or empirical approach (i.e., non-QM). These include methods based on experimental dipole moments and atomic electronegativities, including Gasteiger-Marsili partial charges and other "electronegativity equalization methods" (EEM).
Class II: Partitioning using wave functions / orbital schemes (including Mulliken charges while very efficient to compute, are basis set dependent.
Class III: Partitioning the electron density or electrostatic potential (e.g., Hirshfeld, density-fitting schemes, etc.
Class IV: Semiempirical mapping from Class II or Class III (preferred) to match experimental data like dipole moments.


Almost any modern quantum package will include several schemes to fit partial charges. My personal preference is for something like Hirshfeld charges (i.e., from the electron density, so not basis-set dependent), or electrostatic potential fitting schemes like Merz-Kollman or CHelpG.

I think the latter (electrostatic potential fitting) will be better generally for molecular dynamics, since you're attempting to produce point charges that will best represent the quantum mechanical electrostatic potential.