Physics engine - Maung Maung Thin, Wai Yan (2015)
A molecular dynamics software is a physics engine that is capable of modelling the dynamic molecular behaviours of various particles including atoms, residues, chains and molecules. Molecular behaviours refer to the reactions of particles to various forces and potentials such as van der Waals forces, electrostatics forces and pi interactions. Molecular dynamics software that is widely in use today such as Gromacs does not support dynamic update of simulation level between the atomic and the molecular level .The primary focus of the project is to build a physics engine that is capable of dynamically switching the simulation level between macro (molecular) and micro (atomic) levels during runtime. Java is used to build the engine from the scratch. An optional graphical user interface is also developed for improved visibility. The particles can be loaded in to the system by providing a PDB (Protein Data Bank) file, specifying the type and position of each particle. The loaded particles are simulated for a specified period of time with an adjustable simulation time step. The simulation is also pausable and resumable. The results of the simulation are logged and exported to a specified output directory. Unit tests, integration tests and performances tests were conducted to ensure the reliability and correctness of the system and measure the performance of the system. The engine was found to be quadratic (O ( 2)) with the executing time increasing as the number of atoms in the system increases. Future developments of the engine can be focussed on the introduction of new forces, modelling stretchability of particles, improving performance and reducing memory usage.