2.3.4. Creating or deleting a LAMMPS object — LAMMPS documentation

\(\renewcommand{\AA}{\text{Å}}\)

# 2.3.4. Creating or deleting a LAMMPS object

With the Python interface the creation of a `LAMMPS` instance is included in the constructor for the `lammps` class. Internally it will call either `lammps_open()` or `lammps_open_no_mpi()` from the C library API to create the class instance.

All arguments are optional. The name argument allows loading a LAMMPS shared library that is named `liblammps_machine.so` instead of the default name of `liblammps.so`. In most cases the latter will be installed or used. The ptr argument is for use of the `lammps` module from inside a LAMMPS instance, e.g. with the python command, where a pointer to the already existing `LAMMPS` class instance can be passed to the Python class and used instead of creating a new instance. The comm argument may be used in combination with the mpi4py module to pass an MPI communicator to LAMMPS and thus it is possible to run the Python module like the library interface on a subset of the MPI ranks after splitting the communicator.

Here is a simple example using the LAMMPS Python interface:

    from lammps import lammps

    # NOTE: argv[0] is set by the lammps class constructor
    args = ["-log", "none"]

    # create LAMMPS instance
    lmp = lammps(cmdargs=args)

    # get and print numerical version code
    print("LAMMPS Version: ", lmp.version())

    # explicitly close and delete LAMMPS instance (optional)
    lmp.close()

Same as with the C library API, this will use the `MPI_COMM_WORLD` communicator for the MPI library that LAMMPS was compiled with.

The `lmp.close()` call is optional since the LAMMPS class instance will also be deleted automatically during the `lammps` class destructor. Instead of `lmp.close()` it is also possible to call `lmp.finalize()`; this will destruct the LAMMPS instance, but also finalized and release the MPI and/or Kokkos environment if enabled and active.

Note that you can create multiple LAMMPS objects in your Python script, and coordinate and run multiple simulations, e.g.

    from lammps import lammps
    lmp1 = lammps()
    lmp2 = lammps()
    lmp1.file("in.file1")
    lmp2.file("in.file2")