fene

mdhelper.openmm.bond.fene(global_args: dict[str, float | Quantity] = None, wca: bool = True, **kwargs) tuple[CustomBondForce, CustomNonbondedForce][source]

Implements the finite extensible nonlinear elastic (FENE) potential used for bead-spring polymer models.

The potential energy between two bonded particles is given by

\[u_\textrm{FENE}=-\frac{1}{2}k_{12}r_{0,12}^2 \ln{\left[1-\left(\frac{r_{12}}{r_{0,12}}\right)^2\right]} +4\epsilon_{12}\left[\left(\frac{\sigma_{12}}{r_{12}}\right)^{12} -\left(\frac{\sigma_{12}}{r_{12}}\right)^6\right]+\epsilon_{12}\]

where \(k_{12}\) is the bond coefficient in \(\textrm{kJ}/(\textrm{nm}^2\cdot\textrm{mol})\), \(r_{0,12}\) is the equilibrium bond length in \(\textrm{nm}\), \(\sigma_{12}\) is the average particle size in \(\textrm{nm}\), and \(\epsilon_{12}\) is the dispersion energy in \(\textrm{kJ/mol}\). \(k_{12}\), \(r_{0,12}\), \(\sigma_{12}\) and \(\epsilon_{12}\) are determined from per-bond and per-particle parameters k, r0, sigma and epsilon, respectively, which are set using openmm.openmm.CustomBondForce.addBond() and openmm.openmm.NonbondedForce.addParticle().

Parameters:
global_argsdict, optional

Constant values \(k_{12}\) and \(r_{0,12}\) to use instead of per-bond parameters. The corresponding per-bond parameters will not be registered, but the remaining per-bond parameters will still have to be provided in their default order.

wcabool, default: True

Determines whether the Weeks–Chandler–Andersen (WCA) potential is included.

**kwargs

Keyword arguments to be passed to mdhelper.openmm.pair.wca() if wca=True.

Returns:
bond_feneopenmm.CustomBondForce

FENE bond potential.

pair_wcaopenmm.CustomNonbondedForce

WCA pair potential, if wca=True.