vaidyanathanms / votca

Automatically exported from code.google.com/p/votca
0 stars 0 forks source link

pressure correction with relative entropy #148

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
add pressure correction update scheme for relative entropy based 
coarse-graining similar to that in IBI. Model CG interactions as B-spline + 
A(1-r/rcut) and update B-Spline knots with RE and A from pressure correction 
update formula. Store both B-spline knots and A at each iteration.

Original issue reported on code.google.com by symasha...@gmail.com on 12 Nov 2013 at 7:12

GoogleCodeExporter commented 9 years ago
Hi

After looking into post update scripts for pressure correction, I found out 
that we dont have to do much to enable pressure correction with relative 
entropy and we can use (almost) the same post_update scripts for relative 
entropy. Only thing, that is needed to take care is that instead of adding 
correction to .dpot, the correction should be added to .pot.new, the potential 
file written by csg_reupdate. 

Now, I am a bit confused about how the pressure correction is done in the case 
of mixtures. For mixtures, user would specify how much each interaction should 
contribute to the total pressure of a system,  i.e., the target pressure for an 
interaction. Then votca should determine the actual pressure contribution of 
each specific interaction and add corresponding correction based on error in 
each case. 

However, from the script, I understand that gromacs' g_energy is used to 
compute CG pressure from current CG-MD simulations. Then this pressure is used 
to determine the difference between user specified target pressure. However, 
g_energy is computing the total pressure and not the contribution from a 
specified CG interaction. Therefore, in the case of mixture, wouldnt it cause 
excessive correction (multiple counting of error) in each interaction?

I think, one solution to this issue would be to specify pressure correction 
frequency for each interaction such that only one interaction is corrected at 
any given iteration. Am I correct? Am I just re-iterating what you guys have 
already thought about :)

Thanks
Sikandar

Original comment by symasha...@gmail.com on 13 Nov 2013 at 5:29

GoogleCodeExporter commented 9 years ago
Well, yes, for multi-component systems, one would need to calculate the partial 
pressures. Espresso is able to do that, but Gromacs isn't. We always had the 
plan to add this feature to Gromacs, but as pressure correction got less and 
less popular with the years, so it never happened. (We should add a warning to 
csg_inverse though!)

Considering that all components contribute equally according to the number of 
pairs, one can calculate an estimate for the partial pressures. Technically the 
ratio, N_pairs_XY/N_pairs_total can then be used as the scale of the pressure 
correction. However, this approximation is pretty crude.

Original comment by christop...@gmail.com on 13 Nov 2013 at 5:56

GoogleCodeExporter commented 9 years ago
one more option to get partial pressures from gromacs would be to do mdrun
-rerun with energy exclusion group. With this option one can exclude all
interactions except for a given pair of particles and then the pressure
from g_energy will have virial component due to interaction of interest.

Original comment by symasha...@gmail.com on 13 Nov 2013 at 6:14