Chain tether forces

class mdk::Tether : public mdk::Force

Harmonic tether forces between consecutive residues in a chain.

Public Functions

explicit Tether(bool fromNative)

Construct a Tether object.

Parameters

fromNative – Whether the equilibrium bond distances should be derived from the native structure or set to a default value (3.8 angstrem).

virtual void bind(Simulation &simulation) override

Bind the object to the simulation. Additionally we fetch the chain data to determine which of the pairs (i, i+1) are connected.

Parameters

simulationSimulation to bind to.

virtual void asyncPart(Dynamics &dynamics) override

Asynchronous part of the force computation.

Parameters

dynamicsDynamics object to add potential energy and forces to.

Private Members

Harmonic harm

The underlying harmonic force kernel. It is separated from this class because it’s used in some other places, notably for standard SSBOND interactions.

bool fromNative

Whether the equilibrium bond distances should be derived from the native structure or set to a default value (3.8 angstrem).

int n

Number of residues, saved for convenience.

Scalars dist0

A list of equilibrium distances.

Bytes isConnected

isConnected[i] = 1 if pair (i, i+1) is entirely in a chain, i.e. is tethered; 0 otherwise.