{ "schema_version": 1, "challenge_id": "string-pluck-v1", "submitter": { "name": "Jeremy Magland", "email": "jmagland@flatironinstitute.org" }, "date": "2026-09-17", "viz_url": "https://vault1.magland.org/challenges/string-solutions/site/", "submission_id": "fd-second-order", "description": "Second-order finite differences: leapfrog in time for the wave and frequency-independent loss terms, with the Kelvin-Voigt term centered in time (implicit, tridiagonal solve per step). Fixed Courant number 0.9, so deliberately dispersive; time step 1/(48000 m). Ordered by increasing oversampling factor m.", "code_url": "https://vault1.magland.org/challenges/string-solutions/blob/main/solvers/fd/fd_string.py", "solutions": [ { "solution_id": "fd-m1", "output": "fd-second-order/fd-m1.wav", "method": "finite differences, second order, implicit damping", "parameters": { "oversampling": 1, "n_points": 197, "dx_m": 0.003316326530612245, "dt_s": 2.0833333333333333e-05, "courant": 0.898333 }, "timing_seconds": 2.012, "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4", "more_accurate_than": [] }, { "solution_id": "fd-m2", "output": "fd-second-order/fd-m2.wav", "method": "finite differences, second order, implicit damping", "parameters": { "oversampling": 2, "n_points": 393, "dx_m": 0.0016581632653061226, "dt_s": 1.0416666666666666e-05, "courant": 0.898333 }, "timing_seconds": 4.455, "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4", "more_accurate_than": [ "fd-m1" ] }, { "solution_id": "fd-m4", "output": "fd-second-order/fd-m4.wav", "method": "finite differences, second order, implicit damping", "parameters": { "oversampling": 4, "n_points": 786, "dx_m": 0.0008280254777070064, "dt_s": 5.208333333333333e-06, "courant": 0.899479 }, "timing_seconds": 11.354, "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4", "more_accurate_than": [ "fd-m2" ] }, { "solution_id": "fd-m8", "output": "fd-second-order/fd-m8.wav", "method": "finite differences, second order, implicit damping", "parameters": { "oversampling": 8, "n_points": 1571, "dx_m": 0.0004140127388535032, "dt_s": 2.6041666666666666e-06, "courant": 0.899479 }, "timing_seconds": 33.202, "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4", "more_accurate_than": [ "fd-m4" ] }, { "solution_id": "fd-m16", "output": "fd-second-order/fd-m16.wav", "method": "finite differences, second order, implicit damping", "parameters": { "oversampling": 16, "n_points": 3142, "dx_m": 0.000206940464820121, "dt_s": 1.3020833333333333e-06, "courant": 0.899766 }, "timing_seconds": 111.127, "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4", "fields": { "path": "fd-second-order/fd-m16.h5", "format": "hdf5" }, "more_accurate_than": [ "fd-m8" ] } ] }