CAPSChain Assembly and Packing Suite

Theory · 4 methods

Minimisers

What CAPS computes, as it computes it: the equation, its symbols with CAPS's defaults, when to use the method, the source file, the tests that check it, and any departure from the cited method.

L-BFGS

A quasi-Newton minimiser that approximates the inverse Hessian from the last few steps (two-loop recursion). It is the fastest of CAPS's minimisers for smooth energies of thousands of atoms.

$$d = -H_k\nabla E, \qquad H_k \text{ from the last } m \text{ pairs } \left(s_i = x_{i+1} - x_i,\; y_i = \nabla E_{i+1} - \nabla E_i\right)$$

Liu & Nocedal 1989

SymbolMeaningIn CAPS
mstored pairs10
ftolstop when the largest atomic force is below0.5 kcal/mol/Å by default
etolor the relative energy change is below10⁻⁸

When to use it

The default minimiser. After growth with a contact scale below 1, run the capped push-off first (Relax does by default).

Source
core/src/relax.cpp
Tested by
Relax.EveryMinimiserLowersEnergy · Relax.CompressesOverlappingCellToTarget
Departure from the reference
none

References

  1. Liu, D. C., Nocedal, J., "On the limited memory BFGS method for large scale optimization", Math. Program. 45, 503–528 (1989). doi:10.1007/BF01589116

FIRE

A damped dynamics minimiser: velocities are mixed towards the force direction and the time step grows while the power F·v stays positive; the motion stops when it turns uphill.

$$\begin{gathered}v \leftarrow (1 - \alpha)\,v + \alpha\,|v|\,\frac{F}{|F|} \\ \text{if } F\cdot v < 0:\quad v = 0,\;\; \Delta t \leftarrow f_\mathrm{dec}\,\Delta t,\;\; \alpha = \alpha_\mathrm{start}\end{gathered}$$

Bitzek et al. 2006

SymbolMeaningIn CAPS
α_startmixing0.1
f_inc, f_dectime-step growth and cut1.1, 0.5
N_minsteps before growth5

When to use it

Rough starts with large forces, where line searches struggle.

Source
core/src/relax.cpp
Tested by
Relax.EveryMinimiserLowersEnergy
Departure from the reference
standard parameters of the paper

References

  1. Bitzek, E., Koskinen, P., Gähler, F., Moseler, M., Gumbsch, P., "Structural relaxation made simple", Phys. Rev. Lett. 97, 170201 (2006). doi:10.1103/PhysRevLett.97.170201

Conjugate gradients and steepest descent

Steepest descent follows the force; Polak–Ribière conjugate gradients mixes in the previous direction so successive steps do not undo each other.

$$d_{k+1} = F_{k+1} + \beta d_k, \qquad \beta = \max\left(0,\; \frac{F_{k+1}\cdot(F_{k+1} - F_k)}{F_k\cdot F_k}\right)$$

Polak & Ribière 1969

SymbolMeaningIn CAPS
βPolak–Ribière coefficient, reset to 0 when negative—
ftolforce tolerance0.5 kcal/mol/Å

When to use it

Comparison and teaching; L-BFGS is faster for the same tolerance.

Source
core/src/relax.cpp
Tested by
Relax.EveryMinimiserLowersEnergy
Departure from the reference
none

References

  1. Polak, E., Ribière, G., "Note sur la convergence de méthodes de directions conjuguées", Rev. Fr. Inform. Rech. Opér. 3, 35–43 (1969)

Capped-force push-off

Overlapping atoms (from growth with lowered contact limits, or packing) make Lennard-Jones forces explode. The push-off caps them: inside the radius where the force would exceed the cap the potential becomes linear, and the cap is raised stage by stage while minimising. Optionally the push-off runs first as NVT dynamics, as in the paper: the cap is raised geometrically over a set time (the λ ramp) so chains move apart by motion before the minimisation stages.

$$\begin{gathered}F_\mathrm{LJ}(r) \to \operatorname{sign}(F)\,\min\left(|F_\mathrm{LJ}(r)|,\, F_\mathrm{cap}\right), \qquad F_\mathrm{cap} = 5, 20, 100, \dots, F_\mathrm{final}\ \text{kcal/mol/Å} \\ \text{MD:}\ \ F_{\mathrm{cap},k} = 5\left(\frac{F_\mathrm{final}}{5}\right)^{k/9}, \quad k = 0, \dots, 9, \ \text{each for } t_\mathrm{ramp}/10\end{gathered}$$

after Auhl et al. 2003

SymbolMeaningIn CAPS
F_capcap of each stage5, 20, 100, then the chosen final cap (500 by default)
t_rampλ ramp: the time of the MD push-off20 ps on the Relax board; 0 = minimisation stages only
TNVT temperature of the MD push-off (Bussi thermostat, 1 fs)300 K

When to use it

Always before minimising a grown or packed cell; Relax does it by default.

Source
core/src/relax.cpp · core/src/field.cpp (force_cap)
Tested by
Equilibrate.PushoffTamesOverlaps · Relax.PushoffByMdRampsTheCap
Departure from the reference
the cap is raised in ten NVT segments rather than continuously; Coulomb terms are off during the push-off

References

  1. Auhl, R., Everaers, R., Grest, G. S., Kremer, K., Plimpton, S. J., "Equilibration of long chain polymer melts in computer simulations", J. Chem. Phys. 119, 12718–12728 (2003). doi:10.1063/1.1628670