LAMMPS: Example#
Here, we demonstrate the non-interactive usage of the LAMMPS image recipe.
Running LAMMPS Non-interactively#
First, let’s create a temporary folder, temp
in your home directory
and cd
to it
mkdir ~/temp && cd ~/temp
Use your favorite text editor to create a new input file. Let’s call it in.lj and copy-paste the following code block into it and then, save it.
# 1) Initialization
units lj
dimension 3
atom_style atomic
pair_style lj/cut 2.5
boundary p p p
# 2) System definition
region simulation_box block -20 20 -20 20 -20 20
create_box 2 simulation_box
create_atoms 1 random 1500 341341 simulation_box
create_atoms 2 random 100 127569 simulation_box
# 3) Simulation settings
mass 1 1
mass 2 1
pair_coeff 1 1 1.0 1.0
pair_coeff 2 2 0.5 3.0
# 4) Visualization
thermo 10
# 5) Run
minimize 1.0e-4 1.0e-6 1000 10000
This input file is borrowed from LAMMPS Tutorial page and intends to run a molecular dynamics simulation of a Lennard-Jones binary fluid consisting of neutral dots with Langevin thermostat within the NVT ensemble.
At this stage, the content of your directory should look like the following
temp
└── in.lj
Let’s copy the docker run command from the catalog, paste it into a terminal and edit it to look like the following command line
docker run --rm -w /home -v $(pwd):/home molssi/lammps-mamba141:latest /bin/bash -c "lmp_serial -in in.lj"
then press Enter. If nothing goes wrong, you should see a long list of lines ending in
Nlocal: 1600 ave 1600 max 1600 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 756 ave 756 max 756 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 2178 ave 2178 max 2178 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 2178
Ave neighs/atom = 1.36125
Neighbor list builds = 141
Dangerous builds = 1
Total wall time: 0:00:00
Note
The same Docker image recipe can also be used with Apptainer (Singularity) to obtain the same result via the following command
apptainer exec docker://molssi/lammps-mamba141:latest lmp_serial -in in.lj
Note that Apptainer binds /home/$USER
, /tmp
and current working directory ($PWD
)
from the host system to the running container by default. For further details see the Apptainer
documentation.
By default, LAMMPS generates a log.lammps file with the auto-generated output upon finishing the job execution.
Note
You can store the generated output in a separate output file by passing the -l <output_name>
to the execution command as follows
docker run --rm -w /home -v $(pwd):/home molssi/lammps-mamba141:latest /bin/bash -c /bin/bash -c "lmp_serial -in in.lj -l log.out"
or
apptainer exec docker://molssi/lammps-mamba141:latest lmp_serial -in in.lj -l log.out