[gmx-developers] Nr of graph edges per atom and distance restraints

David van der Spoel spoel at xray.bmc.uu.se
Wed Apr 11 09:51:10 CEST 2007


Berk Hess wrote:
> David van der Spoel wrote:
> 
>> hessb at mpip-mainz.mpg.de wrote:
>>
>>>> Juergen Haas wrote:
>>>>
>>>>>> To get things right,
>>>>>> you are using only distance restraints, no orientation restraints
>>>>>> and you get a segfault around line 166 or orires.c, not disre.c ??
>>>>>
>>>>> in that case I forgot to switch off orires...:(
>>>>> to wrap it up: the segfault seems to have been linked to fftw commands
>>>>> and it
>>>>> turned out that I overlooked a trivial error: the lam/fftw environment
>>>>> on my
>>>>> newly installed machine was broken.
>>>>> Fixing that solved all problems and I could use the suggested hack of
>>>>> increasing g->maxedge.
>>>>>
>>>>> Thanks!
>>>>> Juergen
>>>>>
>>>> To finally fix the bugzilla 66, which number of did you use instead 
>>>> of 4
>>>> on line 229 of mshift.c?
>>>
>>>
>>> This is not relevant.
>>> The code is quite small and puts only the chemical bonds in the graph
>>> for interactions within three bonds.
>>> But one can define as many long-range distance restraints as one likes.
>>> Therefore there is not limit to the number of graph edges.
>>>
>>>> Alternatively, the condition & IF_CHEMBOND on line 201 could be 
>>>> replaced
>>>> by & IF_BOND
>>>
>>>
>>> This does not help.
>>
>>
>> I think it will because then distance restraints are included, now 
>> only true chemical bonds are, and then the number will be determined 
>> dynamically.
>>
> Ah, right.
> But we don't want that as a general solution,
> since that could cost a lot of extra allocation and might hurt cache 
> performance.
> 
> A solution for distance restraints would be to add tp==F_DISRES.
> But there was recently also someone with too mant harmonic bonds...
> So we should think of a robust solution.
> 
> I just looked into the code and since there is g->nedge,
> we could first just count everything, then fill the graph as is done now,
> then shrink the array while resetting the g->edge pointers
> and realloc.
> 
> Berk.

I've implemented this in the CVS head branch, and it works fine at least 
with particle decomposition. Question is whether we want this in 3.3 as 
well?  It is not a lot of work, so that's not the problem.

One does get problems with inconsistent shifts as soon as one has 
distances larger than half the box though...

-- 
David.
________________________________________________________________________
David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596,  	75124 Uppsala, Sweden
phone:	46 18 471 4205		fax: 46 18 511 755
spoel at xray.bmc.uu.se	spoel at gromacs.org   http://folding.bmc.uu.se
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



More information about the gromacs.org_gmx-developers mailing list