LAMMPS (“Large-scale Atomic/Molecular Massively Parallel Simulator”) is a molecular dynamics program from Sandia National Laboratories. LAMMPS makes use of MPI for parallel communication and is a free open-source code, distributed under the terms of the GNU General Public License.
LAMMPS was originally developed under a Cooperative Research and Development Agreement (CRADA) between two laboratories from United States Department of Energy and three other laboratories from private sector firms. It is currently maintained and distributed by researchers at the Sandia National Laboratories. (Taken from Wikipedia). Jun-05-2019 version.
General Information
LAMMPS is a classical molecular dynamics code that models an ensemble of particles in a liquid, solid, or gaseous state. It can model atomic, polymeric, biological, metallic, granular, and coarse-grained systems using a variety of force fields and boundary conditions.
In the most general sense, LAMMPS integrates Newton’s equations of motion for collections of atoms, molecules, or macroscopic particles that interact via short- or long-range forces with a variety of initial and/or boundary conditions. For computational efficiency LAMMPS uses neighbor lists to keep track of nearby particles. The lists are optimized for systems with particles that are repulsive at short distances, so that the local density of particles never becomes too large. On parallel machines, LAMMPS uses spatial-decomposition techniques to partition the simulation domain into small 3d sub-domains, one of which is assigned to each processor. Processors communicate and store “ghost” atom information for atoms that border their sub-domain. LAMMPS is most efficient (in a parallel sense) for systems whose particles fill a 3d rectangular box with roughly uniform density. Papers with technical details of the algorithms used in LAMMPS are listed in this section.
How to Use
send_lmp
- To send LAMMPS to the queue system use the send_lmp utility. When executed,
shows the command syntax, which is summarized below:
send_lmp JOBNAME NODES PROCS_PER_NODE TIME [ MEM ] [``Other queue options'' ]
JOBNAME: |
Is the name of the input with extension. |
NODES: |
Number of nodes. |
PROCS: |
Number of processors. |
TIME: |
Time requested to the queue system, format hh:mm:ss. |
MEM: |
Optional. Memory in Gb ( It will used 1GB/core if not set). |
[``Other Torque Options'' ] |
Optional. There is the possibility to pass more variables to the queuing system.
See examples below. More information about this options |
Examples
We send the lammps input job1 to 1 node, 4 processors on that node, with a requested time of 4 hours:
send_lmp job1.in 1 4 04:00:00
We send job2 to 2 compuation nodes, 8 processors on each node, with a requested time of 192 hours, 8 GB of RAM and to start running after work 1234.arinab is finished:
send_lmp job2.inp 2 8 192:00:00 8 ``-W depend=afterany:1234'
We send the input job3 to 4 nodes and 4 processors on each node, with arequested time of 200:00:00 hours, 2 GB of RAM and we request to be send an email at the beginning and end of the calculation to the direction specified.
send_lmp job.tpr 4 4 200:00:00 2 ``-m be -M mi.email@ehu.es''
send_lmp command copies the contents of the directory from which the job is sent to /scratch or / gscratch, if we use 2 or more nodes. And there is where the calculation is done.
Jobs Monitoring
To facilitate monitoring and/or control of the LAMMPS calculations, you can use remote_vi
remote_vi JOBID
It show us the *.out file (only if it was sent using send_lmp).