Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.1-cd005eec8 committed by Constantine Khrulev on 2025-03-07
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages

◆ eikonal_equation()

void pism::ocean::eikonal_equation ( array::Scalar1 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 865 of file PicoGeometry.cc.

References pism::array::Scalar::as_int(), pism::GlobalMax(), pism::array::Array::grid(), pism::array::Array2D< T >::star(), pism::array::Array::stencil_width(), and pism::array::Array::update_ghosts().

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