BuildRecursiveTable
-
class BuildRecursiveTable : public feasst::Action
The RecursiveTable is generated by comparing with the output of MayerSampling::training_file. This example assumes single-site isotropic interactions, in which case the training file simply contains a list of squared distances and energy.
To begin, an inner cutoff distance is obtained by finding the lowest distance at which the energy is less than the given parameter “hard_limit_u.” The outer cutoff is can be set manually or automatically generated.
A 1D RecursiveTable of given size is generated by linearly interpolating between the closest data points.
Then all of the data is evaluated against the following criteria in order to iteratively insert nested tables inside the elements of the first table,
\(r^2|\exp(-\beta U) - \exp(-\beta U_{table})|\),
where \(U\) is from the data points, \(U_{table}\) is linearly interpolated, and \(\beta\) is a given parameter which determines the relative emphasis on accurately fitting the highest energies. This functional form was inspired by the 3d integration of a Mayer funciton to include the \(r^2\) Jacobian term to appropriately weight larger distances. In addition, increased beta (low temperature) weighs the low energy configurations more. This iterative process continues until the criteria of all data points are less than the given “min_criteria.”
As currently implemented, the RecursiveTable has a maximum depth of one recursion. This means that “min_criteria” can be set too low and never achieved, at which point the user will be presented with an error. This happens if a data point inside of an element that has already had a RecursiveTable inserted is still above the “min_criteria.”
Arguments
mayer_training_file: input file, output by MayerSampling::training_file.
cutoff: cutoff distance. If -1, find automatically (default: -1).
output_file: write RecursiveTablePotential checkpoint file.
verbose_file: output file for more fitting information.
hard_limit_u: determines the inner cutoff distance (default: 100).
size: the size of each of the RecursiveTable s (default: 5).
num_orientations_per_pi: angular size of each of the RecursiveTable s (default: 5).
beta: parameter which weights low energy configurations (default: 1).
min_criteria: iterative target minimum criteria (default: 0.03).