ENERGY_NON_BONDING


Function

Energy_Non_Bonding contains procedures for calculating the MM non-bonding energy of a system. There are, in fact, currently three versions of this module which use different methods of calculation:

  1. All non-bonding interactions are calculated.
  2. An atom-based force-switching truncation method is used.
  3. An Ewald method is used.

All modules have essentially the same structure with procedure interfaces that are similar. The major differences occur for the procedure ENERGY_NON_BONDING_OPTIONS which sets the options for the calculation and in the implementation of certain options. These differences are explained further below.

Full details about the use of the different versions of this module can be found in chapters 4 and 9 of the book A Practical Introduction to the Simulation of Molecular Systems.





ENERGY_NON_BONDING (All Interactions)


This version of the module calculates all non-bonding interactions without truncation. Periodic boundary conditions and quantum atoms cannot be handled and will produce errors.


Dependencies

Module Variables
CONSTANTS ELECT_CONST
DEFINITIONS DP
IO_UNITS OUTPUT
STATUS ERROR
ATOMS ATMCRD, ATMFIX, NATOMS, NATOMSQM
MM_TERMS Many public items in the module.
SYMMETRY QBOX


Public Variables

None.

Public Procedures

There are three public subroutines in this module that the user is likely to want to use.

SubroutinePurpose
ENERGY_NON_BONDING_INTERACTION Calculate the non-bonding interaction energy between two distinct groups of atoms.
ENERGY_NON_BONDING_OPTIONS Set the options for a non-bonding energy calculation.
ENERGY_NON_BONDING_SELF Calculate the non-bonding self energy for a group of atoms.


ENERGY_NON_BONDING_INTERACTION

Argument Type Intent Optional Purpose
EELECT Real Out No The electrostatic energy.
ELJ Real Out No The Lennard-Jones.
SELECTION1 Logical(1:NATOMS) In No A first atom selection.
SELECTION2 Logical(1:NATOMS) In No A second atom selection.


Error Meaning
There is overlap between the atom selections. Two or more atoms occur in both atom selections.


ENERGY_NON_BONDING_OPTIONS

Argument Type Intent Optional Default Purpose
DIELECTRIC Real In Yes 1 The dielectric constant.


ENERGY_NON_BONDING_SELF

Argument Type Intent Optional Purpose
EELECT Real Out No The electrostatic energy.
ELJ Real Out No The Lennard-Jones.
SELECTION Logical(1:NATOMS) In No An atom selection.


Stability

Stable.



ENERGY_NON_BONDING (Atom-Based Force-Switching)


This version of the module uses the atom-based force-switching truncation method for the calculation of the non-bonding interactions. Periodic boundary conditions and quantum atoms can be handled by this module.


Dependencies

Module Variables
CONSTANTS ELECT_CONST, UNDEFINED
DEFINITIONS DP
IO_UNITS OUTPUT
STATUS ERROR
ATOMS ATMCRD, ATMFIX, ATMIND, ATMNAM, ATMNUM, ATMQMI, NATOMS, NATOMSMM, NATOMSQM, NFREE
MM_TERMS Many public items in the module.
MOPAC_PARAMETERS NATORB
SEQUENCE NRESID, RESIND
SYMMETRY BOXL, QBOX


Public Variables

None.

Public Procedures

There are four public subroutines in this module that the user is likely to want to use.

SubroutinePurpose
ENERGY_NON_BONDING_INTERACTION Calculate the non-bonding interaction energy between two distinct groups of atoms.
ENERGY_NON_BONDING_OPTIONS Set the options for a non-bonding energy calculation.
ENERGY_NON_BONDING_SELF Calculate the non-bonding self energy for a group of atoms.
ENERGY_NON_BONDING_STATISTICS Print some statistics about the non-bonding energy calculation.


The descriptions of the subroutines ENERGY_NON_BONDING_INTERACTION and ENERGY_NON_BONDING_SELF are the same as those given above so please refer there for details.



ENERGY_NON_BONDING_OPTIONS

Argument Type Intent Optional Default Purpose
LIST_CUTOFF Real In Yes A large number The truncation cutoff for list generation.
OUTER_CUTOFF Real In Yes A large number The truncation cutoff for evaluation of the interactions.
INNER_CUTOFF Real In Yes A large number The cutoff for application of the force-switching function.
DIELECTRIC Real In Yes 1 The dielectric constant.
MINIMUM_IMAGE Logical In Yes .FALSE. The minimum image flag.
PRINT Logical In Yes .FALSE. The flag as to whether to print information during the non-bonding list generation.


Error Meaning
Invalid CUT_LIST/CUT_OFF values. The value given for CUT_OFF was greater than that for CUT_LIST.


ENERGY_NON_BONDING_STATISTICS

This subroutine has no arguments.

Stability

The algorithm used for creating the non-bonding interaction lists could be made more efficient (and independent of the sequence information). Otherwise, stable.



ENERGY_NON_BONDING (Ewald Method)


This version of the module uses the Ewald method for the calculation of the non-bonding interactions. This module only works with periodic boundary conditions and cannot handle calculations of the virial, second derivatives or quantum atoms (as yet). The interaction and self energy subroutines are also not implemented.


Dependencies

Module Variables
CONSTANTS ELECT_CONST, PI
DEFINITIONS DP
IO_UNITS OUTPUT
SPECIAL_FUNCTIONS ERFC
STATUS ERROR
ATOMS ATMCRD, NATOMS, NATOMSQM, NFREE
MM_TERMS Many public items in the module.
SEQUENCE NRESID, RESIND
SYMMETRY BOXL, QBOX


Public Variables

None.

Public Procedures

There are two public subroutines in this module that the user is likely to want to use.

SubroutinePurpose
ENERGY_NON_BONDING_OPTIONS Set the options for a non-bonding energy calculation.
ENERGY_NON_BONDING_STATISTICS Print some statistics about the non-bonding energy calculation.


The subroutines ENERGY_NON_BONDING_INTERACTION and ENERGY_NON_BONDING_SELF are not currently implemented in this module whereas the subroutine ENERGY_NON_BONDING_STATISTICS has the same interface and usage as the subroutine of the same name described above.



ENERGY_NON_BONDING_OPTIONS

Argument Type Intent Optional Default Purpose
LIST_CUTOFF Real In Yes A large number The truncation cutoff for list generation.
OUTER_CUTOFF Real In Yes A large number The truncation cutoff for evaluation of the interactions.
KAPPA Real In Yes 0.2 The Ewald kappa constant.
DIELECTRIC Real In Yes 1 The dielectric constant.
KMAXIMUM Real(1:3) In Yes (0,0,0) The maximum k-vector components.
TINFOIL Logical In Yes .TRUE. The tin-foil boundary condition flag.
PRINT Logical In Yes .FALSE. The flag as to whether to print information during the non-bonding list generation.


Error Meaning
Invalid CUT_LIST/CUT_OFF values. The value given for CUT_OFF was greater than that for CUT_LIST.


Stability

There are many improvements that need to be made to this module. Ultimately a particle mesh Ewald method needs to be implemented.



Back to the DYNAMO Home-Page.