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 DihedralForceHarmonic
Harmonic dihedral(improper) potential DihedralForceHarmonic
OPLS dihedral potential DihedralForceOplsCosine
Principle of dihedral torsion

Harmonic dihedral potential

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 angles set 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 = galamost.DihedralForceHarmonic(all_info)
dihedralforce.setParams('A-B-B-A', 10.0, 0.0)
app.add(dihedralforce)

Harmonic dihedral(improper) potential

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 set 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.

Example:

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

OPLS dihedral potential

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] \end{eqnarray*}

Coefficients:

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

Note

The dihedral angles set 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.

Example:

dihedralforce = galamost.DihedralForceOplsCosine(all_info)
dihedralforce.setParams('C_33-C_32-C_32-C_32', 0.0, 2.95188, -0.566963, 6.57940, 0.0)
app.add(dihedralforce)