3 ms·
Since we are discussing wave equations in a computer science-related forum: What is the 'best' algorithm for a discrete 1D (or n-D) wave simulation? With 'best
by tomthe 3y ago
Since we are discussing wave equations in a computer science-related forum:
What is the 'best' algorithm for a discrete 1D (or n-D) wave simulation? With 'best' I mean simple but as realistic and stable as possible. The algorithm should operate on a 1 dimensional (or n dimensional) array of floats.
Are there textbooks for this or related stuff?
- semi-extrinsic 3y agoThe book of Leveque is a classic [1]. One of the open source codes from their research group is called Clawpack and is a good starting point for understanding things, and for cross-validation if you code something yourself. But keep in mind, there are many different physical formulations of the wave equations that complicate matters quite a bit, especially beyond 1D. A shallow water wave has different physics from a deep water wave, which is again different from a sound wave. These require different numerical treatment. And e.g. if you go to large scale atmospheric (Rossby) waves, you need to solve on a sphere which is topologically a bit involved. It's a very rich field of study. [1] https://www.cambridge.org/core/books/finite-volume-methods-for-hyperbolic-problems/97D5D1ACB1926DA1D4D52EAD6909E2B9 https://www.cambridge.org/core/books/finite-volume-methods-f...
- tomthe 3y agoThank you and the sibling comment. These are interesting resources for practical and physical simulations of real phenomena. I thought more about an idealized wave (which water waves are not) through a homogeneous euclidean medium of idealized single oscillators. Each oscillator can only communicate to its direct neighbors. I should read through some of your materials as this might be what they talk about in the first chapters. But they focus too much on the actual physics and less about the implementation.
- dsqrt 3y agoThe finite-differencing time-domain method [1] (sometimes also called leap-frog [2]) is easy to implement and robust for scalar and electromagnetic waves. This other book by LeVeque [3] is a great introduction on finite-differencing methods for linear equations. -- [1] https://en.wikipedia.org/wiki/Finite-difference_time-domain_method https://en.wikipedia.org/wiki/Finite-difference_time-domain_... [2] https://math.mit.edu/classes/18.086/2006/am53.pdf https://math.mit.edu/classes/18.086/2006/am53.pdf [3] https://epubs.siam.org/doi/book/10.1137/1.9780898717839 https://epubs.siam.org/doi/book/10.1137/1.9780898717839
- deleted 3y ago[deleted]
- cherryteastain 3y agoMIT OCW's course is decent. Here's the chapter for hyperbolic PDEs (of which the wave eqn is one): https://ocw.mit.edu/courses/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/a1b0398626222c735a8bac5b261c43ad_lecs8_9_10_notes.pdf https://ocw.mit.edu/courses/16-920j-numerical-methods-for-pa...