# No. 460 (Brown 1868): Fairbairn’s bailing-scoop, for elevating water short distances. The scoop is connected by pitman to end of a lever or of a beam of single-acting engine. Distance of lift may be altered by placing end of rod in notches shown in figure.
# Model (cm, gravity on, Brown's view from in front, the trough's near side cut away). The lever (the engine's beam) is rocked
# 0.31 rad either way at 0.22 Hz (the only drive); its pitman, its end in one of the notches, raises and lowers the
# scoop, a wedge trough hinged on the left bank's edge, 44 deg. The scoop's water is a tank it carries (its weight on the
# trough where it lies, so the lever lifts it): while the trough's far lip is under the pond's surface the pond runs in over it until the
# level inside is the pond's, and while the trough falls toward the pivot the water runs out at its open end into the channel on the bank,
# which runs off over its weir. The pond is kept at its level by the stream feeding it.
# Generator: opencode-runs/water/gen460.py.
number: 460
slug: fairbairns-bailing-scoop
name: "Fairbairn's bailing-scoop"
brown: "Fairbairn’s bailing-scoop, for elevating water short distances. The scoop is connected by pitman to end of a lever or of a beam of single-acting engine. Distance of lift may be altered by placing end of rod in notches shown in figure."
units: cm
sim:
  timestep: 0.0001
  integrator: implicitfast
  iterations: 60
  duration_s: 14
  floor: false
bodies:
  - id: lever
    shape: part
    pos: [33.1107, 0, 19.3157]
    mass: 0.15
    color: "#5f5a52"
    pieces:
      - {kind: loft, a: [[13.5107, -1, 18.8657], [34.3107, -1, 18.8657], [34.3107, -1, 19.7657], [13.5107, -1, 19.7657]], b: [[13.5107, -1.6, 18.8657], [34.3107, -1.6, 18.8657], [34.3107, -1.6, 19.7657], [13.5107, -1.6, 19.7657]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[13.6607, -1, 19.7657], [14.1607, -1, 19.7657], [14.1607, -1, 20.1657], [13.6607, -1, 20.1657]], b: [[13.6607, -1.6, 19.7657], [14.1607, -1.6, 19.7657], [14.1607, -1.6, 20.1657], [13.6607, -1.6, 20.1657]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[14.8607, -1, 19.7657], [15.3607, -1, 19.7657], [15.3607, -1, 20.1657], [14.8607, -1, 20.1657]], b: [[14.8607, -1.6, 19.7657], [15.3607, -1.6, 19.7657], [15.3607, -1.6, 20.1657], [14.8607, -1.6, 20.1657]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[16.0607, -1, 19.7657], [16.5607, -1, 19.7657], [16.5607, -1, 20.1657], [16.0607, -1, 20.1657]], b: [[16.0607, -1.6, 19.7657], [16.5607, -1.6, 19.7657], [16.5607, -1.6, 20.1657], [16.0607, -1.6, 20.1657]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[17.2607, -1, 19.7657], [17.7607, -1, 19.7657], [17.7607, -1, 20.1657], [17.2607, -1, 20.1657]], b: [[17.2607, -1.6, 19.7657], [17.7607, -1.6, 19.7657], [17.7607, -1.6, 20.1657], [17.2607, -1.6, 20.1657]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[18.4607, -1, 19.7657], [18.9607, -1, 19.7657], [18.9607, -1, 20.1657], [18.4607, -1, 20.1657]], b: [[18.4607, -1.6, 19.7657], [18.9607, -1.6, 19.7657], [18.9607, -1.6, 20.1657], [18.4607, -1.6, 20.1657]], collide: 0, color: "#5f5a52"}
      - {kind: rod, from: [33.1107, -1.9, 19.3157], to: [33.1107, 0, 19.3157], radius: 0.35, collide: 0, color: "#3d3a35"}
  - id: pitman
    shape: part
    mount: lever
    pos: [15.1107, 0, 19.3157]
    mass: 0.02
    color: "#6d675c"
    pieces:
      - {kind: rod, from: [15.1107, -1.3, 19.3157], to: [15.1107, -1.3, 9.3157], radius: 0.22, collide: 0, color: "#6d675c"}
      - {kind: rod, from: [15.1107, -1.7, 19.3157], to: [15.1107, -0.9, 19.3157], radius: 0.3, collide: 0, color: "#3d3a35"}
  - id: scoop
    shape: part
    pos: [0, 0, 10]
    mass: 0.12
    color: "#a8875a"
    pieces:
      - {kind: loft, a: [[0.5786, 3.3, 9.826], [21.2143, 3.3, 3.6192], [21.1535, 3.3, 3.2746], [0.5178, 3.3, 9.4813]], b: [[0.5786, -0.3, 9.826], [21.2143, -0.3, 3.6192], [21.1535, -0.3, 3.2746], [0.5178, -0.3, 9.4813]], collide: 0, color: "#a8875a"}
      - {kind: loft, a: [[21.1535, 3.3, 3.2746], [21.4982, 3.3, 3.2138], [22.2883, 3.3, 7.6947], [21.9436, 3.3, 7.7554]], b: [[21.1535, -0.3, 3.2746], [21.4982, -0.3, 3.2138], [22.2883, -0.3, 7.6947], [21.9436, -0.3, 7.7554]], collide: 0, color: "#a8875a"}
      - {kind: loft, a: [[0.5786, 3.3, 9.826], [21.2143, 3.3, 3.6192], [21.9436, 3.3, 7.7554], [0.8687, 3.3, 11.4715]], b: [[0.5786, 3, 9.826], [21.2143, 3, 3.6192], [21.9436, 3, 7.7554], [0.8687, 3, 11.4715]], collide: 0, color: "#8c7350"}
      - {kind: loft, a: [[0.8166, 0, 11.1761], [22.2362, 0, 7.3992], [22.2883, 0, 7.6947], [0.8687, 0, 11.4715]], b: [[0.8166, -0.3, 11.1761], [22.2362, -0.3, 7.3992], [22.2883, -0.3, 7.6947], [0.8687, -0.3, 11.4715]], collide: 0, color: "#a8875a"}
      - {kind: rod, from: [21.0173, -0.2, 3.654], to: [21.7466, -0.2, 7.7902], radius: 0.18, collide: 0, color: "#8c7350"}
      - {kind: loft, a: [[-0.6951, -0.3, 9.5133], [0.7821, -0.3, 9.2528], [0.9905, -0.3, 10.4346], [-0.4867, -0.3, 10.6951]], b: [[-0.6951, -0.6, 9.5133], [0.7821, -0.6, 9.2528], [0.9905, -0.6, 10.4346], [-0.4867, -0.6, 10.6951]], collide: 0, color: "#5f5a52"}
      - {kind: loft, a: [[14.0828, -0.3, 7.5168], [15.4615, -0.3, 7.2737], [15.8609, -0.3, 9.5388], [14.4821, -0.3, 9.7819]], b: [[14.0828, -0.9, 7.5168], [15.4615, -0.9, 7.2737], [15.8609, -0.9, 9.5388], [14.4821, -0.9, 9.7819]], collide: 0, color: "#5f5a52"}
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: loft, a: [[-17, 7, 5.9], [-0.8, 7, 5.9], [-0.8, 7, -6.5], [-17, 7, -6.5]], b: [[-17, -1, 5.9], [-0.8, -1, 5.9], [-0.8, -1, -6.5], [-17, -1, -6.5]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-0.8, 7, 9.2], [1, 7, 9.2], [5, 7, -5.5], [-0.8, 7, -5.5]], b: [[-0.8, -1, 9.2], [1, -1, 9.2], [5, -1, -5.5], [-0.8, -1, -5.5]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-17, 7, 10], [-15, 7, 10], [-15, 7, 5.9], [-17, 7, 5.9]], b: [[-17, -1, 10], [-15, -1, 10], [-15, -1, 5.9], [-17, -1, 5.9]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-15, 7, 10], [-0.8, 7, 10], [-0.8, 7, 5.9], [-15, 7, 5.9]], b: [[-15, 6.4, 10], [-0.8, 6.4, 10], [-0.8, 6.4, 5.9], [-15, 6.4, 5.9]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[34, 7, 10], [48, 7, 10], [48, 7, -6.5], [38, 7, -6.5], [31, 7, -5.5]], b: [[34, -1, 10], [48, -1, 10], [48, -1, -6.5], [38, -1, -6.5], [31, -1, -5.5]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-1, 7, -5.5], [40, 7, -5.5], [40, 7, -6.5], [-1, 7, -6.5]], b: [[-1, -1, -5.5], [40, -1, -5.5], [40, -1, -6.5], [-1, -1, -6.5]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-1.6, 0, 10.3], [1.6, 0, 10.3], [1.6, 0, 9.2], [-1.6, 0, 9.2]], b: [[-1.6, -0.4, 10.3], [1.6, -0.4, 10.3], [1.6, -0.4, 9.2], [-1.6, -0.4, 9.2]], collide: 0, color: "#5f5a52"}
      - {kind: rod, from: [0, -0.8, 10], to: [0, 3.6, 10], radius: 0.3, collide: 0, color: "#3d3a35"}
      - {kind: loft, a: [[30.6107, -1.9, 10], [35.6107, -1.9, 10], [33.8107, -1.9, 19.9157], [32.4107, -1.9, 19.9157]], b: [[30.6107, -2.2, 10], [35.6107, -2.2, 10], [33.8107, -2.2, 19.9157], [32.4107, -2.2, 19.9157]], collide: 0, color: "#7a6f60"}
      - {kind: loft, a: [[30.1107, 1, 10.8], [36.1107, 1, 10.8], [36.1107, 1, 10], [30.1107, 1, 10]], b: [[30.1107, -2.6, 10.8], [36.1107, -2.6, 10.8], [36.1107, -2.6, 10], [30.1107, -2.6, 10]], collide: 0, color: "#7a6f60"}
joints:
  - {id: j_l, type: hinge, body: lever, axis: [0, 1, 0], damping: 0.002}   # the lever on its standard; + lifts its left end
  - {id: j_p, type: hinge, body: pitman, axis: [0, 1, 0], damping: 0.0005}   # the pitman hangs from the notch
  - {id: j_s, type: hinge, body: scoop, axis: [0, 1, 0], damping: 0.002}   # the scoop on its pivot; + lowers it
pins:
  - {id: p_S, a: pitman, b: scoop, at: [15.1107, 0, 9.3157]}
vessels:
  substeps: 4
  nodes:
    - {id: stream, kind: source, p: 833.85}   # the stream keeping the pond up
    - {id: pond, kind: tank, area: 224, z: -5.5, level: 8.5,
       draw: {section: [[5, -5.5], [31, -5.5], [32.9355, 4.5], [2.2789, 4.5]], y: [0.05, 6.5]}}
    - {id: scoop, kind: tank, area: 18, z: -3.8631, level: 0, body: scoop, pos: [13.207, 1.5, 6.3512],
       draw: {section: [[0.5786, 9.826], [21.2143, 3.6192], [21.9436, 7.7554], [0.8687, 11.4715]], y: [0, 3]}}   # in the trough
    - {id: channel, kind: tank, area: 90.88, z: 6.5, level: 1.6, max: 1.75,
       draw: {section: [[-15, 6.5], [-0.8, 6.5], [-0.8, 9.3], [-15, 9.3]], y: [0.05, 6.4]}}
    - {id: air, kind: source, p: 0}
  links:
    - {id: spring, from: stream, to: pond, area: 6, cd: 0.62, z: -5.5}
    - {id: fill, from: pond, to: scoop, area: 6, cd: 0.62, z: -3.8631, zTo: -3.8631, open: {joint: j_s, q: [0.2084, 0.2782], frac: [0, 1]}}   # over the lip
    - {id: pour, from: scoop, to: channel, area: 3, cd: 0.62, z: -3.8631, zTo: 10.1, open: {joint: j_s, q: [-0.2618, -0.1745], frac: [1, 0]},
       draw: {from: [0.7878, 0.6, 9.8611], fromBody: scoop, to: [-1.6, 0.6, 8.1], width: 1.4, flow: 0.03,
         fall: {dir: [-1, 0, -0.3], floor: 7.3}}}   # out of the trough's end into the channel
    - {id: weir, from: channel, to: air, area: 4, cd: 0.62, z: 8.1}   # the channel runs off
driver: {joint: j_l, kind: velocity, rpm: 0, swing: {amplitude: 0.31, hz: 0.22}, kv: 300, max_torque: 20}
checks:
  - {type: amplitude, joint: j_l, min: 0.279, max: 0.341, settle_s: 1.0, window_s: 12.5}
  - {type: amplitude, joint: j_s, min: 0.326, max: 0.461, settle_s: 1.0, window_s: 12.5}
  - {type: penetration, max: 0.003}
camera: {target: [14, 0, 6], position: [14, -200, 9], fov: 13}
display:
  output: j_s
  labels: {j_l: "Lever (driver)", j_p: "Pitman", j_s: "Scoop"}
