It seems that there are a number of options in building a
physics simulator, None of these options can cope with all types
of physics, I think the ideal system would be able to mix these
approaches and dynamically switch between them depending on the
accuracy required and computing resources available.
However, to be practical, To build a practical simulator we would need to choose between options such as:
a) finite steps, e.g.- model each atom, or one point represents say a million or a billion atoms.
b) solid bodies - each solid body has 6 degrees of freedom, only boundary has to be modeled for collision detection
c) make solid bodies as a set of simpler shapes, say cubes, or represent shapes and mass distribution by equations.
d) finite steps, represent time varying quantities at step n, in terms of step n-1, n-2, etc.
e) continuous, represent time varying by equations.
f) represent all interactions between objects as forces and groups of forces as force + torque.
g) treat static contact, free movement, constraints (joints and sliding) and collisions separately each with there own algorithms.