Simulation example¶
In Jumos, one run simulations by writting specials Julia scripts. A primer intoduction to the Julia language can be found here, if needed.
Lennard-Jones fluid¶
Here is a simple simulation script for running a simulation of a Lennard-Jones fluid at \(300K\).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env julia
# Loading the Jumos module before anything else
using Jumos
# Molecular Dynamics with 1.0fs timestep
sim = Simulation(:MD, 1.0)
# Create a cubic cell with a width of 10A
cell = UnitCell(unit_from(10.0, "A"))
# Read a topology from a file
topology = Topology("lennard-jones.xyz")
# Create an universe from the cell and the topology
universe = Universe(cell, topology)
positions_from_file!(universe, "lennard-jones.xyz")
# Initialize random velocities at 300K
create_velocities!(universe, 300)
# Add Lennard-Jones interactions between He atoms
add_interaction!(
universe,
LennardJones(unit_from(0.2, "kJ/mol"), unit_from(2.0, "A")),
"He", "He"
)
# You can either bind algorithms to variables ...
out_trajectory = TrajectoryOutput("LJ-trajectory.xyz", 1)
push!(sim, out_trajectory)
# ... or create them directly in function call
push!(sim, EnergyOutput("LJ-energy.dat", 10))
propagate!(sim, universe, 5000)
# Simulation scripts are normal Julia scripts !
println("All done")
|
Each simulation script should start by the using Jumos
directive. This imports
the module and the exported names in the current scope.
Then, in this script, we create two main objects: a simulation, and an universe. The topology and the
original positions for the universe are read from the same file, as an .xyz
file contains topological information (mainly the atomics names) and coordinates. The
velocities are then initialized from a Boltzmann distribution at 300K.
The only interaction — a Lennard-Jones interaction — is also added to the universe before the run. The next lines add some outputs to the simulation, namely a trajectory and an energy output. Finally, the simulation runs for 5000 steps.
Other example¶
Some other examples scripts can be found in the example folder in Jumos’ source tree. To go there, use the julia prompt:
julia> Pkg.dir("Jumos")
"~/.julia/v0.4/Jumos"
julia>; cd $ans/examples
~/.julia/v0.4/Jumos/examples