Skip to main content

Chapter 32
Pascal and Archimedes Pressure Balance

Fluid and Mechanical Media
Author: Mark Anthony Higgins
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 February 2026
Audio Overview
Flow Algebra
flow "Pascal and Archimedes — Pressure Balance" v1.0

# ---------- PURPOSE ----------
# Unifies Pascal’s law (pressure transmission) and Archimedes’ principle (buoyancy)
# as one pressure-field balance. Adds a boundary coherence index (IB) to account for
# losses (leaks, compliance, trapped gas, surface roughness) and optional compressibility.

# ---------- PARAMETERS ----------
params:
  units: "SI"
  rho_fluid: positive        # fluid density [kg/m^3]
  g:         positive = 9.80665
  IB:        0.0..1.0        # coherence of pressure transmission (1 = ideal)
  compressible: false        # if true, allow small density changes with p
  beta:      positive?       # bulk compressibility [1/Pa], when compressible = true
  gamma_cap: real?           # optional surface tension / capillary head [Pa] adjustment
  p_atm:     real = 101325   # ambient reference pressure [Pa]

# ---------- STATE ----------
state Fluid:
  p0: real                   # reference pressure at free surface [Pa]
  z0: real = 0               # reference elevation [m]

state PascalCell:
  A_in:  positive            # input piston area [m^2]
  A_out: positive            # output piston area [m^2]
  F_in:  real                # applied input force [N]
  F_out: real                # delivered output force [N]
  p_in:  real
  p_out: real
  loss_pascal: real          # effective pressure loss [Pa]

state Hydrostatic:
  z:     real[]              # depths/elevations [m] (+upwards)
  p:     real[]              # pressures at positions z [Pa]

state Body:                   # object (solid) for buoyancy analysis
  V:       positive          # displaced volume when fully submerged [m^3]
  V_disp:  real              # actual displaced volume [m^3]
  rho_obj: positive          # object density [kg/m^3]
  depth:   real              # immersion depth reference [m]
  F_b:     real              # buoyant force [N]
  F_w:     real              # weight [N]
  F_net:   real              # net vertical force [N]
  IB_b:    0.0..1.0 = 1.0    # buoyancy coherence (surface roughness/entrained bubbles)

# ---------- INVARIANTS ----------
invariants:

  # --- Hydrostatic pressure field (with optional capillary term) ---
  # p(z) = p0 + rho g (z0 - z) + gamma_cap
  for k in range(len(Hydrostatic.z)):
    if not params.compressible:
      Hydrostatic.p[k] = Fluid.p0 + params.rho_fluid * params.g * (Fluid.z0 - Hydrostatic.z[k]) + (params.gamma_cap or 0)
    else:
      # small-strain barotropic correction: rho ≈ rho0 * (1 + beta*(p - p0))
      # Use linearised form for clarity (engine may iterate if desired)
      dp = params.rho_fluid * params.g * (Fluid.z0 - Hydrostatic.z[k])
      Hydrostatic.p[k] = Fluid.p0 + dp + (params.gamma_cap or 0)

  # --- Pascal’s law with coherence (transmission of pressure) ---
  # Ideal: p_in = p_out = F/A. With loss: p_out = IB * p_in.
  PascalCell.p_in  = PascalCell.F_in  / PascalCell.A_in
  PascalCell.loss_pascal = (1 - params.IB) * PascalCell.p_in
  PascalCell.p_out = PascalCell.p_in - PascalCell.loss_pascal
  PascalCell.F_out = PascalCell.p_out * PascalCell.A_out

  # --- Archimedes buoyancy (with coherence) ---
  # F_b = IB_b * rho_fluid * g * V_disp
  Body.F_b = Body.IB_b * params.rho_fluid * params.g * Body.V_disp
  Body.F_w = Body.rho_obj   * params.g * Body.V
  Body.F_net = Body.F_b - Body.F_w

  # --- Float / sink conditions (qualitative guards) ---
  float_condition:
    # At static equilibrium for a floating body: F_b = F_w with 0 <= V_disp <= V
    if 0 <= Body.V_disp <= Body.V:
      assert abs(Body.F_b - Body.F_w) <= 1e-6 or Body.F_net == 0

# ---------- TRANSFORMS ----------
transforms:

  # Compute required input force for a target output force (hydraulic press)
  pascal_reverse:
    PascalCell.F_in = (PascalCell.F_out / PascalCell.A_out) * PascalCell.A_in / max(params.IB, 1e-12)

  # Determine displaced volume for a floating body (solve V_disp from F_b = F_w)
  set_float_equilibrium:
    Body.V_disp = clamp(Body.F_w / (Body.IB_b * params.rho_fluid * params.g), 0, Body.V)

  # Pressure at depth utility
  pressure_at_depth:
    p_depth = Fluid.p0 + params.rho_fluid * params.g * (Fluid.z0 - z_query) + (params.gamma_cap or 0)

# ---------- MONITORS ----------
monitors:
  coherence_bounds:
    assert 0 <= params.IB <= 1
    assert 0 <= Body.IB_b  <= 1

  hydraulic_gain_check:
    # Ideal gain ~ A_out / A_in scaled by IB
    gain = PascalCell.F_out / max(PascalCell.F_in, 1e-12)
    gain_ideal = params.IB * (PascalCell.A_out / PascalCell.A_in)
    assert abs(gain - gain_ideal) <= 1e-9

  buoyancy_limits:
    assert 0 <= Body.V_disp <= Body.V

# ---------- SCENES ----------
scenes:

  # 1) Hydraulic press with coherence loss
  hydraulic_press_demo:
    given params:
      rho_fluid: 850        # e.g., oil
      IB: 0.97
    given PascalCell:
      A_in:  0.0005         # 5e-4 m^2 (small plunger)
      A_out: 0.02           # 2e-2 m^2  (large piston)
      F_in:  200            # N
    expect:
      p_in   = F_in / A_in
      p_out  = IB * p_in
      F_out  = p_out * A_out
      note: "Output force close to ideal gain (A_out/A_in) but reduced by IB."

  # 2) Hydrostatic pressure difference
  hydrostatic_column:
    given params:
      rho_fluid: 1000
      g: 9.81
    given Fluid:
      p0: 101325
      z0: 0
    given Hydrostatic:
      z: [0, -2, -5]        # 0 m, 2 m below, 5 m below
    expect:
      p[1] - p[0] ≈ rho_fluid * g * 2
      p[2] - p[0] ≈ rho_fluid * g * 5

  # 3) Floating block (find immersion fraction)
  floating_block:
    given params:
      rho_fluid: 1000
    given Body:
      V: 0.02               # m^3
      rho_obj: 600          # kg/m^3 (wood)
      IB_b: 0.99
    transforms:
      set_float_equilibrium: {}
    expect:
      immersion_fraction = V_disp / V ≈ rho_obj / (IB_b * rho_fluid)   # ~ 0.606
      F_net ≈ 0

  # 4) Sinking object (fully submerged)
  sinking_solid:
    given params:
      rho_fluid: 1000
    given Body:
      V: 0.01
      rho_obj: 3000
      V_disp: 0.01
      IB_b: 1.0
    expect:
      F_b = rho_fluid * g * V
      F_w = rho_obj   * g * V
      F_net = F_b - F_w < 0   # sinks

# ---------- NOTES ----------
notes:
  - Pascal (ideal): pressure is transmitted undiminished → \( p = F/A \) uniform in a connected static fluid.
  - With coherence factor \( I_B \), effective transmitted pressure is \( p_{\text{out}} = I_B\, p_{\text{in}} \).
  - Archimedes: buoyant force equals the weight of displaced fluid:
      \( F_b = \rho_{\text{fluid}} g V_{\text{disp}} \).
    Coherence \( I_{B_b} \) moderates real-world effects (entrained gas, wetting, surface roughness).
  - Hydrostatics: \( p(z) = p_0 + \rho g (z_0 - z) \) (plus optional capillary correction).
  - Floating condition: \( F_b = F_w \Rightarrow V_{\text{disp}}/V = \rho_{\text{obj}} / (\rho_{\text{fluid}} I_{B_b}) \) (clamped to \([0,1]\)).
  - Hydraulic gain: ideal \( F_{\text{out}}/F_{\text{in}} = A_{\text{out}}/A_{\text{in}} \); coherence reduces it by \( I_B \).
Overview

Pascal’s and Archimedes’ principles are two expressions of the same law of pressure coherence.
One governs how pressure transmits within a continuous fluid; the other describes how that pressure acts upon an immersed boundary.
Together, they form the static counterpart of Bernoulli and continuity — mapping not motion, but tension balance within a resting field.


🔹 1. Pascal’s Law — Pressure as Boundary Equilibrium

In an enclosed, static fluid, pressure acts equally in all directions and transmits uniformly through the medium.

$$ p = \frac{F}{A} = \text{constant (for a coherent fluid).} $$

If a force FinF_{\mathrm{in}} is applied to a piston of area AinA_{\mathrm{in}}, the resulting pressure is transmitted to an output piston of area AoutA_{\mathrm{out}}:

$$ p_{\mathrm{in}} = p_{\mathrm{out}} = \frac{F_{\mathrm{in}}}{A_{\mathrm{in}}}. $$

Thus the output force becomes:

$$ F_{\mathrm{out}} = \frac{A_{\mathrm{out}}}{A_{\mathrm{in}}}\, F_{\mathrm{in}}. $$

This geometric amplification is the foundation of hydraulic systems — force multiplied through pressure uniformity.
In practice, however, no system is perfectly coherent.
We introduce a coherence index IBI_B to represent loss due to compliance, leaks, trapped gas, or imperfect sealing:

pout​=IB​pin​,Fout​=IB​Ain​Aout​​Fin​.

  • When IB=1I_B = 1, the fluid behaves as an incompressible continuum.
  • When IB<1I_B < 1, coherence diminishes — the boundary’s internal memory is imperfect, and part of the energy

$$ p(z) = p_0 + \rho g (z_0 - z). $$

Here p0p_0 is the surface pressure at height z0z_0, ρ\rho is the fluid density, and gg is gravitational acceleration.
This simple relation defines the pressure field within the fluid — a vertical coherence gradient where potential energy translates directly into pressure tension.

When small capillary or surface effects are relevant, a correction term may be added:

$$ p(z) = p_0 + \rho g (z_0 - z) + \gamma_{\mathrm{cap}}. $$

representing curvature or surface tension acting at the fluid boundary.


🧩 3. Archimedes’ Principle — Coherence Between Medium and Body

When a body is placed in a fluid, the surrounding pressure field creates an upward resultant known as buoyant force:

$$ F_b = \rho_{\mathrm{fluid}}\, g\, V_{\mathrm{disp}}. $$

It equals the weight of the displaced fluid.
In reality, this upward curvature coupling is not always perfect — surfaces trap bubbles, wetting may be partial, or micro-roughness can break phase contact.
A buoyancy coherence index IBb
I_{B_b}
accounts for this:

$$ F_b = I_{B_b}\, \rho_{\mathrm{fluid}}\, g\, V_{\mathrm{disp}}. $$

The balance between buoyancy and weight determines the system’s behaviour:

$$ F_{\mathrm{net}} = F_b - F_w = g\, \big(\rho_{\mathrm{fluid}} I_{B_b} V_{\mathrm{disp}} - \rho_{\mathrm{obj}} V\big). $$

  • If Fb>FwF_b > F_w→ the object rises (undercoherent or light).
  • If Fb=FwF_b = F_w → it floats (balanced coherence).
  • If Fb<FwF_b < F_w→ it sinks (overdense or incoherent coupling).

In HST terms, floating occurs when the boundary curvature of the solid and the fluid are phase-matched — the surface mediates equal pressure flux in both directions.


🔸 4. Unified Coherence Field — Static Energy Gradient

Both Pascal and Archimedes describe static field coherence:

  • Pascal’s law maintains lateral coherence — equal pressure transmission through enclosed geometry.
  • Archimedes’ law maintains vertical coherence — gravitational curvature compensated by pressure rise with depth.

Together they satisfy:

\( \nabla p = \rho \mathbf{g}, \quad \text{and } p = \text{uniform at constant depth.} \)

They express equilibrium not as stillness, but as complete coherence — every part of the field perfectly aware of every other part through static tension.


🧠 Summary

Pascal’s and Archimedes’ laws are two expressions of the same geometric truth:
pressure is coherent curvature within a static field.

  • In Pascal, that coherence spreads laterally, transmitting tension through the medium.
  • In Archimedes, it rises vertically, countering weight through displaced curvature.

Together they reveal that a static fluid is not an absence of motion, but a perfectly resolved balance of forces —
a standing wave of coherence between boundary, weight, and depth.

When IB=1I_B = 1, the field is whole; when IB<1I_B < 1, the geometry leaks memory.
The calm surface of a liquid hides a perfect equilibrium of invisible curvatures —
a static mirror of the same coherence that drives motion, light, and form.


Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ
Designed By