pwtools.batch.conv_table¶
- pwtools.batch.conv_table(xx, yy, ffmt='%15.4f', sfmt='%15s', mode='last', orig=False, absdiff=False)[source]¶
Convergence table. Assume that quantity xx was varied, resulting in yy values. Return a string (table) listing:
x, dy1, dy2, ...
Useful for quickly viewing the results of a convergence study, where we assume that the sequence of yy values converges to a constant value.
- Parameters:
xx (1d sequence)
yy (1d sequence, nested 1d sequences, 2d array) – Values varied with xx. Each row is one parameter.
ffmt (str) – Format strings for floats (ffmt) and strings (sfmt)
sfmt (str) – Format strings for floats (ffmt) and strings (sfmt)
mode (str) – ‘next’ or ‘last’. Difference to the next value
y[i+1] - y[i]
or to the lasty[-1] - y[i]
.orig (bool) – Print original yy data as well.
absdiff (bool) – absolute values of differences
Examples
>>> kpoints = ['2 2 2', '4 4 4', '8 8 8'] >>> etot = [-300.0, -310.0, -312.0] >>> forces_rms = [0.3, 0.2, 0.1] >>> print(batch.conv_table(kpoints, etot, mode='last')) 2 2 2 -12.0000 4 4 4 -2.0000 8 8 8 0.0000 >>> print(batch.conv_table(kpoints, [etot,forces_rms], mode='last')) 2 2 2 -12.0000 -0.2000 4 4 4 -2.0000 -0.1000 8 8 8 0.0000 0.0000 >>> print(batch.conv_table(kpoints, [etot,forces_rms], mode='last', orig=True)) 2 2 2 -12.0000 -300.0000 -0.2000 0.3000 4 4 4 -2.0000 -310.0000 -0.1000 0.2000 8 8 8 0.0000 -312.0000 0.0000 0.1000 >>> print(batch.conv_table(kpoints, np.array([etot,forces_rms]), mode='next')) 2 2 2 -10.0000 -0.1000 4 4 4 -2.0000 -0.1000 8 8 8 0.0000 0.0000