Wave Physics in a Mass-Spring System
By Halsten Tilk→Assignment 8 was augmented in a variety of ways to create this piece of work. The following changes were applied:
- Added driver.h and the Driver class to allow specifying driven vertices from a simulation’s JSON file
- Rewrote main.cpp to handle specifically the sparse matrix system implementation, incorporate the Driver class, and have more range in selecting vertex colours
- Rewrote read_json.h to:
- incorporate reading driven vertices and their parameters
- handle individualized vertex masses
- handle individualized spring stiffnesses
- Added code to incorporate the Driver class, individualized mass, and individualized spring stiffnesses into fast_mass_springs_precomputation_sparse.cpp/.h and fast_mass_springs_step.cpp/.h
- Wrote JSON and OBJ files for four different simulations:
- Transverse wave on a string
- Longitudinal wave on a string
- Wave pool with an angular edge wave source
- Circlular planar web with a radial wave source
Acknowledgements
Assignment 8 acted as a foundation for this program (provided by the University of Toronto and CSC317 course staff). A majority of the extensions implemented used ChatGPT as an initial drafting tool, providing a rough base from which to customize and adapt to the augmentation.