Module: gridtools
| Description | Usage |
|---|---|
| tools for manipulating functions that are stored on grids | |
| Authors: Gareth Tribello |
Details
The tools in this module were initially implemented to provide a way for estimate the free energy surface as a function of a small number of variables from a biased or unbiased simulation. If the simulation is unbiased we can estimate the free energy surface, , as a function of a coordinate, , as:
where is Boltzmann's constant, is the temperature and is a probability density function that we can estimate from a molecular dynamics simulation by computing a histogram. Functionality for this procedure for implementing free energy surfaces is thus provided here through the HISTOGRAM and CONVERT_TO_FES commands.
The work described in the papers cited below demonstrates that the process of calculating a histogram using kernel density esimation is used in a range of different methods. The development of the techniques described in those papers thus informed the development of this module. In particular, we recognised that it is useful to have an implementation of kernel density estimation that can:
- take in multiple identical indisinguishable instances of a quantity that might be monitored and compute an instaneous distribution.
- take in a vector of weights to be used for the heights of these indisinguishable instances of the quantity of interest.
With these modifcations we can then use the same functionality that we use for constructing the histogram for constructing an estimate for an instaneous phase field that provides a continuous representation of the value of an order parameter as a function of position. In other words, even if you intially find the combinations of KDE and ACCUMULATE actions that are used in the shortcut for HISTOGRAM confusing, we hope that they will begin to make sense once you read the papers cited below and start exploring some of the more complicated functionalities thare are provided within this module.
Actions
The following actions are part of this module
| Name | Description | Tags |
|---|---|---|
| CONVERT_TO_FES | Convert a histogram to a free energy surface. | GRIDANALYSIS |
| DUMPCUBE | Output a three dimensional grid using the Gaussian cube file format. | GRIDANALYSIS |
| DUMPGRID | Output the function on the grid to a file with the PLUMED grid format. | GRIDANALYSIS |
| EVALUATE_FUNCTION_FROM_GRID | Calculate the function stored on the input grid at an arbitrary point | GRIDANALYSIS |
| FIND_GRID_MAXIMUM | Find the point with the highest value of the function on the grid | GRIDANALYSIS |
| FIND_GRID_MINIMUM | Find the point with the lowest value of the function on the grid | GRIDANALYSIS |
| GET_VOLUME_ELEMENT | Get the volume element from the input grid | GRIDANALYSIS |
| GRADIENT | Calculate the gradient of an input grid | MCOLVAR |
| HISTOGRAM | Accumulate the average probability density along a few CVs from a trajectory. | GRIDCALC |
| INTEGRATE_GRID | Calculate the numerical integral of the function stored on the grid | GRIDCALC |
| INTERPOLATE_GRID | Interpolate a smooth function stored on a grid onto a grid with a smaller grid spacing. | GRIDANALYSIS |
| KDE | Create a histogram from the input scalar/vector/matrix using KDE | ANALYSIS |
| KL_ENTROPY | Calculate the KL entropy of a distribution | ANALYSIS |
| MARGINAL | Compute a marginal from the input multi-dimensional function | GRIDANALYSIS |
| MULTICOLVARDENS | Evaluate the average value of a multicolvar on a grid. | GRIDCALC |
| PAIRENTROPIES | Calculate the KL entropy from the RDF around each of the atoms | MCOLVAR |
| PAIRENTROPY | Calculate the KL Entropy from the radial distribution function | MCOLVAR |
| RDF | Calculate the radial distribution function | ANALYSIS |
| REFERENCE_GRID | Setup a constant grid by either reading values from a file or definining a function in input | GRIDCALC |
| SPHERICAL_KDE | Create a histogram from the input scalar/vector/matrix using SPHERICAL_KDE | ANALYSIS |
References
More information about this module is available in the following articles:
- I. Gimondi, G. A. Tribello, M. Salvalaglio, Building maps in collective variable space. The Journal of Chemical Physics. 149 (2018)
- G. Gobbo, M. A. Bellucci, G. A. Tribello, G. Ciccotti, B. L. Trout, Nucleation of Molecular Crystals Driven by Relative Information Entropy. Journal of Chemical Theory and Computation. 14, 959–972 (2018)
- E. Baldi, M. Ceriotti, G. A. Tribello, Extracting the interfacial free energy and anisotropy from a smooth fluctuating dividing surface. Journal of Physics: Condensed Matter. 29, 445001 (2017)
- B. Cheng, M. Ceriotti, G. A. Tribello, Classical nucleation theory predicts the shape of the nucleus in homogeneous solidification. The Journal of Chemical Physics. 152 (2020)