IMP logo
IMP Reference Guide  2.12.0
The Integrative Modeling Platform
IMP::container Namespace Reference

Various classes to hold sets of particles. More...

Detailed Description

Various classes to hold sets of particles.

Containers provide a layer of indirection between code that defines sets of particles and restraints and constraints. This indirection allows the set of particles acted upon to be changed on the fly. For example, the IMP::container::ClosePairContainer defines a set of all particle pairs that are close to one another.

Info

Author(s): Daniel Russel

Maintainer: benmwebb

License: LGPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Publications:

Classes

class  AllBipartitePairContainer
 
class  AllPairContainer
 Return all unordered pairs of particles taken from the SingletonContainer. More...
 
class  CloseBipartitePairContainer
 Return all spatially-proximals pairs of particles (a,b) from the two SingletonContainers A and B, where a is in A and b is in B. More...
 
class  ClosePairContainer
 Return all close unordered pairs of particles taken from the SingletonContainer. More...
 
class  ConnectingPairContainer
 A container which keeps a set of pairs that connect a set of spheres. More...
 
class  ConsecutivePairContainer
 A container which contains all consecutive particle pairs from an input list. More...
 
class  ConsecutivePairFilter
 
class  DistributePairsScoreState
 Distribute contents of one container into several based on predicates. More...
 
class  DistributeQuadsScoreState
 Distribute contents of one container into several based on predicates. More...
 
class  DistributeSingletonsScoreState
 Distribute contents of one container into several based on predicates. More...
 
class  DistributeTripletsScoreState
 Distribute contents of one container into several based on predicates. More...
 
class  DynamicListPairContainer
 Store a ParticleIndexPairs. More...
 
class  DynamicListQuadContainer
 Store a ParticleIndexQuads. More...
 
class  DynamicListSingletonContainer
 Store a ParticleIndexes. More...
 
class  DynamicListTripletContainer
 Store a ParticleIndexTriplets. More...
 
class  EventPairsOptimizerState
 
class  EventQuadsOptimizerState
 
class  EventSingletonsOptimizerState
 
class  EventTripletsOptimizerState
 
class  ExclusiveConsecutivePairContainer
 
class  ExclusiveConsecutivePairFilter
 
class  InContainerPairFilter
 A filter which returns true if a container containers the Pair. More...
 
class  InContainerQuadFilter
 A filter which returns true if a container containers the Quad. More...
 
class  InContainerSingletonFilter
 A filter which returns true if a container containers the Singleton. More...
 
class  InContainerTripletFilter
 A filter which returns true if a container containers the Triplet. More...
 
class  ListPairContainer
 Store a list of ParticleIndexPairs. More...
 
class  ListQuadContainer
 Store a list of ParticleIndexQuads. More...
 
class  ListSingletonContainer
 Store a list of ParticleIndexes. More...
 
class  ListTripletContainer
 Store a list of ParticleIndexTriplets. More...
 
class  MinimumPairRestraint
 Score based on the min or max PairScore over a set. More...
 
class  MinimumPairScore
 Evaluate the min or max n particle_pair scores of the passed set. More...
 
class  MinimumQuadRestraint
 Score based on the min or max QuadScore over a set. More...
 
class  MinimumQuadScore
 Evaluate the min or max n particle_quad scores of the passed set. More...
 
class  MinimumSingletonRestraint
 Score based on the min or max SingletonScore over a set. More...
 
class  MinimumSingletonScore
 Evaluate the min or max n particle scores of the passed set. More...
 
class  MinimumTripletRestraint
 Score based on the min or max TripletScore over a set. More...
 
class  MinimumTripletScore
 Evaluate the min or max n particle_triplet scores of the passed set. More...
 
class  PairContainerSet
 Stores a set of PairContainers. More...
 
class  PairContainerStatistics
 Track statistics on a PairContainer. More...
 
class  PairsConstraint
 Apply a PairFunction to a PairContainer to maintain an invariant. More...
 
class  PairsOptimizerState
 Apply a PairFunction to a PairContainer to maintain an invariant. More...
 
class  PairsRestraint
 Applies a PairScore to each Pair in a list. More...
 
class  PredicatePairsRestraint
 Applies a PairScore to each Pair in a list based on a predicate. More...
 
class  PredicateQuadsRestraint
 Applies a QuadScore to each Quad in a list based on a predicate. More...
 
class  PredicateSingletonsRestraint
 Applies a SingletonScore to each Singleton in a list based on a predicate. More...
 
class  PredicateTripletsRestraint
 Applies a TripletScore to each Triplet in a list based on a predicate. More...
 
class  QuadContainerSet
 Stores a set of QuadContainers. More...
 
class  QuadContainerStatistics
 Track statistics on a QuadContainer. More...
 
class  QuadsConstraint
 Apply a QuadFunction to a QuadContainer to maintain an invariant. More...
 
class  QuadsOptimizerState
 Apply a QuadFunction to a QuadContainer to maintain an invariant. More...
 
class  QuadsRestraint
 Applies a QuadScore to each Quad in a list. More...
 
class  SingletonContainerSet
 Stores a set of SingletonContainers. More...
 
class  SingletonContainerStatistics
 Track statistics on a SingletonContainer. More...
 
class  SingletonsConstraint
 Apply a SingletonFunction to a SingletonContainer to maintain an invariant. More...
 
class  SingletonsOptimizerState
 Apply a SingletonFunction to a SingletonContainer to maintain an invariant. More...
 
class  SingletonsRestraint
 Applies a SingletonScore to each Singleton in a list. More...
 
class  TripletContainerSet
 Stores a set of TripletContainers. More...
 
class  TripletContainerStatistics
 Track statistics on a TripletContainer. More...
 
class  TripletsConstraint
 Apply a TripletFunction to a TripletContainer to maintain an invariant. More...
 
class  TripletsOptimizerState
 Apply a TripletFunction to a TripletContainer to maintain an invariant. More...
 
class  TripletsRestraint
 Applies a TripletScore to each Triplet in a list. More...
 

Typedefs

typedef IMP::Vector
< IMP::Pointer
< AllBipartitePairContainer > > 
AllBipartitePairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< AllBipartitePairContainer > > 
AllBipartitePairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< AllPairContainer > > 
AllPairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< AllPairContainer > > 
AllPairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ClosePairContainer > > 
ClosePairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ClosePairContainer > > 
ClosePairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ConnectingPairContainer > > 
ConnectingPairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ConnectingPairContainer > > 
ConnectingPairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ConsecutivePairContainer > > 
ConsecutivePairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ConsecutivePairContainer > > 
ConsecutivePairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< DynamicListPairContainer > > 
DynamicListPairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< DynamicListPairContainer > > 
DynamicListPairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< DynamicListQuadContainer > > 
DynamicListQuadContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< DynamicListQuadContainer > > 
DynamicListQuadContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< DynamicListSingletonContainer > > 
DynamicListSingletonContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< DynamicListSingletonContainer > > 
DynamicListSingletonContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< DynamicListTripletContainer > > 
DynamicListTripletContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< DynamicListTripletContainer > > 
DynamicListTripletContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< InContainerPairFilter > > 
InContainerPairFilters
 
typedef IMP::Vector
< IMP::WeakPointer
< InContainerPairFilter > > 
InContainerPairFiltersTemp
 
typedef IMP::Vector
< IMP::Pointer
< InContainerQuadFilter > > 
InContainerQuadFilters
 
typedef IMP::Vector
< IMP::WeakPointer
< InContainerQuadFilter > > 
InContainerQuadFiltersTemp
 
typedef IMP::Vector
< IMP::Pointer
< InContainerSingletonFilter > > 
InContainerSingletonFilters
 
typedef IMP::Vector
< IMP::WeakPointer
< InContainerSingletonFilter > > 
InContainerSingletonFiltersTemp
 
typedef IMP::Vector
< IMP::Pointer
< InContainerTripletFilter > > 
InContainerTripletFilters
 
typedef IMP::Vector
< IMP::WeakPointer
< InContainerTripletFilter > > 
InContainerTripletFiltersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ListPairContainer > > 
ListPairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ListPairContainer > > 
ListPairContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ListQuadContainer > > 
ListQuadContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ListQuadContainer > > 
ListQuadContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ListSingletonContainer > > 
ListSingletonContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ListSingletonContainer > > 
ListSingletonContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< ListTripletContainer > > 
ListTripletContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< ListTripletContainer > > 
ListTripletContainersTemp
 
typedef IMP::Vector
< IMP::Pointer
< MinimumPairScore > > 
MinimumPairScores
 
typedef IMP::Vector
< IMP::WeakPointer
< MinimumPairScore > > 
MinimumPairScoresTemp
 
typedef IMP::Vector
< IMP::Pointer
< MinimumQuadScore > > 
MinimumQuadScores
 
typedef IMP::Vector
< IMP::WeakPointer
< MinimumQuadScore > > 
MinimumQuadScoresTemp
 
typedef IMP::Vector
< IMP::Pointer
< MinimumSingletonScore > > 
MinimumSingletonScores
 
typedef IMP::Vector
< IMP::WeakPointer
< MinimumSingletonScore > > 
MinimumSingletonScoresTemp
 
typedef IMP::Vector
< IMP::Pointer
< MinimumTripletScore > > 
MinimumTripletScores
 
typedef IMP::Vector
< IMP::WeakPointer
< MinimumTripletScore > > 
MinimumTripletScoresTemp
 
typedef IMP::Vector
< IMP::Pointer
< PairsConstraint > > 
PairsConstraints
 
typedef IMP::Vector
< IMP::WeakPointer
< PairsConstraint > > 
PairsConstraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< PairsOptimizerState > > 
PairsOptimizerStates
 
typedef IMP::Vector
< IMP::WeakPointer
< PairsOptimizerState > > 
PairsOptimizerStatesTemp
 
typedef IMP::Vector
< IMP::Pointer< PairsRestraint > > 
PairsRestraints
 
typedef IMP::Vector
< IMP::WeakPointer
< PairsRestraint > > 
PairsRestraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< QuadsConstraint > > 
QuadsConstraints
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadsConstraint > > 
QuadsConstraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< QuadsOptimizerState > > 
QuadsOptimizerStates
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadsOptimizerState > > 
QuadsOptimizerStatesTemp
 
typedef IMP::Vector
< IMP::Pointer< QuadsRestraint > > 
QuadsRestraints
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadsRestraint > > 
QuadsRestraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< SingletonsConstraint > > 
SingletonsConstraints
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonsConstraint > > 
SingletonsConstraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< SingletonsOptimizerState > > 
SingletonsOptimizerStates
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonsOptimizerState > > 
SingletonsOptimizerStatesTemp
 
typedef IMP::Vector
< IMP::Pointer
< SingletonsRestraint > > 
SingletonsRestraints
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonsRestraint > > 
SingletonsRestraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< TripletsConstraint > > 
TripletsConstraints
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletsConstraint > > 
TripletsConstraintsTemp
 
typedef IMP::Vector
< IMP::Pointer
< TripletsOptimizerState > > 
TripletsOptimizerStates
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletsOptimizerState > > 
TripletsOptimizerStatesTemp
 
typedef IMP::Vector
< IMP::Pointer
< TripletsRestraint > > 
TripletsRestraints
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletsRestraint > > 
TripletsRestraintsTemp
 

Functions

template<class Container , class Before , class After >
Constraintcreate_constraint (Before *b, After *a, Container *c, std::string name=std::string())
 
template<class Container >
PairPredicatecreate_in_container_filter (Container *c, std::string name=std::string())
 
template<class Score , class Container >
Restraintcreate_restraint (Score *s, Container *c, std::string name=std::string())
 
double get_slack_estimate (const ParticlesTemp &ps, double upper_bound, double step, const RestraintsTemp &restraints, bool derivatives, Optimizer *opt, ClosePairContainer *cpc)
 

Standard module functions

All IMP modules have a set of standard functions to help get information about the module and about files associated with the module.

std::string get_module_version ()
 
std::string get_module_name ()
 
std::string get_data_path (std::string file_name)
 Return the full path to one of this module's data files. More...
 
std::string get_example_path (std::string file_name)
 Return the full path to one of this module's example files. More...
 

Typedef Documentation

A vector of reference-counting object pointers.

Definition at line 65 of file AllBipartitePairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
AllBipartitePairContainer

Definition at line 65 of file AllBipartitePairContainer.h.

A vector of reference-counting object pointers.

Definition at line 54 of file AllPairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
AllPairContainer

Definition at line 54 of file AllPairContainer.h.

A vector of reference-counting object pointers.

Definition at line 127 of file ClosePairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ClosePairContainer

Definition at line 127 of file ClosePairContainer.h.

A vector of reference-counting object pointers.

Definition at line 83 of file ConnectingPairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ConnectingPairContainer

Definition at line 83 of file ConnectingPairContainer.h.

A vector of reference-counting object pointers.

Definition at line 71 of file ConsecutivePairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ConsecutivePairContainer

Definition at line 71 of file ConsecutivePairContainer.h.

A vector of reference-counting object pointers.

Definition at line 78 of file DynamicListPairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DynamicListPairContainer

Definition at line 78 of file DynamicListPairContainer.h.

A vector of reference-counting object pointers.

Definition at line 78 of file DynamicListQuadContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DynamicListQuadContainer

Definition at line 78 of file DynamicListQuadContainer.h.

A vector of reference-counting object pointers.

Definition at line 78 of file DynamicListSingletonContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DynamicListSingletonContainer

Definition at line 78 of file DynamicListSingletonContainer.h.

A vector of reference-counting object pointers.

Definition at line 78 of file DynamicListTripletContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
DynamicListTripletContainer

Definition at line 78 of file DynamicListTripletContainer.h.

A vector of reference-counting object pointers.

Definition at line 56 of file InContainerPairFilter.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
InContainerPairFilter

Definition at line 56 of file InContainerPairFilter.h.

A vector of reference-counting object pointers.

Definition at line 56 of file InContainerQuadFilter.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
InContainerQuadFilter

Definition at line 56 of file InContainerQuadFilter.h.

A vector of reference-counting object pointers.

Definition at line 56 of file InContainerSingletonFilter.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
InContainerSingletonFilter

Definition at line 56 of file InContainerSingletonFilter.h.

A vector of reference-counting object pointers.

Definition at line 56 of file InContainerTripletFilter.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
InContainerTripletFilter

Definition at line 56 of file InContainerTripletFilter.h.

A vector of reference-counting object pointers.

Definition at line 79 of file ListPairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ListPairContainer

Definition at line 79 of file ListPairContainer.h.

A vector of reference-counting object pointers.

Definition at line 79 of file ListQuadContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ListQuadContainer

Definition at line 79 of file ListQuadContainer.h.

A vector of reference-counting object pointers.

Definition at line 79 of file ListSingletonContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ListSingletonContainer

Definition at line 79 of file ListSingletonContainer.h.

A vector of reference-counting object pointers.

Definition at line 79 of file ListTripletContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
ListTripletContainer

Definition at line 79 of file ListTripletContainer.h.

A vector of reference-counting object pointers.

Definition at line 44 of file MinimumPairScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
MinimumPairScore

Definition at line 44 of file MinimumPairScore.h.

A vector of reference-counting object pointers.

Definition at line 44 of file MinimumQuadScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
MinimumQuadScore

Definition at line 44 of file MinimumQuadScore.h.

A vector of reference-counting object pointers.

Definition at line 44 of file MinimumSingletonScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
MinimumSingletonScore

Definition at line 44 of file MinimumSingletonScore.h.

A vector of reference-counting object pointers.

Definition at line 44 of file MinimumTripletScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
MinimumTripletScore

Definition at line 44 of file MinimumTripletScore.h.

A vector of reference-counting object pointers.

Definition at line 72 of file PairsConstraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
PairsConstraint

Definition at line 72 of file PairsConstraint.h.

A vector of reference-counting object pointers.

Definition at line 49 of file PairsOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
PairsOptimizerState

Definition at line 49 of file PairsOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 62 of file PairsRestraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
PairsRestraint

Definition at line 62 of file PairsRestraint.h.

A vector of reference-counting object pointers.

Definition at line 72 of file QuadsConstraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
QuadsConstraint

Definition at line 72 of file QuadsConstraint.h.

A vector of reference-counting object pointers.

Definition at line 49 of file QuadsOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
QuadsOptimizerState

Definition at line 49 of file QuadsOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 62 of file QuadsRestraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
QuadsRestraint

Definition at line 62 of file QuadsRestraint.h.

A vector of reference-counting object pointers.

Definition at line 72 of file SingletonsConstraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
SingletonsConstraint

Definition at line 72 of file SingletonsConstraint.h.

A vector of reference-counting object pointers.

Definition at line 49 of file SingletonsOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
SingletonsOptimizerState

Definition at line 49 of file SingletonsOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 62 of file SingletonsRestraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
SingletonsRestraint

Definition at line 62 of file SingletonsRestraint.h.

A vector of reference-counting object pointers.

Definition at line 72 of file TripletsConstraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
TripletsConstraint

Definition at line 72 of file TripletsConstraint.h.

A vector of reference-counting object pointers.

Definition at line 49 of file TripletsOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
TripletsOptimizerState

Definition at line 49 of file TripletsOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 62 of file TripletsRestraint.h.

A vector of weak (non reference-counting) pointers to specified objects.

See Also
TripletsRestraint

Definition at line 62 of file TripletsRestraint.h.

Function Documentation

template<class Container , class Before , class After >
Constraint* IMP::container::create_constraint ( Before *  b,
After *  a,
Container *  c,
std::string  name = std::string() 
)

Helper to create a ContainerConstraint.

Definition at line 34 of file container/generic.h.

template<class Container >
PairPredicate* IMP::container::create_in_container_filter ( Container *  c,
std::string  name = std::string() 
)

Create a filter that returns whether the pair, or its flip is contained in the passed container.

Note
This is different than the InContainerPairFilter.

Definition at line 44 of file container/generic.h.

template<class Score , class Container >
Restraint* IMP::container::create_restraint ( Score *  s,
Container *  c,
std::string  name = std::string() 
)

Create a restraint from a score and a container. The resulting restraint is, in general, more efficient than creating an, eg, PairsRestraint.

A Python version of this is provided, but it produces a slightly less efficient restraint.

Definition at line 26 of file container/generic.h.

std::string IMP::container::get_data_path ( std::string  file_name)

Return the full path to one of this module's data files.

To read the data file "data_library" that was placed in the data directory of this module, do something like

std::ifstream in(IMP::container::get_data_path("data_library"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own data directory, so be sure to use this function from the correct module.
std::string IMP::container::get_example_path ( std::string  file_name)

Return the full path to one of this module's example files.

To read the example file "example_protein.pdb" that was placed in the examples directory of this module, do something like

std::ifstream in(IMP::container::get_example_path("example_protein.pdb"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own example directory, so be sure to use this function from the correct module.
double IMP::container::get_slack_estimate ( const ParticlesTemp &  ps,
double  upper_bound,
double  step,
const RestraintsTemp &  restraints,
bool  derivatives,
Optimizer *  opt,
ClosePairContainer *  cpc 
)

Estimate the proper slack based on

  • the time taken to evaluate the passed restraints for a given number of particles in the non-bonded list
  • the number of pairs in the list as a function of slack size
  • the amount the particles are moved by the optimizer
  • the time taken to compute the close pairs as a function of slack size

For best results, make the particles start in a that is "typical" for the optimization.