Getting StartingΒΆ

Here we give a simple DASH script to get things started.

This script simply creates two atoms which interact via a Lennard-Jones potential.

import sys.path
sys.path.append('/the/path/to/DASH.so/')

from DASH import *

#initialize simulation state
#Lennard-Jones units are the default
state = State()

#Now we create an atom type
state.atomParams(handle='spc1', mass=1)

#initialize system bounds
state.bounds = Bounds(state, lo=Vector(0, 0, 0), hi=Vector(100, 100, 100))

#set cutoff radius
state.rCut = 2.5
#set neighborlist padding
state.padding = 0.5

#add two atoms
state.addAtom(handle='spc1', pos=Vector(1, 1, 1))
state.addAtom(handle='spc1', pos=Vector(3, 1, 1))

#Their properties can be accessed from within the python script
print state.atoms[1].pos
#prints out (3, 1, 1)

#Set the velocity of an atom
state.atoms[0].vel = Vector(0.1, 0, 0)


#Initialize Lennard-Jones parameters
nonbond = FixLJCut(state, 'cut')
#set sigma and epsilon
nonbond.setParameter('sig', 'spc1', 'spc1', 1)
nonbond.setParameter('eps', 'spc1', 'spc1', 1)

#turn on fix
state.activateFix(nonbond)

#create an integrator.
integrator = IntegratorVerlet(state)
#run the simulation
integrator.run(1000)

print state.atoms[0].pos, state.atoms[1].pos

We could bond the atoms together as well.

bondHarmonic = FixBondHarmonic(state, handle='bond')
bondHarmonic.createBond(state.atoms[0], state.atoms[1], k=1, r0=2)
state.activateFix(bondHarmonic)
integrator.run(1000)

These examples show the basics of how one can interact with DASH through Python. For more information on functionality and interface, see the remainder of the documentation.

Previous topic

Compiling DASH

Next topic

Simulation State

This Page