[gmx-developers] Question about MM point charges in QM/MM calculation

Gerrit Groenhof ggroenh at gwdg.de
Tue Feb 3 14:48:27 CET 2009


I did not think about that.

In the case of no pbc, you can add all non QM atoms to the MMrec atom list.

GErrit

Berk Hess wrote:
> Hi,
>
> This looks like pbc code.
> Maybe you do not have periodic boundary conditions,
> but you would not want to take all MM charges into account when you 
> have PBC.
>
> Berk
>
> Gerrit Groenhof wrote:
>> Sorry one line should be changed still:
>>     }
>>     mm_j_particles[mm_nr].j = j;
>>     mm_j_particles[mm_nr].shift = is;
>>     mm_nr++;
>>   }
>>
>>
>>
>>
>> Gerrit Groenhof wrote:
>>> So instead of looking into the QMMMnblists, you could simply scan 
>>> over all particles. If (!bQMMM[i]), add it to the MM array. This way 
>>> you get the whole box, but there could be problems with particles 
>>> being in a different periodic image that cannot be not shifted back 
>>> correctly prior to the QM call.
>>>
>>> I am not sure about this, but you coudl try something like in the 
>>> update_QMMMrec routine(3.3.x only):
>>>
>>>
>>>
>>>  if(QMMMlist_sr.nri){
>>>      qm_i_particles[0].shift = XYZ2IS(0,0,0);
>>>      for(i=0;i<QMMMlist_sr.nri;i++){
>>>    qm_i_particles[i].j     = QMMMlist_sr.iinr[i];
>>>    if(i){
>>>      qm_i_particles[i].shift = pbc_dx_aiuc(&pbc,x[QMMMlist_sr.iinr[0]],
>>>                        x[QMMMlist_sr.iinr[i]],dx);
>>>
>>>    }
>>>      crd[0] = IS2X(QMMMlist_sr.shift[i]) + 
>>> IS2X(qm_i_particles[i].shift);
>>>    crd[1] = IS2Y(QMMMlist_sr.shift[i]) + IS2Y(qm_i_particles[i].shift);
>>>    crd[2] = IS2Z(QMMMlist_sr.shift[i]) + IS2Z(qm_i_particles[i].shift);
>>>    is = XYZ2IS(crd[0],crd[1],crd[2]);
>>>   for(j=0;j<md->nr;j++){
>>>     if(!bQMMM[j]){
>>>      if(mm_nr >= mm_max){
>>>        mm_max += 1000;
>>>        srenew(mm_j_particles,mm_max);
>>>      }
>>>      mm_j_particles[mm_nr].j = QMMMlist_sr.jjnr[j];
>>>      mm_j_particles[mm_nr].shift = is;
>>>      mm_nr++;
>>>    }
>>> }
>>>
>>> Gerrit
>>>
>>> Pia Toelle wrote:
>>>> Thanks for the comment and your interest.
>>>>
>>>>
>>>> I still would like to get informations about the MM-atom list
>>>> (mm->xMM[i][..],mm->MMcharges[i]) and how I could change it, so 
>>>> that all
>>>> MM atoms are included not considering the cut-off, because we would 
>>>> like
>>>> to print out all (!) MM atoms (and their charges).
>>>> Please tell me if a change of the (t_MMrec)-variable mm could cause
>>>> problems for the MM-part of the routine or is  the 
>>>> (t_MMrec)-variable mm
>>>> only used in the QM part.
>>>> Or would it be possible to print out all MM atoms + charges at an 
>>>> other
>>>> point in the program? Where?
>>>>
>>>> Thanks in advance.
>>>>
>>>> Pia Toelle
>>>>
>>>> BCCMS
>>>> Uni Bremen
>>>> Am Fallturm 1
>>>> 28359 Bremen
>>>> Germany
>>>>
>>>>
>>>>
>>>> Gerrit Groenhof wrote:
>>>>  
>>>>> Hi,
>>>>>
>>>>> We did a gmx-dftb interface that used function calls from the linked
>>>>> dftb librarysome time ago. That was in 3.3.3, but I never found 
>>>>> the time
>>>>> to pt it in 4. ALso I remember some compilation issues with the dftb
>>>>> code on 64 bit machines. I can send you the code if you're 
>>>>> interested.
>>>>>
>>>>> For QM/MM the MM atoms are indeed set with the cut-off options. 
>>>>> Although
>>>>> for dftb it is not very difficult, I have never found the time or 
>>>>> need
>>>>> to complete the ewald implementation.  To avoid duplications, I 
>>>>> suggest
>>>>> we finish the PME implementation for the DFTB code together. 
>>>>> Contacting
>>>>> me off-list  is probably more convenient if you are interested.
>>>>>
>>>>> BEst,
>>>>>
>>>>> Gerrit
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 30 Jan 2009, at 18:09, Pia Toelle wrote:
>>>>>
>>>>>  
>>>>>> Hello.
>>>>>>
>>>>>> I have got some questions concerning the MM-atom-list in a QM/MM
>>>>>> calculation.
>>>>>>
>>>>>> We do QM-MM calculations using the Gaussian interface 
>>>>>> (gromacs-3.3.3),
>>>>>> but modified the code to be able to use DFTB instead of Gaussian
>>>>>> (www.dftb.org).
>>>>>> Our (MM-)system is a SiO2-surface (with periodic boundary condition;
>>>>>> full).
>>>>>> We use PME and DO NOT (!) define proper charge groups for the 
>>>>>> surface
>>>>>> structure, every atom forms its own charge group. Number of MM atoms
>>>>>> ~1900.
>>>>>> (The proper definition of charge groups in our system is not 
>>>>>> obvious or
>>>>>> even impossible, as it is a solid and a periodic system)
>>>>>>
>>>>>> We noticed, that the MM system considered in the QM calculation 
>>>>>> does not
>>>>>> consist of the entire MM system. The point charges
>>>>>> (mm->xMM[i][..],mm->MMcharges[i]) that are written to input.com (by
>>>>>> qm_gaussian.c) are only those of the MM atoms in the vicinity of 
>>>>>> the QM
>>>>>> atoms. The list of MM atoms in the vicinity of the QM-zone is set 
>>>>>> (as
>>>>>> far as we can see) using the neighbor-search algorithm depending 
>>>>>> also on
>>>>>> the charge groups (in ns5_core.c). Please correct me if I am 
>>>>>> wrong at
>>>>>> some point.
>>>>>> Is it right, that the cut-off for the QM/MM - neighbor search is 
>>>>>> set by
>>>>>> 'rcoulomb' in the mdp-file? Or 'rlist'?
>>>>>>
>>>>>> Anyhow, we would like to print out all (!) MM atoms (and their 
>>>>>> charges).
>>>>>> How to solve this problem?
>>>>>> Is there a simple way to put all MM atoms in the mm list? And please
>>>>>> tell me if a change of the (t_MMrec)-variable mm could cause 
>>>>>> problems
>>>>>> for the MM-part of the routine or is  the (t_MMrec)-variable mm only
>>>>>> used in the QM part.
>>>>>> Or would it be possible to print out all MM atoms + charges at an 
>>>>>> other
>>>>>> point in the program? Where?
>>>>>> I am grateful for any helpful information or idea.
>>>>>>
>>>>>>
>>>>>> Thanks in advance.
>>>>>>
>>>>>> Pia Toelle
>>>>>>
>>>>>> BCCMS
>>>>>> Uni Bremen
>>>>>> Am Fallturm 1
>>>>>> 28359 Bremen
>>>>>> Germany
>>>>>>
>>>>>> _______________________________________________
>>>>>> gmx-developers mailing list
>>>>>> gmx-developers at gromacs.org
>>>>>> http://www.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://www.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://www.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://www.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://www.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://www.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.




More information about the gromacs.org_gmx-developers mailing list