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

# 2.3.6. System properties

Similar to what is described in System properties, the instances of `lammps` can be used to extract different kinds of information about the active LAMMPS instance and also to modify some of it.

In some cases the data returned is a direct reference to the original data inside LAMMPS cast to `ctypes` pointers. Where possible, the wrappers will determine the `ctypes` data type and cast pointers accordingly. If `numpy` is installed arrays can also be extracted as numpy arrays, which will access the C arrays directly and have the correct dimensions to protect against invalid accesses.

Warning

When accessing per-atom data, please note that this data is the per-processor local data and indexed accordingly. These arrays can change sizes and order at every neighbor list rebuild and atom sort event as atoms are migrating between subdomains.

    from lammps import lammps

    lmp = lammps()
    lmp.file("in.sysinit")

    natoms = lmp.get_natoms()
    print(f"running simulation with {natoms} atoms")

    lmp.command("run 1000 post no");

    for i in range(10):
       lmp.command("run 100 pre no post no")
       pe = lmp.get_thermo("pe")
       ke = lmp.get_thermo("ke")
       print(f"PE = {pe}\nKE = {ke}")

    lmp.close()

Methods:

- `version()`: return the numerical version id, e.g. LAMMPS 2 Sep 2015 -> 20150902

- `get_thermo()`: return current value of a thermo keyword

- `last_thermo()`: return a dictionary of the last thermodynamic output

- `get_natoms()`: total # of atoms as int

- `reset_box()`: reset the simulation box size

- `extract_setting()`: return a global setting

- `extract_global()`: extract a global quantity

- `extract_box()`: extract box info

- `create_atoms()`: create N atoms with IDs, types, x, v, and image flags

Properties:

- `last_thermo_step`: the last timestep thermodynamic output was computed