Molecular Dynamics Simulation

Molecular dynamics (MD) simulation is a special discipline of molecular modelling. Based on molecular mechanics, it addresses numerical solutions of Newton's equations of motion on an atomistic or similar model of a molecular system to obtain information about its time-dependent properties.

Vocabulary

 * Dynamical System: A dynamical system is a concept in mathematics where a fixed rule describes the time dependence of a point in a geometrical space.


 * Momentum: In classical mechanics, momentum (pl. momenta; SI unit kg m/s) is the product of the mass and velocity of an object.


 * Phase Space: In mathematics and physics, phase space is the space in which all possible states of a system are represented, with each possible state of the system corresponding to one unique point in the phase space. For mechanical systems, the phase space usually consists of all possible values of position and momentum variables.

Force
The potential represents the potential energy of a system when the atoms are arranged a specific configuration. It is a function V of the positions of the nuclei:
 * $$V(x(t),y(t))$$

Forces are derived as the gradients of the potential with respect to atomic displacements:
 * $$F_i = -\nabla V(x(t),y(t)) = \left\langle\frac{\delta V}{\delta x},\frac{\delta V}{\delta y}\right\rangle$$

Newton's second law states that force is mass multiplied with acceleration:
 * $$F=m\cdot a$$.

Of course, we have that
 * $$a=\frac{F}{m}$$.

If we insert the force function from earlier, we get:
 * $$a(t)=-(1/m)\nabla V(\textbf{r}(t))$$

Lennard-Jones Potential
Neutral atoms and molecules are subject to two distinct forces in the limit of large distance, and short distance: an attractive van der Waals force, or dispersion force, at long ranges, and a repulsion force, the result of overlapping electron orbitals, referred to as Pauli repulsion. The Lennard-Jones potential (referred to as the L-J potential or 6-12 potential) is a simple mathematical model that represents this behavior.

The L-J potential for the interaction between a pair of atoms is of the form



V(r) = 4\varepsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^{6} \right] $$

where $$\epsilon$$ is the well depth and $$\sigma$$ is the hard sphere diameter.

Typical values: atom type  van der Waals radius  van der Waals well depth in Å               in kcal/mol C (aliphatic)     1.85                  0.12 O                 1.60                  0.20 H                 1.00                  0.02 N                 1.75                  0.16 P                 2.10                  0.20 S                 2.00                  0.20

Verlet Integration
Verlet integration is a method for calculating the trajectories of particles in molecular dynamics simulations. The Verlet algorithm reduces the level of errors introduced into the integration by calculating the position at the next time step from the positions at the previous and current time steps, without using the velocity.


 * $$x(t_0 + \Delta t) = 2x(t_0) - x(t_0 - \Delta t) + a\Delta t^2\,$$

Definition of Terms
Definition: An atom is a tuple , describing the position in the simulation

Definition: A material is a description of certain characteristics of an atom

Definition: An inner atom is an atom which is surrounded by atoms of the same material

Definition: An outer atom is an atom which is not an inner atom

Simulation Rules

 * Outer atoms cannot 'connect' with other outer atoms unless they are 'connected' from the beginning of the simulation
 * If an inner atom becomes an outer atom, it cannot become an inner atom again

Rendering Methods
Rendering of the model could be done with one of these methods:


 * 1) Blob rendering using POV-Ray
 * 2) Face recognition and raytracing using the JayTracer Rendering Engine
 * 3) Face recognition and raytracing using POV-Ray

Blob Rendering Using POV-Ray
Not very pretty.

Face recognition
Connect all outer atoms all other outer atoms within a certain distance, thus creating triangular faces.

Raytracing Using the JayTracer Rendering Engine
Make a rendering component from the JayTracer code.

Missing features:


 * Rendering of triangular faces