Macrostate ranges are often broken into separate windows for parallelization. The relative size of these windows can be optimized depending upon the system. Each window must share atleast one macrostate with its neighbors in order to recover the free energy of the entire range.
A segment is a countinuous, theoretical formula for analytically spacing macrostate ranges. This line segment includes both the minimum, maximum, and intermediate values. Thus, a 4 window segment would contain 5 values.
Boundaries are integer macrostate minimums and maximums utilized by each window. Thus, 4 window boundaries would contain 4 min and max values. Boundaries use the given line segment, either from formula or user input, and then account for rounding and extra overlap between windows.
For example, 4 windows with segments given by [0, 100.00, 141.42, 173.21, 200] with 4 extra overlap and rounding would result in the following boundaries: [[0, 100], [96, 141], [137, 173], [169, 200]] where each of the 4 window is expressed as a [min, max] pair.
Window(const argtype &args = argtype())¶
minimum: minimum in macrostate range (default: 0).
maximum: maximum in macrostate range.
num: number of windows.
num_from_omp: obtain num from OMP threads (default: false).
extra_overlap: additional overlap of the windows in addition to the one macrostate that they must share (default: 0).
Return the minimum.
Return the maximum.
Return the number of windows.
Return the extra overlap.
segment() const = 0¶
Return the continuous, segmented boundaries of the range. This should be return num + 1 boundaries, to include global min and max.
Return the boundaries as a vector of vectors.