In [1]:
import rebound
rebound.add(m=1.)
rebound.add(m=1e-6, a=1.)
rebound.add(a=2.)
rebound.save("checkpoint.bin")
The binary files are small in size and store every floating point number exactly, so you don't have to worry about efficiency or loosing precision. You can make lots of checkpoints if you want!
Let's reset REBOUND (that deletes the particles from memory) and then read the binary file we just saved.
In [2]:
rebound.reset()
rebound.load("checkpoint.bin")
rebound.status()
The checkpoint files only include the particle information and the time. They do not include the current settings of the integrator, the timestep and other other settings of REBOUND.