///|
/// Return the legacy isothermal pressure field.
pub fn Lattice::pressure_field(self : Lattice) -> Field2D {
  self.density_field().map((_, _, rho) => rho / 3.0)
}

///|
/// Return the centered divergence of a legacy velocity field.
pub fn Lattice::divergence_field(self : Lattice) -> Field2D {
  let result = Field2D::new(size=self.size)
  for y in 0.. Field2D {
  let result = Field2D::new(size=self.size)
  for y in 0.. Double {
  self.divergence_field().absolute_integral() /
  self.fluid_count().max(1).to_double()
}

///|
/// Return the legacy pressure range.
pub fn Lattice::pressure_range(self : Lattice) -> (Double, Double) {
  let stats = self
    .pressure_field()
    .statistics_masked(mask=self.domain_mask(), include_solid=false)
  (stats.minimum, stats.maximum)
}

///|
/// Return the maximum legacy strain rate.
pub fn Lattice::maximum_strain_rate(self : Lattice) -> Double {
  self.strain_rate_field().statistics().maximum
}

///|
/// Return the maximum legacy pressure.
pub fn Lattice::maximum_pressure(self : Lattice) -> Double {
  self.pressure_field().statistics().maximum
}

///|
/// Return the mean legacy pressure.
pub fn Lattice::mean_pressure(self : Lattice) -> Double {
  self
  .pressure_field()
  .statistics_masked(mask=self.domain_mask(), include_solid=false).mean
}