[gmx-developers] bug in 407 with charge groups

Justin A. Lemkul jalemkul at vt.edu
Tue Nov 2 18:23:26 CET 2010



Berk Hess wrote:
> On 11/02/2010 05:28 PM, Berk Hess wrote:
>> On 11/02/2010 04:18 PM, David van der Spoel wrote:
>>   
>>> On 2010-11-02 16.02, Berk Hess wrote:
>>>     
>>>> Hi,
>>>>
>>>> There is a MAX_CHARGEGROUP_SIZE defined in forcerec.h.
>>>> This can simply be lowered to 32 (with proper documentation next to 32).
>>>>
>>>>       
>>> The 32 comes from the 32 bit for the t_excl type (unsigned long),
>>> something completely different in other words. I put hard checks in
>>> grompp for charge groups of 32 atoms now, this has been committed as
>>> well.
>>>
>>>     
>> Are you sure exactly 32 works fine and the limit is not 31?
>> Then I will change the limit in forcerec.h.
>> That check is even more important, since that is in mdrun where the
>> actual limitation is.
>>

Wouldn't the code you added always print "The largest charge group contains 32 
atoms. The maximum is 32." ?

     if (maxsize > MAX_CHARGEGROUP_SIZE)
     {
         gmx_fatal(FARGS,"The largest charge group contains %d atoms. The 
maximum is 32.",MAX_CHARGEGROUP_SIZE);
     }


Would a more suitable change be:

     if (maxsize > MAX_CHARGEGROUP_SIZE)
     {
         gmx_fatal(FARGS,"The largest charge group contains %d atoms. The 
maximum is %d.",maxsize,MAX_CHARGEGROUP_SIZE);
     }

-Justin

>> Berk
>>   
> Your fix was not very clean with a number 32 in grompp.c.
> I put a single definition of MAX_CHARGEGROUP_SIZE=32 in nblist.h,
> which is now used both in grompp and mdrun.
> 
> Berk
>>>     
>>>> Berk
>>>>
>>>> On 11/02/2010 03:03 PM, David van der Spoel wrote:
>>>>       
>>>>> On 2010-11-02 14.09, David van der Spoel wrote:
>>>>>         
>>>>>> On 2010-11-02 13.45, Berk Hess wrote:
>>>>>>           
>>>>>>> Have you checked if the bug is really gone in 4.5.x?
>>>>>>> 4.5 has all-vs-all loops, which are used by default (thus no neighbor
>>>>>>> searching).
>>>>>>> Could you try to run with GMX_NO_ALLVSALL?
>>>>>>>             
>>>>>> Good point. The bug is still there.
>>>>>> I will file a bugzilla.
>>>>>>           
>>>>> http://bugzilla.gromacs.org/show_bug.cgi?id=608
>>>>>
>>>>> Charge groups of>  32 atoms will silently give the wrong result. Shall
>>>>> I put back the fatal error that used to exist in grompp?
>>>>>
>>>>> In that case we need to release 4.0.8 (and possibly 3.3.5 as well?).
>>>>>
>>>>>         
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Berk
>>>>>>>
>>>>>>> On 11/02/2010 01:31 PM, David van der Spoel wrote:
>>>>>>>             
>>>>>>>> A local user here brought to my attention that in 4.0.7 there is a
>>>>>>>> serious bug due to charge groups. If you have a small molecule with
>>>>>>>> all atoms in one charge group and infinite cutoffs in vacuo the
>>>>>>>> energy
>>>>>>>> is wrong. If you put each atom in it's own charge group the
>>>>>>>> result is
>>>>>>>> correct (as compared to Macromodel). The reason appears to be
>>>>>>>> that the
>>>>>>>> neighborlist is incorrect:
>>>>>>>>
>>>>>>>> 1 cg/molecule
>>>>>>>> <  Coulomb + LJ 0.000569 0.022 29.0
>>>>>>>> 1 cg/atom
>>>>>>>>               
>>>>>>>>> Coulomb + LJ 0.000620 0.024 24.9
>>>>>>>>>                 
>>>>>>>> in other words, 51 interactions are left out. In 4.5.x this bug
>>>>>>>> is no
>>>>>>>> longer there, so it would be good if the fix that went into 4.0.x as
>>>>>>>> well. I can't seem to find any notion of this being fixed in the git
>>>>>>>> logs of ns.c though.
>>>>>>>>               
>>>>>>>             
>>>>>>           
>>>>>         
>>>>       
>>>     
>>   
> 

-- 
========================================

Justin A. Lemkul
Ph.D. Candidate
ICTAS Doctoral Scholar
MILES-IGERT Trainee
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080
http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin

========================================



More information about the gromacs.org_gmx-developers mailing list