Shortcut: COORDINATION_SHELL_FUNCTION

Module symfunc
Description Usage
Calculate an arbitrary function of all the bond vectors in the first coordination sphere of an atom used in 0 tutorialsused in 0 eggs
output value type
the symmetry function for each of the specified atoms vector

Output components

This action can calculate the values in the following table when the associated keyword is included in the input for the action. These values can be referenced elsewhere in the input by using this Action's label followed by a dot and the name of the value required from the list below.

Name Type Keyword Description
lessthan scalar LESS_THAN the number of colvars that have a value less than a threshold
morethan scalar MORE_THAN the number of colvars that have a value more than a threshold
altmin scalar ALT_MIN the minimum value of the cv
min scalar MIN the minimum colvar
max scalar MAX the maximum colvar
between scalar BETWEEN the number of colvars that have a value that lies in a particular interval
highest scalar HIGHEST the largest of the colvars
lowest scalar LOWEST the smallest of the colvars
sum scalar SUM the sum of the colvars
mean scalar MEAN the mean of the colvars

Input

The atoms that serve as the input for this action are specified using one or more of the keywords in the following table.

Keyword Type Description
SPECIES atoms the list of atoms for which the symmetry function is being calculated and the atoms that can be in the environments
SPECIESA atoms the list of atoms for which the symmetry function is being calculated
SPECIESB atoms the list of atoms that can be in the environments of each of the atoms for which the symmetry function is being calculated

Further details and examples

Calculate an arbitrary function of all the bond vectors in the first coordination sphere of an atom

This shortcut allows you to calculate the sum for an arbitrary function of the bond vectors that connect an atom to each of its neighbours. In other words, this action allows you to compute the following:

si=ijσ(rij)f(xij,yij,zij,rij))

In this expression, xij,yij,zij are the components of the vector connecting atoms i and j and rij is the magnitude of this vector. σ(rij) is then a switching function that ensures that the aritrary function f is only evaluated for if atom j is within a certain cutoff distance of atom i.

Below you can see a simple example that shows how this action can be used in practise.

Click on the labels of the actions for more information on what each action computes
tested on2.11
cv: COORDINATION_SHELL_FUNCTIONCalculate an arbitrary function of all the bond vectors in the first coordination sphere of an atom This action is a shortcut and it has hidden defaults. More details SPECIESthe list of atoms for which the symmetry function is being calculated and the atoms that can be in the environments=1-64 SWITCHthe switching function that it used in the construction of the contact matrix. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL D_0=3.0 R_0=1.5} FUNCTIONthe function of the bond vectors that you would like to evaluate=((x+y+z)/r)^3+((x-y-z)/r)^3+((-x+y-z)/r)^3+((-x-y+z)/r)^3
PRINTPrint quantities to a file. More details ARGthe labels of the values that you would like to print to the file=cv FILEthe name of the file on which to output these quantities=colvar

The above input calculates 64 si values - one si values for each of the atoms specified using the SPECIES keyword. These 64 numbers are then output to a file. The function of x, y, z and r to be evaluated is specified using the FUNCTION keyword. Obviously, if your function does not depend on all four of these variables they can be excluded from your function.

As discussed in this paper it is sometimes useful to rotate the bond vectors before computing the arbitrary function f in the above expression. To perform such rotations you use the PHI, THETA and PSI keywords. The xij,yij and zij values that enter f in the expression above are then calculated as:

\left( \begin{matrix} x_{ij} \\ y_{ij} \\ z_{ij} \end{matrix} \right) = \left( \begin{matrix} \cos(\psi)\cos(\phi) - \cos(\theta)\sin(\phi)\sin(\psi) & \cos(\psi)*\sin(\phi)+\cos(\theta)*\cos(\phi)*\sin(\psi) & \sin(\psi)*sin(\theta) \\ -\sin(\psi)*\cos(\phi)-\cos(\theta)*\sin(\phi)*\cos(\psi) & -\sin(\psi)*\sin(\phi)+\cos(\theta)*\cos(\phi)*std::cos(\psi), & \cos(\psi)*\sin(\theta) \\ \sin(\theta)*\sin(\phi) & \sin(\theta)*\cos(\phi) & \cos(\theta) \end{matrix} \left( \begin{matrix} x_{ij}' \\ y_{ij}' \\ z_{ij}' \end{matrix} \right)

xij,yij and zij in this expression are the bond vectors that are calculated in the lab frame. The matrix in the above expression is thus just a rotation matrix that converts the lab frame to some frame of interest.

References

More information about how this action can be used is available in the following articles: - A. D. White, G. A. Voth, Efficient and Minimal Method to Bias Molecular Simulations with Experimental Data. Journal of Chemical Theory and Computation. 10, 3023–3030 (2014) - S. Angioletti-Uberti, M. Ceriotti, P. D. Lee, M. W. Finnis, Solid-liquid interface free energy through metadynamics simulations. Physical Review B. 81 (2010) - B. Cheng, G. A. Tribello, M. Ceriotti, Solid-liquid interfacial free energy out of equilibrium. Physical Review B. 92 (2015) - B. Cheng, G. A. Tribello, M. Ceriotti, The Gibbs free energy of homogeneous nucleation: From atomistic nuclei to the planar limit. The Journal of Chemical Physics. 147 (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)

Syntax

The following table describes the keywords and options that can be used with this action

Keyword Type Default Description
SPECIES input none the list of atoms for which the symmetry function is being calculated and the atoms that can be in the environments
SPECIESA input none the list of atoms for which the symmetry function is being calculated
SPECIESB input none the list of atoms that can be in the environments of each of the atoms for which the symmetry function is being calculated
NN compulsory 6 The n parameter of the switching function
MM compulsory 0 The m parameter of the switching function; 0 implies 2*NN
D_0 compulsory 0.0 The d_0 parameter of the switching function
R_0 compulsory none The r_0 parameter of the switching function
FUNCTION compulsory none the function of the bond vectors that you would like to evaluate
PHI compulsory 0.0 The Euler rotational angle phi
THETA compulsory 0.0 The Euler rotational angle theta
PSI compulsory 0.0 The Euler rotational angle psi
ALPHA compulsory 3.0 The alpha parameter of the angular function that is used for FCCUBIC
SWITCH optional not used the switching function that it used in the construction of the contact matrix. Options for this keyword are explained in the documentation for LESS_THAN.
LESS_THAN optional not used calculate the number of variables that are less than a certain target value. Options for this keyword are explained in the documentation for LESS_THAN.
MORE_THAN optional not used calculate the number of variables that are more than a certain target value. Options for this keyword are explained in the documentation for MORE_THAN.
ALT_MIN optional not used calculate the minimum value
MIN optional not used calculate the minimum value
MAX optional not used calculate the maximum value
BETWEEN optional not used calculate the number of values that are within a certain range. Options for this keyword are explained in the documentation for BETWEEN.
HIGHEST optional false this flag allows you to recover the highest of these variables
HISTOGRAM optional not used calculate a discretized histogram of the distribution of values
LOWEST optional false this flag allows you to recover the lowest of these variables
SUM optional false calculate the sum of all the quantities
MEAN optional false calculate the mean of all the quantities
LOWMEM optional false this flag does nothing and is present only to ensure back-compatibility