pymoc.modules.Column

class pymoc.modules.Column(z=None, kappa=None, bs=0.025, bbot=0.0, bzbot=None, b=0.0, Area=None, N2min=1e-07)

Vertical Advection-Diffusion Column Model

Instances of this class represent 1D representations of buoyancy in a water column governed by vertical advection and diffusion. The velocity profile is required as an input. The script can either compute the equilibrium buoyancy profile for a given vertical velocity profile and boundary conditions or compute the tendency and perform a time-step of given length. BCs have to be fixed buoyancy at the top and either fixed b or db/dz at the bottom The time-stepping version can also handle horizontal advection into the column. This is, however, not (yet) implemented for the equilibrium solver

Parameters
  • z (ndarray) – Vertical depth levels of column grid. Units: m

  • kappa (float, function, or ndarray) – Vertical diffusivity profile. Units: m2/s

  • bs (float) – Surface level buoyancy boundary condition. Units: m/s2

  • bbot (float; optional) – Bottom level buoyancy boundary condition. Units: m/s2

  • bzbot (float; optional) – Bottom level buoyancy stratification. Can be used as an alternative to bbot. Units: s-2

  • b (float, function, or ndarray) – Initial vertical buoyancy profile. Recalculated on model run. Units: m/s

  • Area (float, function, or ndarray) – Horizontal area of basin. Units: m2

  • N2min (float; optional) – Minimum stratification for convective adjustment. Units: s-1

__init__(z=None, kappa=None, bs=0.025, bbot=0.0, bzbot=None, b=0.0, Area=None, N2min=1e-07)
Parameters
  • z (ndarray) – Vertical depth levels of column grid. Units: m

  • kappa (float, function, or ndarray) – Vertical diffusivity profile. Units: m2/s

  • bs (float) – Surface level buoyancy boundary condition. Units: m/s2

  • bbot (float; optional) – Bottom level buoyancy boundary condition. Units: m/s2

  • bzbot (float; optional) – Bottom level buoyancy stratification. Can be used as an alternative to bbot. Units: s-2

  • b (float, function, or ndarray) – Initial vertical buoyancy profile. Recalculated on model run. Units: m/s

  • Area (float, function, or ndarray) – Horizontal area of basin. Units: m2

  • N2min (float; optional) – Minimum stratification for convective adjustment. Units: s-1

Methods

Akappa(z)

Compute the area integrated diffusivity \(A\kappa\) at depth(s) z.

__init__([z, kappa, bs, bbot, bzbot, b, …])

param z

Vertical depth levels of column grid. Units: m

bc(ya, yb)

Calculate the residuals of boundary conditions for the advective-diffusive boundary value problem.

convect()

Carry out downward convective adustment of the vertical buoyancy profile to the minimum stratification, \(N^2_{m\!i\!n}\).

dAkappa_dz(z)

Compute the area integrated diffusivity gradient \(\partial_z\left(A\kappa\right)\) at depth(s) z.

horadv(vdx_in, b_in, dt)

Carry out horizon buoyancy advection into the column model from an adjoining model, for the timestepping solution.

ode(z, y)

Generate the ordinary differential equation for the equilibrium buoyancy profile, to be solved as a boundary value problem:

solve_equi(wA)

Solve for the equilibrium buoyancy profile, given a specified vertical velocity profile, and pre-set surface and bottom boundary conditions, based on the system of equations defined by pymoc.modules.Column.ode().

timestep([wA, dt, do_conv, vdx_in, b_in])

Carry out one timestep integration for the buoyancy profile, accounting for advective, diffusive, and convective effects.

vertadvdiff(wA, dt[, do_conv])

Calculate and apply the forcing from advection and diffusion on the vertical buoyancy profile, for the timestepping solution.