Rowan uses the wavefront propagation algorithm to run scans. The initial geometry is adjusted to the closest geometry that corresponds to a scan point by adjusting bond lengths, angles, or dihedrals, and a constrained optimization is carried out. As the scan runs, the geometry of each newly completed scan point is modified to move the point forward and back along the scan coordinate, and these new geometries are added to an internal job queue. If a geometry produces the same or higher energy as a previous geometry at the same scan coordinate, then no new coordinates are added, and the scan converges when the internal queue is exhausted.