Dihedral torsion

Overview

Dihedrals impose forces on specific quadruplets of particles to model the rotation about chemical bonds. The dihedrals are specified in XML format configuration file with the format:

<dihedral>
dihedral_type(str)  particle_i(int)  particle_j(int)  particle_k(int)  particle_l(int)
...
</dihedral>

By themselves, dihedrals do nothing. Only when you specify a dihedral force in script(i.e. DihedralForceHarmonic), are forces actually calculated between the listed particles.

Harmonic dihedral potential (proper)

DihedralForceHarmonic

Harmonic dihedral potential (improper)

DihedralForceHarmonic

OPLS dihedral potential (proper)

DihedralForceOplsCosine

Ryckaert-Bellemans potential (proper)

DihedralForceRyckaertBellemans

Amber potential (proper and improper)

DihedralForceAmberCosine

Principle of dihedral torsion

Harmonic dihedral potential (proper)

Description:

\begin{eqnarray*} V_{\mathrm{dihedral}}(\varphi)=k\left[ 1+f\cos \left( \varphi-\delta \right) \right] \end{eqnarray*}

Coefficients:

  • \(k\) - multiplicative constant k (in units of energy)

  • \(\delta\) - phase shift angle delta (in radians)

  • \(f\) - factor f (unitless) - optional: defaults to -1.0

Note

The dihedral angle delta in script are in the unit of degree, and the program will convert them into radian automatically.

class DihedralForceHarmonic(all_info)

The constructor of dihedral harmonic interaction object.

Parameters:

all_info (AllInfo) – The system information.

setParams(string name, float k, float delta)

specifies the dihedral harmonic force parameters with dihedral type, multiplicative constant, and phase shift angle.

setCosFactor(float f)

specifies the dihedral harmonic force parameters with factor.

Example:

dihedralforce = gala.DihedralForceHarmonic(all_info)
dihedralforce.setParams('A-B-B-A', 10.0, 0.0)
app.add(dihedralforce)

Harmonic dihedral potential (improper)

Description:

\begin{eqnarray*} V_{\mathrm{dihedral}}(\varphi)=k\left( \varphi-\delta \right)^2 \end{eqnarray*}

Coefficients:

  • \(k\) - potential constant k (in units of energy/radians^2)

  • \(\delta\) - phase shift angle delta (in radians)

Note

The dihedral angles delta in script are in the unit of degree, and the program will convert them into radian automatically.

class DihedralForceHarmonic(all_info)

The constructor of dihedral harmonic interaction object.

Parameters:

all_info (AllInfo) – The system information.

setParams(string name, float k, float delta)

specifies the dihedral harmonic force parameters with dihedral type, potential constant, and phase shift angle.

setParams(string name, float k, float delta, int property)

specifies the dihedral harmonic force parameters with dihedral type, potential constant, phase shift angle, and the property of HarmonicProp::proper or HarmonicProp::improper.

Example:

dihedralforce = gala.DihedralForceHarmonic(all_info)
dihedralforce.setParams('A-B-B-A', 10.0, 0.0, gala.HarmonicProp.improper)
app.add(dihedralforce)

OPLS dihedral potential (proper)

Description:

\begin{eqnarray*} V_{\mathrm{dihedral}}(\varphi)=k_{1}+k_{2}\left[ 1+\cos \left( \varphi-\delta \right) \right]+k_{3} \left[ 1-\cos \left( 2\varphi-2\delta \right) \right] \\ + k_{4} \left[ 1+\cos \left( 3\varphi-3\delta \right) \right] + k_{5}\left[ 1 - \cos \left( 4\varphi-4\delta \right) \right] \end{eqnarray*}

Coefficients:

  • \(k_1, k_2, k_3, k_4, k_5\) - multiplicative constant k1, k2, k3, k4, k5 (in units of energy)

  • \(\delta\) - phase shift angle delta (in radians)

Note

The dihedral angles delta in script are in the unit of degree, and the program will convert them into radian automatically.

class DihedralForceOPLSCosine(all_info)

The constructor of dihedral OPLS cosine interaction object.

Parameters:

all_info (AllInfo) – The system information.

setParams(string name, float k1, float k2, float k3, float k4, float delta)

specifies the dihedral OPLS cosine force parameters with dihedral type, k1, k2, k3, k4, and phase shift angle. In this function, the default k5 is 0.0.

setParams(string name, float k1, float k2, float k3, float k4, loat k5, float delta)

specifies the dihedral OPLS cosine force parameters with dihedral type, k1, k2, k3, k4, k5, and phase shift angle.

Example:

dihedralforce = gala.DihedralForceOPLSCosine(all_info)
dihedralforce.setParams('C_33-C_32-C_32-C_32', 0.0, 2.95188, -0.566963, 6.57940, 2.432826, 0.0)
app.add(dihedralforce)

Ryckaert-Bellemans potential (proper)

Description:

\begin{eqnarray*} V_{\mathrm{dihedral}}(\varphi)= \sum_{n=0}^{5}C_{n}\left( \cos \left( \varphi \right) \right)^n \end{eqnarray*}

Coefficients:

  • \(C_n\) - multiplicative constant C0, C1, C2, C3, C4, C5 (in units of energy)

class DihedralForceRyckaertBellemans(all_info)

The constructor of dihedral RB interaction object.

Parameters:

all_info (AllInfo) – The system information.

setParams(string name, float c0, float c1, float c2, float c3, float c4, float c5)

specifies the dihedral RB force parameters with dihedral type, c0, c1, c2, c3, c4, and c5.

Example:

pfh = gala.DihedralForceRyckaertBellemans(all_info)
pfh.setParams("A-A-B-B", 30.334, 0.0, -30.334, 0.0, 0.0, 0.0)
app.add(pfh)

Amber potential (proper and improper)

Description:

\begin{eqnarray*} V_{\mathrm{dihedral}}(\varphi)= k_{1} \left( 1 + \cos \left( \varphi - \delta_{1} \right) \right) + k_{2} \left( 1 + \cos \left( 2\varphi - \delta_{2} \right) \right) \\ + k_{3} \left( 1 + \cos \left( 3\varphi - \delta_{3} \right) \right) + k_{4} \left( 1 + \cos \left( 4\varphi - \delta_{4} \right) \right) \end{eqnarray*}

Coefficients:

  • \(k_1, k_2, k_3, k_4\) - multiplicative constant k1, k2, k3, k4 (in units of energy)

  • \(\delta_1, \delta_2, \delta_3, \delta_4\) - multiplicative constant delta1, delta2, delta3, delta4 (in units of energy)

Note

The delta1, delta2, delta3, delta4 in script are in the unit of degree, and the program will convert them into radian automatically.

class DihedralForceAmberCosine(all_info)

The constructor of dihedral Amber interaction object.

Parameters:

all_info (AllInfo) – The system information.

setParams(string name, float k1, float k2, float k3, float k4, float delta1, float delta2, float delta3, float delta4, int property)

specifies the dihedral Amber force parameters with dihedral type, k1, k2, k3, k4, delta1, delta2, delta3, delta4, and the property of AmberProp::proper or AmberProp::improper.

Example:

pfh = gala.DihedralForceAmberCosine(all_info)
pfh.setParams("A-A-B-B", 1.0, 0.0, 0.0, 0.0, 180.0, 0.0, 0.0, 0.0,
          gala.AmberProp.proper)
app.add(pfh)