PISM, A Parallel Ice Sheet Model  stable v2.0.6 committed by Constantine Khrulev on 2023-01-23 15:14:38 -0900

◆ eikonal_equation()

void pism::ocean::eikonal_equation ( IceModelVec2Int mask)

Find an approximate solution of the Eikonal equation on a given domain.

To specify the problem, the input field (mask) should be filled with

  • negative values outside the domain
  • zeros within the domain
  • ones at "wave front" locations

For example, to compute distances from the grounding line within ice shelves, fill generic ice shelf locations with zeros, set neighbors of the grounding line to 1, and the rest of the grid with -1 or some other negative number.

Note that this implementation updates ghosts every iteration. We could speed this up by checking if a point at a boundary of the processor sub-domain was updated and update ghosts in those cases only.

FIXME: replace this with a better algorithm.

Definition at line 873 of file PicoGeometry.cc.

References pism::IceModelVec2Int::as_int(), pism::GlobalMax(), pism::IceModelVec::grid(), pism::PointsWithGhosts::next(), pism::IceModelVec2Int::star(), pism::IceModelVec::stencil_width(), and pism::IceModelVec::update_ghosts().

Referenced by pism::ocean::PicoGeometry::compute_distances_cf(), and pism::ocean::PicoGeometry::compute_distances_gl().