Marching Squares Algorithm

Ludwig generates the energy contours for its Fermi-surface centered meshes using a simple marching squares algorithm. The implementation is inspired by the implementation in Contour.jl, but modified so that the generated contours are angle-ordered in the first quadrant on either side of the umklapp surface. The marching squares algorithm stores the resulting contours in the convenient Isoline Bundle which stores information about the size and topology of the Fermi surface.

Ludwig.IsolineType

Representation of a contour as an ordered set of discrete points

Fields

  • points: Vector of points in contour
  • isclosed: Boolean which is true if the contour returned to the starting point when being generated
  • arclength: Length of the contour
source
Ludwig.IsolineBundleType

Collection of contours generated from a matrix.

Fields

  • isolines: Vector of Isolines
  • level: Constant value along contours in isolines
source