From: Giacomo Fiorin (giacomo.fiorin_at_gmail.com)
Date: Tue May 29 2018 - 11:30:34 CDT

You can define harmonic restraints between any pair of groups that you
need, and loop over all pairs in Tcl:

foreach ga [list "1 2 3" "4 5 6" ...] \
        gb [list "101 102 103" "104 105 106" ...] \
        alabel [list "ga1" "ga2" ...] \
        blabel [list "gb1" "gb2" ...] {

cv config "
*colvar {*
*name r_$alabel-$blabel*
*distance {*
*group1 { atomNumbers $ga }*

*group2 { atomNumbers $gb }*

*}*
*}*

*harmonic {*

* name h_$alabel-$blabel*

* colvars r_$alabel-$blabel*
*}*
"

}

Alternatively, if you have a set of distances between atoms, use the
distancePairs functions to obtain all pairs as components of a 1D vector
and write a harmonic restraint for it.

Giacomo

On Tue, May 29, 2018 at 12:04 PM, Nick Palmer <tuf90798_at_temple.edu> wrote:

> Hello everyone,
>
> I would like to set up a simulation with a large number of different
> distance restraints between atoms. I was wondering how I would be able to
> do this.
>
> I have looked at colvars, and it seems to do what I want, however all the
> information I can find on it shows distance restraints only between two
> groups, and I would like to do maybe around 100 groups. I have also seen a
> similar question here (http://www.ks.uiuc.edu/Research/namd/mailing_list/
> namd-l.2006-2007/2185.html)
> on the mailing list and it was saying to use the freeEnergy calculation's
> urestraint command, however I just learned that these methods have been
> depreciated.
>
> So is there a way to have a large amount of constraints in one colvars
> method?
>
> Thank you in advance!
>
> --
> Nicholas J. Palmer
>

-- 
Giacomo Fiorin
Associate Professor of Research, Temple University, Philadelphia, PA
Contractor, National Institutes of Health, Bethesda, MD
http://goo.gl/Q3TBQU
https://github.com/giacomofiorin