A simple Molecular Dynamic implementation in Fortran.
Water molecules are randomly initialized in a simulation box with Periodic Bondary Condition using minimal image. This work relies on the SPC/Fw water model, where interaction potential is described as:
with $$ V^\text{intra} = \cfrac{k_b}{2}\left[ (r_{\text{OH}1} - r\text{OH}^\text{eq})^2 + (r_{\text{OH}2} - r\text{OH}^\text{eq})^2 \right] + \cfrac{k_a}{2} (\theta_\text{HOH} - \theta_\text{HOH}^\text{eq})^2 $$
and $$ V^\text{inter} = \sum_{ij}^\text{all pairs} \left{ 4\epsilon_{ij} \left[ \left(\cfrac{\sigma_{ij}}{R_{ij}} \right)^{12} - \left(\cfrac{\sigma_{ij}}{R_{ij}} \right)^{6} \right] - q_i q_j \cfrac{e^{-\alpha m R_{ij}}}{R_{ij}} \right} $$
Parameters are given in the following table:
|
|
|
|
|
|
||
---|---|---|---|---|---|---|---|
1059.162 | 1.012 | 75.90 | 113.24 | 3.165492 | 0.1554253 | -0.82 | 0.41 |
- Bonded and angle interactions are modeled by harmonic potentials
- van der Waals interactions are modeled by a Lennard-Jones potential
- Coulomb interactions are modeled by a Yukawa potential, ie. screened Coulomb potential
To install, clone this repository:
git clone git@github.com:comecattin/F-MD.git
cd F-MD
Then compile the source:
cd src
make
To run an MD simulation simply run ./md_simulation input.in
in the src
directory.
The file input.in
is the input file and contain:
- The number of particles (
n_atoms
, default30
) - The number of time steps (
n_steps
, default1000
) - The time step (
dt
, default0.001
) - The box length (
box_length
, default10.0
) - Stride, write position, energies and print them every nth step (
stride
, default1
)
An example is given in the examples/example_input.in
file.
By default, positions along time steps are outputted in the trajectories.dat
file.
To plot an animation of the trajectories, run python plot_trajectories.py
in the directory where the trajectories.dat
file is written.
Kinetic, potential and total energies are by default computed at each time step and saved under the energies.dat
file.
To plot theses energies along the time, run python plot_energies.py energies.dat
. An energies.pdf
file will be written.