# meld.system.restraints.HyperbolicDistanceRestraint

class meld.system.restraints.HyperbolicDistanceRestraint(system, scaler, ramp, atom1, atom2, r1, r2, r3, r4, k, asymptote)[source]

Hyperbolic distance restraint between two atoms

__init__(system, scaler, ramp, atom1, atom2, r1, r2, r3, r4, k, asymptote)[source]

Initialize a HyperbolicDistanceRestraint There are five regions:

```I:    r < r1

II:  r1 < r < r2

III: r2 < r < r3

IV:  r3 < r < r4

V:   r4 < r
```

The energy is linear in region I, quadratic in II and IV, and zero in III.

The energy is hyperbolic in region V, with an asymptotic value set by the parameter asymptote. The energy will be 1/3 of the asymptotic value at r=r4. The distance between r3 and r4 controls the steepness of the potential.

Parameters
• system (`ISystem`) – the system this restraint belongs to

• scaler (`Optional`[`RestraintScaler`]) – scale the force constant with alpha

• ramp (`Optional`[`TimeRamp`]) – ramp up restraint over time

• atom1 (`AtomIndex`) – first atom in bond

• atom2 (`AtomIndex`) – second atom in bond

• r1 (`Quantity`) – distance

• r2 (`Quantity`) – distance

• r3 (`Quantity`) – distance

• r4 (`Quantity`) – distance

• asymptote (`Quantity`) – maximum energy in region V

Methods

 `__init__`(system, scaler, ramp, atom1, atom2, ...) Initialize a HyperbolicDistanceRestraint There are five regions.