[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-dev] Update SphericalRestraint



A good setup to aim for might be to have a State which builds a fast lookup structure on the bonds for a set of particles and another State which maintains the volume grid for a set. Then the ExclusionVolumeRestraint can use the two States to find nearby pairs and pairs to skip pairs which are bonded. Same for various Restraints for handling bonds (although it is not immediately clear what the best way to handle multiple types of bonds is).


On Dec 16, 2007, at 10:33 AM, Ben Webb wrote:

Daniel Russel wrote:
while the second is the excluded volume restraint, a loop over all
nonbonded pairs. Part of the nonbonded pair generation mechanism
excludes bonded particles.
Right, then the interesting question is how to do the non-bonded
particle generation. From what I gather with modeller, the speedups
compared to what I am describing come from using a proximity structure
and caching the list rather than separating the bonded from the
nonbonded computations. When generating the list you have to do a
similar lookup to see if each pair is bonded? Or is there some more
clever way of structuring things?

The separation of bonded from nonbonded interactions isn't an efficiency
issue - it's a flexibility issue.

Bonded and nonbonded interactions are
rather different, so it's more much useful to have them handled by
separate restraints; bonded interactions are local high-frequency
interactions, while nonbonded are nonlocal and lower frequency. So for
example you may want to treat them differently in multi-timescale
treatments. Many molecular mechanics packages achieve efficiency gains
by simply neglecting the high frequency oscillations of the system, i.e.
using constraints such as SHAKE to fix bond lengths and angles rather
than using restraints. And in the Modeller world, in most optimizations we calculate bond terms at every step, but either scale or turn off the
nonbonded interactions.

Modeller uses the more-or-less standard cell-based nonbonded list
generator, which has O(NlogN) performance. Bonded pairs (and any other
excluded pairs, such as 1-4 interactions) are excluded from the list
using a hash table with a sensibly chosen hash function.

	Ben
--
                      http://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
	- Sir Arthur Conan Doyle
_______________________________________________
IMP-dev mailing list

https://salilab.org/mailman/listinfo/imp-dev