///|
/// Return all macroscopic cells in row-major order.
pub fn Lattice::cells(self : Lattice) -> Array[Cell] {
  let out = Array::new(capacity=self.size.width * self.size.height)
  for y in 0.. Double {
  let mut total = 0.0
  for y in 0.. Stability {
  let mut min_rho = 1000000000.0
  let mut max_rho = -1000000000.0
  let mut max_speed = 0.0
  let mut mass = 0.0
  let mut has_nan = false
  for y in 0.. 0.0 &&
    max_speed < 0.35 &&
    self.config.omega > 0.0 &&
    self.config.omega < 2.0,
  }
}

///|
/// Mean horizontal velocity over non-solid cells.
pub fn Lattice::mean_ux(self : Lattice) -> Double {
  let mut total = 0.0
  let mut n = 0
  for y in 0..