# The cymbal2 model Every challenge in this repository is an instance of the model defined here. A challenge fixes the mid-surface profile $Z(r)$, the thickness $h(r)$, the strike point $(x_s, y_s)$ and the output scale $s_\text{ref}$; its README gives those and nothing else changes. The problem is to compute the pressure signal $p(t)$ of the output section for six seconds and write it as a wav file. ## Geometry The cymbal is a thin shell. Its mid-surface is the graph of a function $Z$ over the annulus $$ A = \{ (x, y) : r_h \le r \le R \}, \qquad r = \sqrt{x^2 + y^2}, $$ and its thickness is $h$. Both are functions of $r$ alone and are given per challenge. The rim $r = R$ and the edge of the hole $r = r_h$ are free. Below, subscripts $x$, $y$ and $t$ denote partial derivatives, Greek indices run over $x, y$, repeated Greek indices are summed, and $\delta_{\alpha\beta}$ is the Kronecker delta. ## Unknowns and strains The unknowns are the displacements $u(x, y, t)$, $v(x, y, t)$, $w(x, y, t)$ of the mid-surface point $(x, y, Z(x, y))$ along the $x$, $y$ and $z$ axes. The membrane strains are those of shallow-shell theory, $$ \varepsilon_{xx} = u_x + Z_x w_x + \tfrac{1}{2} w_x^2, \qquad \varepsilon_{yy} = v_y + Z_y w_y + \tfrac{1}{2} w_y^2, \qquad \varepsilon_{xy} = \tfrac{1}{2} \left( u_y + v_x + Z_x w_y + Z_y w_x + w_x w_y \right), $$ and the bending strains are $\kappa_{\alpha\beta} = w_{\alpha\beta}$. ## Stress resultants The material is linearly elastic and isotropic, with Young's modulus $E$, Poisson's ratio $\nu$ and density $\rho$, and has a Kelvin-Voigt viscosity of time constant $\eta$. The membrane forces and bending moments per unit length are $$ N_{\alpha\beta} = \frac{E h}{1 - \nu^2} \left[ (1 - \nu)\, \tilde\varepsilon_{\alpha\beta} + \nu\, \tilde\varepsilon_{\gamma\gamma}\, \delta_{\alpha\beta} \right], \qquad M_{\alpha\beta} = D \left[ (1 - \nu)\, \tilde\kappa_{\alpha\beta} + \nu\, \tilde\kappa_{\gamma\gamma}\, \delta_{\alpha\beta} \right], $$ with $\tilde\varepsilon = \varepsilon + \eta\, \varepsilon_t$, $\tilde\kappa = \kappa + \eta\, \kappa_t$ and $D = E h^3 / (12 (1 - \nu^2))$. ## Equations of motion The motion is defined by its weak form. For all test functions $\delta u, \delta v \in H^1(A)$ and $\delta w \in H^2(A)$, without constraint on either edge, $$ \int_A \rho h \left[ (u_{tt} + 2 \sigma_0 u_t)\, \delta u + (v_{tt} + 2 \sigma_0 v_t)\, \delta v + (w_{tt} + 2 \sigma_0 w_t)\, \delta w \right] dA + \int_A \left( N_{\alpha\beta}\, \delta\varepsilon_{\alpha\beta} + M_{\alpha\beta}\, \delta\kappa_{\alpha\beta} \right) dA = - F(t) \int_A \phi\, \delta w\, dA, $$ where $\sigma_0$ is a loss rate, $F$ and $\phi$ are the strike force and footprint of the next section, and $\delta\varepsilon$, $\delta\kappa$ are the variations of the strains at the current state, $$ \delta\varepsilon_{xx} = \delta u_x + (Z_x + w_x)\, \delta w_x, \qquad \delta\varepsilon_{yy} = \delta v_y + (Z_y + w_y)\, \delta w_y, \qquad \delta\varepsilon_{xy} = \tfrac{1}{2} \left( \delta u_y + \delta v_x + (Z_x + w_x)\, \delta w_y + (Z_y + w_y)\, \delta w_x \right), \qquad \delta\kappa_{\alpha\beta} = \delta w_{\alpha\beta}. $$ Where the solution is smooth this is the strong form $$ \rho h\, (u_{tt} + 2 \sigma_0 u_t) = \partial_x N_{xx} + \partial_y N_{xy}, \qquad \rho h\, (v_{tt} + 2 \sigma_0 v_t) = \partial_x N_{xy} + \partial_y N_{yy}, $$ $$ \rho h\, (w_{tt} + 2 \sigma_0 w_t) = \partial_\alpha \left[ N_{\alpha\beta} (Z_\beta + w_\beta) \right] - \partial_{\alpha\beta} M_{\alpha\beta} - F(t)\, \phi, $$ together with the free-edge conditions that the weak form implies at $r = R$ and $r = r_h$. The shell is at rest at $t = 0$: $u = v = w = 0$ and $u_t = v_t = w_t = 0$. ## The strike The cymbal is struck once by a drum stick, modeled as a point mass $m_s$ that moves along $z$ and interacts with the shell through a Hertz contact force. Let $z_s(t)$ be the height of the stick tip above the undeformed surface point $(x_s, y_s, Z(r_s))$, with $z_s(0) = 0$ and $\dot z_s(0) = -v_0$. The force is spread over the footprint $$ \phi(x, y) = \frac{1}{c_\phi\, \pi R_s^2}\; \phi_0\!\left( \frac{\varrho}{R_s} \right), \qquad \varrho = \sqrt{(x - x_s)^2 + (y - y_s)^2}, \qquad \phi_0(s) = \begin{cases} \tfrac{1}{2} (1 + \cos \pi s), & 0 \le s \le 1, \\ 0, & s > 1, \end{cases} \qquad c_\phi = \tfrac{1}{2} - \tfrac{2}{\pi^2}, $$ which lies inside $A$ and integrates to one over $A$. The surface height under the stick is the footprint average $\bar w(t) = \int_A \phi\, w\, dA$, the penetration is $\delta(t) = \bar w(t) - z_s(t)$, and the contact force is $$ F(t) = k_c\, \max(\delta(t), 0)^{3/2}. $$ It acts on the stick upward, $m_s \ddot z_s = F$, and on the shell downward, as the traction $-F \phi$ along $z$ in the equations of motion. The stick is otherwise free: there is no gravity and no hand, and contact occurs whenever $\delta > 0$, including any later contact after the first rebound. ## Output The output is the acoustic pressure at the listener point $\mathbf{x}_L$ given by the Rayleigh integral of the transverse acceleration over the shell, $$ p(t) = \frac{\rho_a}{2\pi} \int_A \frac{1}{d(x, y)}\; w_{tt}\!\left( x, y,\; t - \frac{d(x, y)}{c_a} \right) dA, \qquad d(x, y) = \left| \mathbf{x}_L - (x, y, Z(x, y)) \right|, $$ with $w_{tt}$ taken as zero at negative times. This is the field of a planar source in a rigid baffle; the acoustic problem is not solved, and the air exerts no load on the shell. ## Remarks The shell is free. The strains are invariant under the small rigid motions $w \to w + a + \theta_\alpha x_\alpha$, $u_\alpha \to u_\alpha - \theta_\alpha (Z + w) - \tfrac{1}{2} \theta_\alpha \theta_\beta x_\beta$ (with $u_x = u$, $u_y = v$), so the momentum and angular momentum that the strike imparts appear as a drift of $w$ that is linear in $t$ once the contact has ended, has no transverse acceleration, and does not enter $p$; the in-plane inertia of that drift is of relative order $\rho \Omega^2 R^2 / E$, about $10^{-8}$. The transverse displacement itself does contain the drift. In the linear regime about the flat state, $\sigma_0$ damps every mode at the rate $\sigma_0$ and $\eta$ damps a mode of angular frequency $\omega$ at the rate $\eta \omega^2 / 2$. ## Parameters common to all challenges | Symbol | Value | Unit | Meaning | | --- | --- | --- | --- | | $R$ | 0.2032 | m | outer radius (16 in diameter) | | $r_h$ | 0.006 | m | hole radius | | $E$ | 110e9 | Pa | Young's modulus (B20 bell bronze) | | $\nu$ | 0.34 | | Poisson's ratio | | $\rho$ | 8800 | kg/m^3 | density | | $\sigma_0$ | 1.1 | 1/s | loss rate | | $\eta$ | 1.2e-8 | s | Kelvin-Voigt time constant | | $m_s$ | 0.02 | kg | stick tip mass | | $v_0$ | 10 | m/s | stick speed at contact | | $k_c$ | 1e9 | N/m^(3/2) | Hertz contact stiffness | | $R_s$ | 0.005 | m | footprint radius | | $\rho_a$ | 1.204 | kg/m^3 | air density | | $c_a$ | 343 | m/s | speed of sound in air | | $\mathbf{x}_L$ | (0.65, 1.125, 0.75) | m | listener point | All values are exact decimal numbers. The listener is 1.5 m from the origin, 30 degrees above the plane $z = 0$, at an azimuth of 60 degrees from the $x$ axis, on which every strike point lies. The stick values are provisional until the first solutions have been heard; they will be fixed before any solution is published, and a challenge is never changed after that. ## Deliverable | Property | Value | | --- | --- | | channels | 1 | | sample rate $f_s$ | 48000 Hz | | number of samples $N$ | 288000 (6.0 s) | | sample format | 32-bit IEEE float (WAVE_FORMAT_IEEE_FLOAT) | | sample $k$, for $k = 0, \dots, N-1$ | $p(k / f_s) / s_\text{ref}$ | | $s_\text{ref}$ | `output.signal_scale` in the challenge's challenge.json, in Pa | The first sample is at $t = 0$, the instant the stick touches the shell. Samples are pointwise values of $p$ with no anti-aliasing filter. Do not normalize the signal; absolute amplitude is compared. ## Error measures Two relative errors against the reference solution are computed over the $N$ samples: the spectrogram $\ell^2$ error (primary; periodic Hann window of length 2048, hop 512, no padding) and the waveform $\ell^2$ error. The formulas are those of the [string challenge](https://vault1.magland.org/challenges/string/blob/main/challenges/string-pluck-v1/README.md#error-measures). The spectrogram error ranks because the response to this strike is chaotic: solutions that agree in every band still differ in waveform after the first tenth of a second, and the waveform error is then near $\sqrt{2}$ for any two of them. ## Reference solution The reference is chosen automatically among the submitted solutions by the rule described in the [repository README](README.md), unless `reference_solution` in challenge.json names one. ## Optional field export A submission may provide the transverse displacement for visualization; it is not scored. The file is HDF5 with datasets `x` and `y`, float64, shape (61,), $x_i = -R + 2R\, i / 60$ and the same for $y$; `t`, float64, shape (3001,), $t_k = k / 1000$; and `u`, float32, shape (3001, 61, 61), with `u[k, j, i]` $= w(x_i, y_j, t_k)$ in meters for grid points in $A$ and NaN elsewhere. The drift of the free shell is part of $w$. Root attributes `challenge_id`, `solution_id`, `quantity` and `units` are recommended. The file is about 40 MB and belongs in git LFS or at an external URL.