anchor.diff:      let pressure_units = Seq.map (fun p -> p * 1.0<kg/(m*s^2)>) pressures
       Seq.zip markers pressure_units
   
  -  let get_pressure (where: Coord) =
  +  // calculate solid wall pressure (which is not uniform!)
  +  let get_solid_pressure (where: Coord) (origin: Coord) p (inv_c: float<(m^2*s)/kg>) d =
  +    let vsolid = (Grid.raw_get where).velocity
  +    let vborder = (Grid.raw_get origin).velocity
  +    let (diff: float<m/s>) = (Coord.border_value d vborder) - (Coord.border_value d vsolid)
  +    let (result: float<kg/(m*s^2)>) = p + (diff / inv_c)
  +    result
  +
  +  let get_pressure (origin: Coord) p inv_c d (where: Coord) =
       match Grid.get where with
         | Some c when c.is_solid () ->
  +        get_solid_pressure where origin p inv_c d
  +      | Some c when c.media = Fluid ->
  +        Option.get c.pressure
  +      | _ ->
           0.0<kg/(m*s^2)>
  -      | Some c ->
  -        Option.get c.pressure
  -      | None ->
  -        Constants.atmospheric_pressure
   
  -  let backwards_gradient (where: Coord) p =
  -    let p1 = where.get_neighbor NegX |> get_pressure
  -    let p2 = where.get_neighbor NegY |> get_pressure
  -    let p3 = where.get_neighbor NegZ |> get_pressure
  +  let backwards_gradient (where: Coord) p inv_c =
  +    let p1 = where.get_neighbor NegX |> get_pressure where p inv_c NegX
  +    let p2 = where.get_neighbor NegY |> get_pressure where p inv_c NegY
  +    let p3 = where.get_neighbor NegZ |> get_pressure where p inv_c NegZ
       Vector3d<kg/(m*s^2)>(p - p1, p - p2, p - p3)
   
     let get_adjusted_velocity (where: Coord) p inv_c dir =
  
positive.code:   let divergence (where: Coord) =
      let cell = Grid.raw_get where
      let is_nonsolid (_, n) = let c = Grid.raw_get n in c.is_not_solid ()
      let backward = where.backward_neighbors ()
      let outgoing = Seq.filter is_nonsolid backward
                     |> Seq.fold (fun accum (dir, _) ->
                                    let v = Coord.border dir cell.velocity
                                    accum .+ v
  
negative.code:   // verify that pressures look sane.
    let check_pressures markers =
      for m in markers do
        let p = (Grid.raw_get m).pressure |> Option.get |> ((/) (LanguagePrimitives.FloatWithMeasure 1.0))
        if Double.IsNaN p then
          failwith "Invalid pressure."
        if Double.IsNegativeInfinity p then
  