polaris.tasks.ocean.horiz_press_grad.reference.ReferenceColumn

class polaris.tasks.ocean.horiz_press_grad.reference.ReferenceColumn(config: PolarisConfigParser, x_sign: float = 1.0)[source]

Continuous, coordinate-invariant HPGA reference a(z̃) at the edge x=0.

Evaluates the along-pseudo-height horizontal pressure-gradient acceleration (HPGA) via the chain-rule / Leibniz expansion, anchored at the surface (the boundary the model honours):

\[a(\tilde z) = -g\left[\eta' - \rho_0\,\alpha(\tilde z_s)\, \tilde z_s' + \rho_0 \int_{\tilde z_s}^{\tilde z} \bigl(\alpha_{S_A}\,\partial_x S_A + \alpha_{\Theta}\,\partial_x \Theta\bigr)\, d\tilde z'\right]\]

where \(\eta' = \partial_x \eta\) is the sea-surface-height gradient, \(\tilde z_s\) is the surface pseudo-height (zero only when the surface pressure is zero) and \(\tilde z_s' = \partial_x \tilde z_s\) its gradient (all in the edge-normal direction), \(\alpha\) is specific volume, and \(\alpha_{S_A}\), \(\alpha_{\Theta}\) are TEOS-10 specific-volume first derivatives. The surface boundary term is kept general so nonzero sea-surface height and surface pressure are supported. The x-gradients of \(S_A\) and \(\Theta\) at fixed \(\tilde z\) are obtained by centred PCHIP differencing, which correctly handles moving-node inputs (e.g. the ztilde_gradient task).

Because the continuous pressure-gradient force is coordinate-invariant, this along-pseudo-height formula equals \(-g\,\partial z/\partial x|_{\tilde z}\) exactly, and is valid at any pseudo-height including near the seafloor.

__init__(config: PolarisConfigParser, x_sign: float = 1.0)[source]
Parameters:
  • config (PolarisConfigParser) – Configuration containing a horiz_press_grad section.

  • x_sign (float) – +1 or -1, mapping the config +x direction onto the edge normal. Derived from sign(xCell[cell1] - xCell[cell0]) in Analysis.

Methods

__init__(config[, x_sign])

dalpha_dx(z_tilde)

d(α)/d(edge-normal) at fixed z̃ (m² kg⁻¹ m⁻¹).

hpga(z_tilde)

Reference HPGA in the edge-normal direction (m s⁻²).

layer_mean_hpga(z_tilde_interfaces)

Layer-averaged HPGA in the edge-normal direction (m s⁻²).

specvol(z_tilde)

Specific volume at x=0 (m³ kg⁻¹).