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

Berk Hess hessb at mpip-mainz.mpg.de
Tue Feb 3 14:42:02 CET 2009


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.




More information about the gromacs.org_gmx-developers mailing list