You could define a repulsive potential that would apply to water molecules. I 
am not sure how it is called but it is available and described in the manual. 

On May 4, 2013, at 2:46, Christopher Neale <chris.ne...@mail.utoronto.ca> wrote:

> Dear users:
> 
> I am interested in running simulations of lipid bilayers in which I keep all 
> water molecules out of the bilayer core
> (not just statistically, but absolutely). However, I have been unable to 
> figure out how to do it. 
> I'll list what I have tried in the hope that others have some ideas or even 
> perhaps know how to do this 
> with standard gromacs.
> 
> Everything that I have tried revolves around using the pull code, setting the 
> entire lipid bilayer as the reference 
> group, and having thousands of pulled groups -- one for each water molecule. 
> Also, I modified the gromacs
> source code in mdlib/pull.c (version 4.6.1) so that the force is only applied 
> when the displacement is smaller than 
> the desired distance and not when the displacement is larger than the 
> specified distance (to keep water out but
> then to otherwise let it go anywhere without bias):
> 
> static void do_pull_pot(int ePull,
>                        t_pull *pull, t_pbc *pbc, double t, real lambda,
>                        real *V, tensor vir, real *dVdl)
> {
>    int        g, j, m;
>    dvec       dev;
>    double     ndr, invdr;
>    real       k, dkdl;
>    t_pullgrp *pgrp;
> 
>    /* loop over the groups that are being pulled */
>    *V    = 0;
>    *dVdl = 0;
>    for (g = 1; g < 1+pull->ngrp; g++)
>    {
>        pgrp = &pull->grp[g];
>        get_pullgrp_distance(pull, pbc, g, t, pgrp->dr, dev);
> 
> /*  ########## HERE IS THE CODE CHANGE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>        if(dev[0]>0.0){
>                dev[0]=0.0;
>        }
> /* End code snippit */
> 
> 
> The most relevant lines from the .mdp file were:
> 
> pull                     = umbrella
> pull_geometry            = distance
> pull_dim                 = N N Y
> pull_start               = no
> pull_ngroups             = 9000
> pull_group0              = POPC
> 
> pull_group1              = r_1_&_OW
> pull_init1               = 1.9
> pull_k1                  = 500
> 
> pull_group2              = r_2_&_OW
> pull_init2               = 1.9
> pull_k2                  = 500
> 
> ... etc...
> 
> 
> The problem with this was that it crashed immediately with an error that my 
> pulling distance was 
> greater than 1/2 of the box vector.:
> 
> Fatal error:
> Distance of pull group 165 (5.353939 nm) is larger than 0.49 times the box 
> size (5.395960)
> 
> Pretty obvious in retrospect. If I could get this error to go away, then 
> everything should be fine because I have modified the code so that forces are 
> zero at large displacements. However, I am worried that if I simply modify 
> grompp to bypass this error then I might get some type of strange and 
> possibly silent error in mdrun. Any thoughts on this are really appreciated.
> 
> For my second try, I used pull_geometry = direction-periodic (see more 
> details below), but that also didn't work 
> because if I set pull_vec1 = 0 0 1, then everything gets pulled to the upper 
> part of the box (and LINCS errors 
> ensue), rather than simply pulling away from the bilayer.
> 
> Pcoupl                    = berendsen
> pcoupltype           = semiisotropic
> compressibility    = 4.5e-5 0
> pull                     = umbrella
> pull_geometry        = direction-periodic
> pull_start               = no
> pull_ngroups             = 9000
> pull_group0              = POPC
> 
> pull_group1              = r_1_&_OW
> pull_init1               = 1.9
> pull_k1                  = 500
> pull_vec1                = 0 0 1
> 
> pull_group2              = r_2_&_OW
> pull_init2               = 1.9
> pull_k2                  = 500
> pull_vec2                = 0 0 1
> 
> ... etc...
> 
> 
> If anybody has an idea about how I could get this to work with standard 
> gromacs or with a modified version, I would be very grateful to hear your 
> thoughts. 
> 
> Thank you,
> Chris.
> 
> -- 
> gmx-users mailing list    gmx-users@gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-users
> * Please search the archive at 
> http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
> * Please don't post (un)subscribe requests to the list. Use the 
> www interface or send it to gmx-users-requ...@gromacs.org.
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
--
gmx-users mailing list    gmx-users@gromacs.org
http://lists.gromacs.org/mailman/listinfo/gmx-users
* Please search the archive at 
http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
* Please don't post (un)subscribe requests to the list. Use the
www interface or send it to gmx-users-requ...@gromacs.org.
* Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

Reply via email to