Technical Documentation
Molecular Mechanics Methods: Introduction

There are three classes of molecular mechanics method. The Energy Minimization module offers two methods: Simple Steepest Descent and the Conjugate Gradient method of Polak-Ribiere. The Molecular Dynamics module offers one method: the Verlet method for Newtonian dynamics. The Monte Carlo module offers one method: Metropolis using three types of moves - Atomic (single atom, translation only), Grouped (rigid bodies, translation and rotation) and Axial (semi-rigid bodies, rotation only).

Module
Constructor Function
Simulation Methods
Utility Methods
EnerMinim
Minimizers()
SimpleSD()
CGPR()
-
MolDynam
Motors()
Verlet()
set_Temperature()
set_ThermMethod()
MonteCarlo
Casino()
Metropolis()
showstatistics()
showtransform()

In all cases, one would need a complete Model object. This is passed to the Constructor function which returns a molecular mechanics object. At that point, one can adjust some of the simulation conditions, by assigning appropriate values to the data attributes (see the pages for each method) or by applying a utility method. Note that each of the method modules have to set the parent MolMech module separately. The simulation is performed by calling the appropriate simulation method. In all cases, one has to specify the amount of computation (number of steps or sweeps).

Targeted Simulations

The default action is to perform the simulation on the entire system. However, all simulation methods accept a limit argument, to confine the simulation to just a part of the model, with the restriction that the atom numbers in the range span a contiguous range. The limit argument can take three forms: Usually, the preset value of limit is None, which means that the simulation will be carried out for the entire model. This argument may also be a Group AtomMap of the model, in which case the simulation will be restricted to only the atoms within this AtomMap. Finally, limit may be a list (not a tuple) containing exactly two integers: the index number of the first atom and one plus the index number of the last atom, this defines a range and the simulation will be restricted to just these atoms. Atoms of the model that are not included within limit are not affected by the simulation.

A Model object can have an attribute named LIMIT whose value can take any of the three forms described above. The value of the Model LIMIT attribute will be used if the limit argument is None. Thus, it is possible to specify a limit that is applied in every simulation, even if one forgets to specify a value for limit. To negate this, specify the entire model as the limit. For example, for a model M, specify limit=M.Map to override the effect of M.LIMIT.

Given a Model object M:

limit Example Outcome
None None The simulation will be carried out for the entire model M or if M.LIMIT exists, the simulation will be carried out for the part of the model specified in M.LIMIT.
An AtomMap M.Map[":RNA"] The simulation will be carried out only for the part of the model M, named ":RNA".
List of two Integers [ 301, 501 ] The simulation will be carried out for all the atoms of M numbered 301 to 500.

Multiple Models

It is possible to create more than one simulation object and to perform alternate calculations on them. It is even possible to create more than one object of a given simulation type. For example, two Monte Carlo simulation objects. However, all the simulation objects operate on the same set of energy functions and Coordinates and other Atom Vectors.

Introduction
Molecular Mechanics
Energy Minimization
Molecular Dynamics
Monte Carlo

Technical
Introduction
Directory
Vectors
Energy
Model
Assembly
Methods
FPF
FFF
AVF
TaroScript
YammpScript
Python
Utilities

Home
Information
News
User
Technical
Programmer
iYup
Download
Showcase
ETC