01
Separate model from implementation
Describe the relationship you intend to model before choosing code. State what the model ignores. A simplified model can be useful when its limits are explicit.
02
Test a known case
Use a case whose expected behaviour you can independently calculate. For motion, that might be a simple trajectory or an unchanged position with no velocity. The right test depends on the assumptions of your model.
03
Vary one setting
Change the time step, initial conditions, or another parameter in a controlled way. Record the effect. A simulation that looks plausible at one setting may behave differently when that setting changes.
04
Explain discrepancies
When results differ from expectations, distinguish a coding error, a numerical effect, and a limitation of the model. Those possibilities need different fixes. Keep the evidence that helped you tell them apart.