WindowExponential

class WindowExponential : public feasst::Window

Determine windows based on an expontential factor, α. The macrostate of the windows, mi, is given by

mi+1=(miα+mn+1αm0αn)1/α

where i is the index of the window, ranging from 0 to n+1 and n is the number of windows. Thus, mn+1 is the maximum macrostate over the entire range, while m0 is the minimum macrostate over the entire range. For α=1, the widths of all windows are the same. For α>1, the widths of the windows decrease exponentially. For α<1, the widths of the windows increase exponentially.

The given formula is continuous and not rounded. Instead, use Window::boundaries for handling rounding and overlap. For example, 4 windows over a macrostate range of [0, 200], α=2, results in the following segments: [0, 100.00, 141.42, 173.21, 200].

The choice of alpha can affect the efficiency of the simulation, depending on the relative speed of the convergence of the low macrostates compared to the higher macrostates. If lower macrostates converge slower, then decrease alpha. If higher macrostates converge slower, then increase alpha. The choice of alpha is dependent on the system, conditions and convergence criteria.

Arguments

  • alpha: exponential factor (default: 1.5).

  • min[i]: minimum macrostate value of the i-th window (default: None), The “[i]” is to be substituted for an integer 0, 1, 2, … This allows the user to override alpha at the smaller windows.

  • Window arguments.