/ challenges-old / string-solutions
Sign in
challenges-old / string-solutions
string-solutions / solutions / string-pluck-v1 / fd-second-order.json
97 lines · 3.0 KBBlameHistoryRaw
1{
2 "schema_version": 1,
3 "submission_id": "fd-second-order",
4 "challenge_id": "string-pluck-v1",
5 "submitter": {
6 "name": "Jeremy Magland",
7 "email": "jmagland@flatironinstitute.org"
8 },
9 "date": "2026-09-17",
10 "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.",
11 "code_url": "https://vault1.magland.org/challenges/string-solutions/blob/main/solvers/fd/fd_string.py",
12 "solutions": [
13 {
14 "solution_id": "fd-m1",
15 "output": "fd-second-order/fd-m1.wav",
16 "method": "finite differences, second order, implicit damping",
17 "parameters": {
18 "oversampling": 1,
19 "n_points": 197,
20 "dx_m": 0.003316326530612245,
21 "dt_s": 2.0833333333333333e-05,
22 "courant": 0.898333
23 },
24 "timing_seconds": 2.033,
25 "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4",
26 "more_accurate_than": []
27 },
28 {
29 "solution_id": "fd-m2",
30 "output": "fd-second-order/fd-m2.wav",
31 "method": "finite differences, second order, implicit damping",
32 "parameters": {
33 "oversampling": 2,
34 "n_points": 393,
35 "dx_m": 0.0016581632653061226,
36 "dt_s": 1.0416666666666666e-05,
37 "courant": 0.898333
38 },
39 "timing_seconds": 4.565,
40 "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4",
41 "more_accurate_than": [
42 "fd-m1"
43 ]
44 },
45 {
46 "solution_id": "fd-m4",
47 "output": "fd-second-order/fd-m4.wav",
48 "method": "finite differences, second order, implicit damping",
49 "parameters": {
50 "oversampling": 4,
51 "n_points": 786,
52 "dx_m": 0.0008280254777070064,
53 "dt_s": 5.208333333333333e-06,
54 "courant": 0.899479
55 },
56 "timing_seconds": 11.802,
57 "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4",
58 "more_accurate_than": [
59 "fd-m2"
60 ]
61 },
62 {
63 "solution_id": "fd-m8",
64 "output": "fd-second-order/fd-m8.wav",
65 "method": "finite differences, second order, implicit damping",
66 "parameters": {
67 "oversampling": 8,
68 "n_points": 1571,
69 "dx_m": 0.0004140127388535032,
70 "dt_s": 2.6041666666666666e-06,
71 "courant": 0.899479
72 },
73 "timing_seconds": 31.794,
74 "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4",
75 "more_accurate_than": [
76 "fd-m4"
77 ]
78 },
79 {
80 "solution_id": "fd-m16",
81 "output": "fd-second-order/fd-m16.wav",
82 "method": "finite differences, second order, implicit damping",
83 "parameters": {
84 "oversampling": 16,
85 "n_points": 3142,
86 "dx_m": 0.000206940464820121,
87 "dt_s": 1.3020833333333333e-06,
88 "courant": 0.899766
89 },
90 "timing_seconds": 101.051,
91 "hardware": "13th Gen Intel(R) Core(TM) i7-1355U, single thread, Python 3.13.5 + numpy 2.4.4",
92 "more_accurate_than": [
93 "fd-m8"
94 ]
95 }
96 ]
↑↓ move↵openescclose