/ proof-of-concept / plate-mechanics-sim
Sign in
proof-of-concept / plate-mechanics-sim
plate-mechanics-sim / packages / core / src / methods / common.ts
41 lines · 2.2 KBCodeBlameHistory
2546961Plate mechanics lab: Kirchhoff-Love plates solved by numbl in the browserJeremy Magland 1import type { Equation } from "./types";
3/** Equations shared by every method: the model itself and how stress follows from displacement. */
4export const GOVERNING_EQUATIONS: Equation[] = [
5 {
6 tex: String.raw`\mu\,\frac{\partial^2 w}{\partial t^2} + 2\mu\sigma_0\,\frac{\partial w}{\partial t} - 2\mu\sigma_1\,\nabla^2\frac{\partial w}{\partial t} + D\,\nabla^4 w = f(x,y,t)`,
7 caption:
8 "Damped Kirchhoff-Love plate: transverse displacement w, mass per area mu = rho h, applied pressure f. The two loss terms are a model choice.",
9 },
10 {
11 tex: String.raw`D = \frac{E h^3}{12(1-\nu^2)}, \qquad \kappa = \sqrt{D/\mu}`,
12 caption:
13 "Bending stiffness and the stiffness parameter kappa that sets the dispersion of bending waves.",
14 },
15 {
16 tex: String.raw`f(x,y,t) = F(t)\,s(x,y), \qquad \iint s\,dA = 1`,
17 caption:
18 "The load is a force history F(t) spread over a raised-cosine footprint s, so F is the total force.",
19 },
20];
22export const STRESS_EQUATIONS: Equation[] = [
23 {
24 tex: String.raw`\sigma_{xx} = -\frac{E z}{1-\nu^2}\left(w_{xx} + \nu w_{yy}\right),\quad \sigma_{yy} = -\frac{E z}{1-\nu^2}\left(w_{yy} + \nu w_{xx}\right),\quad \tau_{xy} = -\frac{E z}{1+\nu}\,w_{xy}`,
25 caption:
26 "Surface stresses at z = h/2 from the curvatures. Stress is a second derivative of the primary unknown, so it inherits and amplifies the solution error.",
27 },
28 {
29 tex: String.raw`\sigma_{vM} = \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\tau_{xy}^2}, \qquad \sigma_{1,2} = \frac{\sigma_{xx}+\sigma_{yy}}{2} \pm \sqrt{\left(\frac{\sigma_{xx}-\sigma_{yy}}{2}\right)^2 + \tau_{xy}^2}`,
30 caption:
31 "Von Mises equivalent stress and principal stresses; the app reports the principal stress of largest magnitude with its sign.",
32 },
33];
35export const RADIATION_EQUATIONS: Equation[] = [
36 {
37 tex: String.raw`p(\mathbf r, t) = \frac{\rho_{\mathrm{air}}}{2\pi} \iint \frac{\ddot w\!\left(\mathbf r_s,\, t - |\mathbf r - \mathbf r_s|/c\right)}{|\mathbf r - \mathbf r_s|}\, dA`,
38 caption:
39 "Rayleigh's first integral for a flat radiator in an infinite rigid baffle. It ignores diffraction around the edges, so the waveform is an estimate, not a calibrated level.",
40 },
41];
↑↓ move↵openescclose