timemachine
timemachine copied to clipboard
Add resolve_intramol_clashes
Add a utility function that energy-minimizes a mol
's 0'th conformer, while otherwise remaining as close as possible to the input conformer.
For example, if mol
has a pair of atoms placed on top of each other:
(resulting in |force(x)| of +inf)
resolve_intramol_clashes(mol, ff)
will produce:
This is implemented by introducing a softened potential function U(x, lam)
, with lam
increasing the distances used in NonbondedPairListPrecomputed
. At lam=1
all intramolecular pairs ij
have their effective distance d_ij
increased to >= 0.75 * sig_ij
, and at lam=0
we recover the original U(x)
.
A restrained minimization is performed at lam=1
, then another restrained minimization is performed at lam=0
.