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.Isoline — TypeRepresentation of a contour as an ordered set of discrete points
Fields
points: Vector of points in contourisclosed: Boolean which istrueif the contour returned to the starting point when being generatedarclength: Length of the contour
Ludwig.IsolineBundle — TypeCollection of contours generated from a matrix.
Fields
isolines: Vector of Isolineslevel: Constant value along contours inisolines