PKua007 / rampack

Random And Maximal PACKing PACKage
Boost Software License 1.0
2 stars 1 forks source link

monte carlo simulations of beads with partial charges #69

Open xianshine opened 7 months ago

xianshine commented 7 months ago

Is it possible to implement the simulation of particles with partial charges, e.g. coarse graind molecules with partial charges? I think we only need to add these features:

  1. add particle attributes to contain information about partial charges.
  2. electrostatic interaction energy calculation with Ewald type of methods.

If it is possible to implement these, what's the easiest way?

PKua007 commented 7 months ago

Electrostatic interactions (especially dipolar) and Ewald summation are definitely somewhere in the roadmap. I never fully dived into the technical details of implementing the Ewald summation in Monte Carlo simulations (although I saw some papers on the topic), but I imagine one would just add additional energy terms in all places in the Packing class where the energy is computed. As for engineering the distribution of dipoles/charges, I would add the methods returning their placement in the Interaction interface in a similar fashion to Interaction::getInteractionCentres(). The support for defining the dipoles/charges could be then either hard-coded into selected existing Shape classes or an adapted class could be devised, say ChargedShape, which would take any existing shape and add a custom charge distribution. Probably both.

If you have some experience with the Ewald summation, you can contribute. I will happily help with the technicalities regarding the integration with the existing codebase in a general fashion.