[gmx-developers] QMMM, exclusions and neighbor search

Berk Hess hess at cbr.su.se
Mon Mar 8 09:46:36 CET 2010


Hi,

I suggested a simple solution for this problem to Gerrit, which does not
require code changes,
except for a check in grompp.

I think you can simply use energy group exclusions by putting all the qm
atoms in a separate
energy group and using: energygrp_excl = qm qm
This should do what you want, except when using PME and to a certain
extent also reaction field.
But for those methods it is quite complicated to come up with a proper
scheme.

Berk

Pia Toelle wrote:
> Hi Gerrit.
>
> I made the following changes in  src/kernel/topio.c:
>
>
> - "generate_qmexcl": "molblock" filling changed (I am not sure, if this
> was related to the QM-QM interaction problem)
>
>
> - added "generate_qm_atom_type": new QM-atomtype for all atomtypes added
>  ( sys->atomtypes.nr were doubled)
> The added QM-atomtypes have zeros in sys->ffparams for the QM-QM
> non-bonded interaction.
>
>
> I hope, that the changes in the attached file topio.c are understandable
> and that it will help you.
>
>
> Greetings,
> Pia
>
>
>
>
> Gerrit Groenhof wrote:
>   
>> Hallo Pia,
>>
>> Sorry for not getting back on this issue earlier. 
>>
>> Have you been able to fix this bug?
>>
>> BEst wishes,
>>
>> Gerrit
>>
>>
>> On 11 Aug 2009, at 13:10, Pia Toelle wrote:
>>
>>     
>>> Okay.
>>>
>>> Thanks for your reply. I will try to do so.
>>> Please, tell me if their are any news concerning this problem.
>>>
>>> Cheers,
>>> Pia
>>>
>>> Berk Hess wrote:
>>>       
>>>> Hi,
>>>>
>>>> That would work.
>>>> But we should certainly fix the code.
>>>> I did not think of this situation when introducing the moltype data
>>>> structure in version 4.0.
>>>>
>>>> Berk
>>>>
>>>> Pia Toelle wrote:
>>>>         
>>>>> Hello.
>>>>>
>>>>> To avoid a different handling of QM-atoms of different molecule types,
>>>>> would it be possible to put all QM atoms in one molblock and moltype, as
>>>>> the molblocks ans moltypes are filled and defined anyway in
>>>>> generate_qmexcl? Or would this influence other parts of the program?
>>>>>
>>>>> greetings
>>>>> Pia
>>>>>
>>>>>
>>>>> Gerrit Groenhof wrote:
>>>>>
>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>> I had not realized your previous question had not been answered
>>>>>> completely, sorry.
>>>>>>
>>>>>> In 3.3 it was a bit more intuitive, also for me.
>>>>>>
>>>>>> In the generate_qmexcl there is a loop over all molblocks. Thus all qm
>>>>>> atoms are found, even if they are in different molecules. However, you
>>>>>> might have a point that between molecules the qm atoms do not seem to
>>>>>> get excluded. Such situation could happen, for example if part of the
>>>>>> protein and a few waters are treated at the QM level, which is typical
>>>>>> for enzymes. To avoid problems (if any), you can include such waters in
>>>>>> the .itp file of the protein.  But it should work also with the
>>>>>> different QM atom in different topologies and I will  look into this .
>>>>>>
>>>>>> Best,
>>>>>>
>>>>>> Gerrit
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 10 Aug 2009, at 18:27, Pia Toelle wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Hello.
>>>>>>>
>>>>>>> I still have problems with "generate_qmexcl" in version 4.0.5.
>>>>>>>
>>>>>>> Comparing to earlier version 3.3.3, one notices that the data structure
>>>>>>> moltype and molblock are included. In the earlier version, qm exclusions
>>>>>>> were generated for each QM-atom inside the system, now in version 4.0.5,
>>>>>>> they are generated per atom inside each molecule type.
>>>>>>>
>>>>>>> I still wounder whether the exclusions between QM-atoms of different
>>>>>>> molecule types are considered here and - if yes - how. Or - if not -
>>>>>>> where this is done.
>>>>>>>
>>>>>>> Is the splitting of the QM part into molblock's correct?
>>>>>>>
>>>>>>> I would be glad for any comment or reply! Please tell me if my question
>>>>>>> is not precise.
>>>>>>>
>>>>>>> Pia
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Pia Toelle wrote:
>>>>>>>
>>>>>>>               
>>>>>>>> Hello Gerrit.
>>>>>>>> Thanks for the reply, it helped a lot, but I still have some problems to
>>>>>>>> understand.
>>>>>>>>
>>>>>>>>
>>>>>>>> As far as I understood in "generate_qmexcl" the QM molecules are put
>>>>>>>> into separate molblock and each molecule has its own moleculetype.
>>>>>>>> Then "generate_qmexcl_moltype" is called and the exclusions are set.
>>>>>>>>
>>>>>>>> At first an array "qm_arr" is generated. As the loop
>>>>>>>> "for(i=0;i<molt->atoms.nr;i++)" only passes through the atoms with the
>>>>>>>> same moleculetype.
>>>>>>>> "sys->moltype[--].excls" contains the exclusions between Atoms of the
>>>>>>>> same topologie.
>>>>>>>>
>>>>>>>> Are the nonbonded interactions listed in the ilist and excluded by
>>>>>>>> deleting them in this list?
>>>>>>>>
>>>>>>>> Where is the ilist generated in first place?
>>>>>>>>
>>>>>>>>
>>>>>>>> Please correct my estimates.
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Pia
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Gerrit Groenhof wrote:
>>>>>>>>
>>>>>>>>                 
>>>>>>>>> The QM - QM interactions, both Coulomb and van der Waals are explicitly
>>>>>>>>> exluded.
>>>>>>>>>
>>>>>>>>> The code for this begins with the comment
>>>>>>>>>
>>>>>>>>> /* creating the exclusion block for the QM atoms. Each QM atom has
>>>>>>>>>  * as excluded elements all the other QMatoms (and itself).
>>>>>>>>>  */
>>>>>>>>>
>>>>>>>>> In generate_qmexcl_moltype (topio.c).
>>>>>>>>>
>>>>>>>>> Thus the exclusionlists are expanded with all QM- QM interactions.
>>>>>>>>> The coulomb interactions are handled a bit more dirty: In the
>>>>>>>>> initialisation (qmmm.c), these charges are put to zero.
>>>>>>>>> Thus the standard nbsearching will look at the exclusions and check
>>>>>>>>> if a
>>>>>>>>> particle is charged. This way it will never include the QM QM  atom
>>>>>>>>> pairs, or QM MM coulomb interactions.
>>>>>>>>> The QMMM nbsearching in the next step takes the QM atoms as i-particles
>>>>>>>>> and searches all MM neighbours.
>>>>>>>>>
>>>>>>>>> Best wishes,
>>>>>>>>>
>>>>>>>>> Gerrit
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 15 Jul 2009, at 20:10, Pia Toelle wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>>>> Hello
>>>>>>>>>>
>>>>>>>>>> (I am using Gromacs 4.0.5 (QM/MM))
>>>>>>>>>>
>>>>>>>>>> I have a question about the exclusion of nonbonded (specially VdW)
>>>>>>>>>> interaction in QM/MM simulation. The coulomb and VdW interaction
>>>>>>>>>> between
>>>>>>>>>> two QM Atoms should not be calculated by Gromacs as the QM-QM
>>>>>>>>>> interaction is done by the QM-program.
>>>>>>>>>> Where (and how) in the code is the VdW (and also coulomb) interaction
>>>>>>>>>> between two QM atoms excluded?
>>>>>>>>>>
>>>>>>>>>> Please also comment on the following:
>>>>>>>>>>
>>>>>>>>>> (topio.c called by grompp.c)
>>>>>>>>>> "generate_qmexcl" and "generate_qmexcl_moltype", here the
>>>>>>>>>> exclusions for
>>>>>>>>>> the INTRA-molecular interaction are set. Is this right? What is about
>>>>>>>>>> the Interaction between different QM-Molecules?
>>>>>>>>>>
>>>>>>>>>> (ns.c)
>>>>>>>>>> In "search_neighbours" the "nsgrid_core" is called to set up the
>>>>>>>>>> neighbor lists (for all atoms QM and MM !?), then it is called to
>>>>>>>>>> set up
>>>>>>>>>> the QM/MM neighbor list.
>>>>>>>>>>
>>>>>>>>>> (force.c)
>>>>>>>>>> In "do_forces" the "do_force_lowlevel" is called, there the
>>>>>>>>>> QM-calculation and "do_nonbonded" takes place. The later does not
>>>>>>>>>> contain any information about the atom being QM or not, as far as I
>>>>>>>>>> can
>>>>>>>>>> see. Therefore, I believe, that the decision to calculate VdW was made
>>>>>>>>>> by setting up the lists. Is this right???
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks in advance,
>>>>>>>>>> Pia Tölle
>>>>>>>>>>
>>>>>>>>>> BCCMS, university of Bremen, Germany
>>>>>>>>>> _______________________________________________
>>>>>>>>>> gmx-developers mailing list
>>>>>>>>>> gmx-developers at gromacs.org
>>>>>>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>>>>>>> Please don't post (un)subscribe requests to the list. Use the
>>>>>>>>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>>>>>>>>
>>>>>>>>>>                     
>>>>>>>>> -- 
>>>>>>>>> Gerrit Groenhof
>>>>>>>>> MPI biophysical chemistry
>>>>>>>>> Goettingen
>>>>>>>>> Germany
>>>>>>>>> http://wwwuser.gwdg.de/~ggroenh/
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> gmx-developers mailing list
>>>>>>>>> gmx-developers at gromacs.org
>>>>>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>>>>>> Please don't post (un)subscribe requests to the list. Use thewww
>>>>>>>>> interface or send it to gmx-developers-request at gromacs.org.
>>>>>>>>>
>>>>>>>>>                   
>>>>>>>> _______________________________________________
>>>>>>>> gmx-developers mailing list
>>>>>>>> gmx-developers at gromacs.org
>>>>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>>>>> Please don't post (un)subscribe requests to the list. Use the
>>>>>>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>>>>>>
>>>>>>>>                 
>>>>>>> _______________________________________________
>>>>>>> gmx-developers mailing list
>>>>>>> gmx-developers at gromacs.org
>>>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>>>> Please don't post (un)subscribe requests to the list. Use the
>>>>>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>>>>>
>>>>>>>               
>>>>>> -- 
>>>>>> Gerrit Groenhof
>>>>>> MPI biophysical chemistry
>>>>>> Goettingen
>>>>>> Germany
>>>>>> http://wwwuser.gwdg.de/~ggroenh/
>>>>>>
>>>>>> _______________________________________________
>>>>>> gmx-developers mailing list
>>>>>> gmx-developers at gromacs.org
>>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>>> Please don't post (un)subscribe requests to the list. Use thewww
>>>>>> interface or send it to gmx-developers-request at gromacs.org.
>>>>>>
>>>>>>             
>>>>> _______________________________________________
>>>>> gmx-developers mailing list
>>>>> gmx-developers at gromacs.org
>>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>>> Please don't post (un)subscribe requests to the list. Use the 
>>>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> gmx-developers mailing list
>>>> gmx-developers at gromacs.org
>>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>>> Please don't post (un)subscribe requests to the list. Use the 
>>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>>         
>>> _______________________________________________
>>> gmx-developers mailing list
>>> gmx-developers at gromacs.org
>>> http://lists.gromacs.org/mailman/listinfo/gmx-developers
>>> Please don't post (un)subscribe requests to the list. Use the
>>> www interface or send it to gmx-developers-request at gromacs.org.
>>>       
>> --
>> Gerrit Groenhof
>> MPI biophysical chemistry
>> Goettingen
>> Germany
>> http://wwwuser.gwdg.de/~ggroenh/
>>
>>     
>
>
>   




More information about the gromacs.org_gmx-developers mailing list