Model a vibrating crystalline solid as a bunch of point particles connected by springs in a cubical lattice. This has been done many times over, but seems simple (and fun) to reimplement, not requiring too much effort: use Hooke's Law then integrate Newton's laws of motion. One could do integration naively, or use or implement a fancier ODE solver on the many coupled ordinary differential equations. Maybe something optimized to take advantage of the fact that the system is purely second order with global conservation of energy.
Probably good for GPU.
Easiest is to unrealistically compute the amount of spring stretch as the displacement along each axis. Slightly harder is to use the Pythagorean theorem. I think the former separates the problem into a whole bunch of independent 1D problems, which might be boring. In the latter, stuff happening along one axis can affect other axes, and the solid as a whole. What interesting macro effects can one observe or induce in each case?
One should be able to observe pressure waves propagating through the solid, probably reflecting at boundaries. Anything aesthetically more interesting? Is it worth the effort to implement?
Other lattices than cubic: diamond (4 springs per atom), tetrahedral-octahedral honeycomb (12 springs per atom). Many more exist in the real world. The propagation of waves probably differs depending on lattice type and angle of the wave through the crystal.
2D: square, triangular, hexagonal lattices (last one is graphite).
2D in 3D: vibrating drumhead. This is normally modeled with a partial differential equation, but simulating it seems to not require anything very complicated.
Finding the eigenstates of the vibrations requires work, but if you can, you have initial conditions that result in pretty behavior.
No comments :
Post a Comment