Part III: The Theory Behind OpenMM