Torsion and Bending PBC in MD++

From Micro and Nano Mechanics Group
Jump to navigation Jump to search

Torsion and Bending PBC in MD++

Seunghwa Ryu and Wei Cai

This tutorial describes how Torsion/Bending Periodic Boundary Conditions (t-PBC and b-PBC) are implemented in MD++. We provide several MD++ script files and describe how to use them in detail. The theoretical background is published in

Torsion and Bending Periodic Boundary Conditions for Modelling the Intrinsic Strength of Nanowires, Journal of Mechanics and Physics of Solids, 56, 3242, (2008). (PDF)

Compile executable file

First, you need to install MD++ on your computer by following the instructions on MD++ Manuals. Suppose the root directory of your MD++ installation is ~/Codes/MD++. For convenience, let us define an environment variable,

export MDPP=~/Codes/MD++

You will also need the ${MDPP}/cookies directory (not included in the standard MD++ distribution), where additional source files such as md_torsion.cpp are located.

To turn on the t-PBC and b-PBC utility, modify src/Makefile so that

 TOB = yes

In this tutorial, we will use gold nanowire (modelled by the EAM potential) as an example. We can compile the executable file (e.g. on mc-cc.stanford.edu) by

 cd ${MDPP}
 make eam build=R SYS=mc-cc

This will create executable eam_mc-cc in the ${MDPP}/bin directory.

Make handle atoms

As the example, let us run the following test case,

cd ${MDPP}
bin/eam_mc-cc scripts/work/au/au-nw-torsion.tcl 0

The important parts of this script file (activated in this run) is reproduced below.

  # Create the nanowire
  ...
  MD++ allocmultiple = 2
  makeperfcrystal $ND $NL $lattconst
  make_nanowire $R
  ...
  openwindow
  ...
  # Conjugate gradient relaxation
  relax_fixbox
  MD++ finalcnfile = "nw-relaxed.cn" writeall = 1 writecn

  # Create handles for applying t-PBC
  MD++ torsionsim = 1 torquespec = \[ 0.02 0.5 0 \] maketorquehandle

  # Molecular Dynamics simulation
  setup_md
  MD++ T_OBJ = 1000 totalsteps = 1000 initvelocity run
  MD++ finalcnfile = "handle-annealed.cn" writeall = 1 writecn

  # Conjugate gradient relaxation (again)
  relax_fixbox

  MD++ finalcnfile = "handle-annealed-relaxed.cn" writeall = 1 writecn