Theory and numerical method#
This note describes the model behind the simulator: a thin stainless steel sheet, suspended by a thread, pushed at a corner, held, and released. The sheet rings like a gong, which means that its vibration amplitude (about ten thicknesses here) is far beyond the range where a linear plate model is accurate. We therefore solve the geometrically nonlinear plate equations of Foppl and von Karman with the in-plane inertia retained, discretize them on a regular grid, and step them explicitly on the GPU.
1. Plate model#
The sheet occupies the rectangle and has thickness , Young's modulus , Poisson ratio , and density . Its motion is described by three displacement fields, the in-plane displacements and and the transverse displacement . With the membrane strains
the membrane forces per unit length are , , and , where and . The equations of motion are
with the bending stiffness . The quadratic terms in the strains couple bending to stretching. They are what produce the gong-like behaviour: the pitch glide of a strongly struck plate, and the cascade of energy from the low modes that the push excites toward high frequencies. The in-plane inertia terms and are usually dropped in favour of an Airy stress function, on the grounds that in-plane waves are much faster than bending waves. We keep them, as requested, at the cost of a much smaller time step (Section 5).
The loss terms follow the two-parameter model that is standard in plate sound synthesis. A mode of angular frequency decays at the rate with and , so sets the low-frequency decay and makes high frequencies decay faster. The defaults (, ) give a 60 dB decay time of about 6 s at low frequencies and about 1 s near 10 kHz. These are not measured values; both parameters are exposed in the interface.
2. Boundary conditions and suspension#
All four edges are free: the bending moment and the Kirchhoff shear vanish, and so does the in-plane traction. Rather than imposing these conditions explicitly, the discretization of Section 4 is derived from a discrete energy, and free edges are then the natural boundary conditions of that energy. This avoids the intricate ghost-point formulas that free edges otherwise require, and it guarantees a symmetric stiffness operator.
The thread through the hole near one corner is not modelled as a constraint. At audio frequencies the thread is a very soft spring compared with the local stiffness of the plate, so it does not pin the hole; it only fixes the plate's average position. We therefore treat the plate as free and remove the six rigid-body modes (three translations, three rotations) from the displacement and velocity fields by a mass-weighted projection, applied every few time steps. Gravity is dropped: the in-plane stress it induces is about kPa, a strain of , which is negligible.
The same projection defines what "holding" the sheet means during the push. The finger prescribes the displacement of a small patch at the far corner. The reaction to the finger force is distributed over the plate as an inertial load (this is the inertia-relief equilibrium of a free body), so the push produces pure bending of the prescribed amount. This is a modelling choice: a sheet hanging freely from a thread and pushed 10 mm at a corner would mostly swing as a pendulum and bend by only about 1.5 mm.
3. Excitation#
The simulation has three phases. During the push (default 0.1 s) the transverse displacement of the nodes within the finger radius follows a smooth ramp to the push amount, and heavy artificial damping () removes the waves that the ramp launches. During the hold the constraint stays in place until the non-rigid kinetic energy drops below a threshold or a maximum settle time elapses. At the release the constraint is removed instantaneously, the damping returns to its physical value, the clock is set to zero, and the recording of audio and movie frames begins. An instantaneous release is a step in the finger force and therefore excites all modes at once, in the same way that a plucked string is excited.
4. Spatial discretization#
The plate is covered by a regular grid of nodes with spacings and (about 4 mm by default). All three displacements live at the nodes. The forces are the negative gradient of a discrete potential energy , so the semi-discrete system is Hamiltonian and its linear part has a symmetric stiffness matrix.
Bending. The continuous bending energy is . We evaluate and by three-point second differences at the nodes where they exist (not on the edges perpendicular to the direction of differencing), and by the four-point difference at cell centres, with trapezoidal quadrature weights at edges and corners. In the interior, the resulting force is the standard 13-point biharmonic stencil; near the edges the stencil is modified exactly as the energy dictates, which yields the free-edge conditions. The three rigid modes lie exactly in the null space.
Membrane. The cells are treated as bilinear (Q4) finite elements with 2 by 2 Gauss integration, using the von Karman strains above. This is the standard element for this purpose; one-point integration would be cheaper but admits hourglass modes, which the nonlinear coupling would excite. The force on a node from each of its four cells is computed once per cell within a GPU workgroup and gathered by the nodes.
Mass. The mass matrix is lumped with trapezoidal weights: a full cell mass in the interior, one half on an edge, one quarter at a corner, so that the total mass is exact.
Validation. The tests in tests/ check that both stiffness blocks are symmetric with exactly three rigid modes, that the forces are the exact gradient of the discrete energy at a strongly nonlinear state, and that the first five frequencies of a completely free square plate agree with the reference values of Leissa and Gorman () to within 1 percent at 20 cells per side.
5. Time integration#
The system is advanced with the symplectic Euler (Stormer-Verlet) scheme, and , in single precision on the GPU. Its stability limit is , where is the largest frequency of the linearized discrete system. We estimate at start-up by power iteration on a small grid with the same spacing and use 85 percent of the limit. The in-plane waves, with speed m/s, set this limit: at 4 mm spacing, $\Delta t \approx 0.65\ \mu$s, roughly six times smaller than bending alone would require, and 4 s of sound takes about 6 million steps. The step is then rounded down so that an integer number of steps (32 at 4 mm and 48 kHz) makes one audio sample.
Single precision needs one precaution. With mm and $\Delta t \approx 1\ \mu$s, a velocity below about m/s produces an increment smaller than the resolution of , and the rounding would act as a broadband noise source. The update of is therefore compensated: the rounding error of each addition is carried in a separate array and added back at the next step (Kahan summation).
The state is stored twice and the kernel reads one copy and writes the other. Each step is one compute dispatch of 16 by 16 workgroups; a per-step uniform, addressed by a dynamic offset, carries the prescribed corner displacement, the damping, and the audio bookkeeping, so a whole movie frame of steps is encoded in one pass.
6. Radiation to the listener#
The default listener model is the Rayleigh integral for a baffled plate,
where the sum runs over the nodes, is the distance from node to the listener, and m/s. The transverse acceleration of every node is recorded in a ring buffer at the audio rate, and each output sample is a delayed, weighted sum over the plate, evaluated on the GPU with linear interpolation between samples. The common delay is discarded; only the spread of delays across the plate (about 5 samples for a listener 1 m in front) is kept. The plate is unbaffled in reality, so the sound from the two faces partly cancels at low frequencies. The "dipole" option is a heuristic for this: each element is weighted by the cosine of its angle to the listener, and the signal is high-pass filtered with a first-order filter at , about 460 Hz for the default sheet. An accurate treatment would require solving the exterior acoustic problem, which is outside the scope of this simulator.
The pressure is reported in pascals, and the peak sound pressure level is displayed. Playback and the downloaded WAV file are normalized to their peak.
7. Limitations#
The von Karman model assumes moderate rotations, so it is not valid for displacements that are large compared with the plate size; the corner push of 10 mm on a 300 by 460 mm sheet is well within its range. The loss model is empirical and its parameters are not calibrated against a real sheet. The free-edge treatment near the edges is only first-order accurate. Air loading, which lowers the frequencies of a thin plate slightly and adds radiation damping, is not included. The radiation model is approximate, as discussed above. Finally, single precision limits the dynamic range of the tail of the sound to roughly 100 dB below the peak.