Hello PLUMED users!
Not sure if this is the developers list as well as the users list, but I thought I'd give it a shot.
I love PLUMED and I would like to use it to replace a current GROMACS hack that I have going. I think it is a wonderful piece of software for the MD community, and I found modifying it delightfully simple.
My calculation at hand is a biased ensemble calculation of an electrostatic coupling of pseudo-charges within a small ligand to the rest of the system. When I say pseudo-charges, I mean charges that are only intended to be relevant to this calculation, and that should *not* be treated as real charges within the dynamics, especially since these pseudo-charges do not interact with one another. My system has about 100k "environment" atoms and 40 pseudo-charged atoms within the ligand.
I modified the DHENERGY class to accept an argument for PSEDUOCHARGE_A, a list of pseudocharges for GROUP_A. I then compute all of the distances and interactions with these charges to the system. I have a few problems, though:
1. The calculation is SLOW. It slows down gromacs by a factor of 10 for my hacked code, and a factor of 30 for the PLUMED version. As it should be: all of the other long-range coulomb couplings are taken care of with a nice FFT. However, due to the structure of this calculation, it does not parallelize for PLUMED nicely. I have three ideas for solutions.
1A. I could run this calculation in parallel, by communicating the pseudocharges and positions to every node, and then do the computation in parallel. I don't know how to do this within the PLUMED framework, but it seems like one of the easier fixes.
1B. I could implement biasing via Hybrid Monte Carlo. This would be excellent, and I was looking into hacking this into gromacs directly, but then I wondered if the PLUMED team has thought about implementing this. It could be a nice addition to the current functionality of plumed for order parameters that are too costly to compute every MD step.
1C. I could implement the coupling via some sort of PME modification for coupling two disjoint sets of atoms, which really sounds like a pain...
2. The PLUMED calculation is *wrong*. My system is in a non-rectilinear (it takes the compact representation of a rhombic dodecahedron), and I think that DHENERGY (and possibly all of PLUMED) is computing PBC with a rectilinear nearest image convention. I was doing the same with my home-written code and I was getting wildly unstable answers like I am currently getting with PLUMED. I was able to compare to the built-in GROMACS dist() function, and I tracked down the error. When you are using a non-rectilinear PBC, you need to convert to a compact representation, which requires first using the rectilinear NIC and then checking all neighbor cells for a closer image. Can anyone verify whether PLUMED is doing distances correctly for triclinic boxes?
Thanks!
John