2004981Plate dynamics lab 2: a hammer on a hung plate by Rayleigh-Ritz and by Mindlin-Reissner finite elementsJeremy Magland 1import type { PlateResult, ProblemSpec } from "@plate-dyn/core";
2import { LinePlot, useSharedAxis } from "@plate-dyn/components";
4/** The contact: the force, the hammer and the plate under it, and the numbers. */
5export function ContactPlots({ result, spec }: { result: PlateResult; spec: ProblemSpec }) {
6 const c = result.contact;
7 const axis = useSharedAxis();
8 const coupled = c.hammer_v.length > 0;
9 const velocities = coupled
10 ? [
11 { x: c.t, y: c.hammer_v, label: "hammer" },
12 { x: c.t, y: c.plate_v, label: "plate under it", color: "#d1495b" },
13 ]
14 : [{ x: c.t, y: c.plate_v, label: "plate under the hammer", color: "#d1495b" }];
15 return (
16 <div>
17 <div className="pl-plot-title">The contact</div>
18 <LinePlot
19 title="Contact force"
20 series={[{ x: c.t, y: c.force, label: "F" }]}
21 xScale={1e6}
22 xLabel="time [µs]"
23 yLabel="F [N]"
24 yUnit="N"
25 height={150}
26 {...axis}
27 />
28 <LinePlot
29 title="Velocities, positive into the plate"
30 series={velocities}
31 xScale={1e6}
32 xLabel="time [µs]"
33 yLabel="v [m/s]"
34 yUnit="m/s"
35 height={150}
36 {...axis}
37 />
38 <table className="modes-table" style={{ marginTop: 6 }}>
39 <tbody>
40 <tr>
41 <td>Model</td>
42 <td>{c.model}</td>
43 </tr>
44 <tr>
45 <td>Contact time</td>
46 <td>
47 {(c.tc * 1e6).toPrecision(4)} µs (Hertz estimate on a rigid target{" "}
48 {(c.hertz_duration * 1e6).toPrecision(4)} µs)
49 </td>
50 </tr>
51 <tr>
52 <td>Peak force</td>
53 <td>
54 {c.peak_force.toPrecision(4)} N (rigid target {c.hertz_peak_force.toPrecision(4)} N)
55 </td>
56 </tr>
57 <tr>
58 <td>Impulse</td>
59 <td>
60 {(c.impulse * 1e3).toPrecision(4)} mN s (rigid target{" "}
61 {(c.hertz_impulse * 1e3).toPrecision(4)} mN s; the hammer arrived with{" "}
62 {(spec.hammer.mass * spec.hammer.speed * 1e3).toPrecision(3)} mN s)
63 </td>
64 </tr>
65 {coupled && (
66 <tr>
67 <td>At separation</td>
68 <td>
69 the hammer still moves into the plate at {c.hammer_exit_v.toPrecision(3)} m/s, the
70 plate under it at {c.plate_exit_v.toPrecision(3)} m/s; effective restitution{" "}
71 {c.effective_restitution.toPrecision(3)} against the nominal{" "}
72 {spec.hammer.restitution}
73 </td>
74 </tr>
75 )}
76 {!coupled && (
77 <tr>
78 <td>At separation</td>
79 <td>
80 the plate under the hammer moves at {c.plate_exit_v.toPrecision(3)} m/s; the hammer
81 is not part of this model, its impulse being prescribed by the nominal restitution{" "}
82 {spec.hammer.restitution}
83 </td>
84 </tr>
85 )}
86 </tbody>
87 </table>
88 <div className="pl-small pl-muted">
89 {coupled
90 ? "The plate is very light: it moves away under the hammer, so the force is lower, the contact longer and the momentum transfer smaller than on a rigid target, and the hammer follows the plate into the strike."
91 : "The pulse is that of a rigid target, applied as given: what the plate does during the contact does not feed back on the force. Compare with the coupled contact of the finite-element method."}
92 </div>
93 </div>
94 );
95}