Module |
symfunc |
Description |
Usage |
Calculate the degree to which the environment about ions has a tetrahedral order. |
  |
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 |
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 the degree to which the environment about ions has a tetrahedral order.
This shortcut is an example of a COORDINATION_SHELL_AVERAGE,
which we can use to measure the degree to which the atoms in the first coordination shell around any atom, i is
is arranged like a tetrahedron. We perform this comparison by evaluating the following function.
s(i)=1∑jσ(rij)∑jσ(rij)[(xij+yij+zij)3r3ij+(xij−yij−zij)3r3ij+(−xij+yij−zij)3r3ij+(−xij−yij+zij)3r3ij]
Here rij is the magnitude of the vector connecting atom i to atom j and xij, yij and zij
are its three components. The function σ(rij) is a switching function that acts on the distance between
atoms i and j. The parameters of this function should be set so that the function is equal to one
when atom j is in the first coordination sphere of atom i and is zero otherwise.
The following command calculates the average value of the TETRAHEDRAL parameter for a set of 64 atoms all of the same type
and outputs this quantity to a file called colvar.
Click on the labels of the actions for more information on what each action computes
ttThe TETRAHEDRAL action with label tt calculates the following quantities: Quantity | Type | Description |
tt | vector | the symmetry function for each of the specified atoms |
tt_mean | scalar | the mean of the colvars |
: TETRAHEDRALCalculate the degree to which the environment about ions has a tetrahedral order. 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=1.3 R_0=0.2} MEAN calculate the mean of all the quantities
tt: TETRAHEDRALCalculate the degree to which the environment about ions has a tetrahedral order. This action is a shortcut and uses the defaults shown here. 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=1.3 R_0=0.2} MEAN calculate the mean of all the quantities PHI The Euler rotational angle phi=0.0 THETA The Euler rotational angle theta=0.0 PSI The Euler rotational angle psi=0.0
# tt: TETRAHEDRAL SPECIES=1-64 SWITCH={RATIONAL D_0=1.3 R_0=0.2} MEAN
tt_grpThe GROUP action with label tt_grp calculates the following quantities: Quantity | Type | Description |
tt_grp | atoms | indices of atoms specified in GROUP |
: GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-64
tt_matThe CONTACT_MATRIX action with label tt_mat calculates the following quantities: Quantity | Type | Description |
tt_mat.w | matrix | a matrix containing the weights for the bonds between each pair of atoms |
tt_mat.x | matrix | the projection of the bond on the x axis |
tt_mat.y | matrix | the projection of the bond on the y axis |
tt_mat.z | matrix | the projection of the bond on the z axis |
: CONTACT_MATRIXAdjacency matrix in which two atoms are adjacent if they are within a certain cutoff. More details GROUPspecifies the list of atoms that should be assumed indistinguishable=1-64 SWITCHthe input for the switching function that acts upon the distance between each pair of atoms. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL D_0=1.3 R_0=0.2} COMPONENTS also calculate the components of the vectors connecting the atoms in the contact matrix
tt_rThe CUSTOM action with label tt_r calculates the following quantities: Quantity | Type | Description |
tt_r | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_mat.x,tt_mat.y,tt_mat.z PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO FUNCthe function you wish to evaluate=sqrt(x*x+y*y+z*z)
tt_vfuncThe CUSTOM action with label tt_vfunc calculates the following quantities: Quantity | Type | Description |
tt_vfunc | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_mat.x,tt_mat.y,tt_mat.z,tt_r VARthe names to give each of the arguments in the function=x,y,z,r PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO FUNCthe function you wish to evaluate=((x+y+z)/r)^3+((x-y-z)/r)^3+((-x+y-z)/r)^3+((-x-y+z)/r)^3
tt_wvfuncThe CUSTOM action with label tt_wvfunc calculates the following quantities: Quantity | Type | Description |
tt_wvfunc | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_vfunc,tt_mat.w FUNCthe function you wish to evaluate=x*y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
tt_onesThe CONSTANT action with label tt_ones calculates the following quantities: Quantity | Type | Description |
tt_ones | vector | the constant value that was read from the plumed input |
: ONESCreate a constant vector with all elements equal to one More details SIZEthe number of ones that you would like to create=64
ttThe MATRIX_VECTOR_PRODUCT action with label tt calculates the following quantities: Quantity | Type | Description |
tt | vector | the vector that is obtained by taking the product between the matrix and the vector that were input |
: MATRIX_VECTOR_PRODUCTCalculate the product of the matrix and the vector More details ARGthe label for the matrix and the vector/scalar that are being multiplied=tt_wvfunc,tt_ones
tt_denomThe MATRIX_VECTOR_PRODUCT action with label tt_denom calculates the following quantities: Quantity | Type | Description |
tt_denom | vector | the vector that is obtained by taking the product between the matrix and the vector that were input |
: MATRIX_VECTOR_PRODUCTCalculate the product of the matrix and the vector More details ARGthe label for the matrix and the vector/scalar that are being multiplied=tt_mat.w,tt_ones
tt_nThe CUSTOM action with label tt_n calculates the following quantities: Quantity | Type | Description |
tt_n | vector | the vector obtained by doing an element-wise application of an arbitrary function to the input vectors |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt,tt_denom FUNCthe function you wish to evaluate=x/y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
tt_meanThe MEAN action with label tt_mean calculates the following quantities: Quantity | Type | Description |
tt_mean | scalar | the mean of all the elements in the input vector |
: MEANCalculate the arithmetic mean of the elements in a vector More details ARGthe values input to this function=tt_n PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# --- End of included input --- PRINTPrint quantities to a file. More details ARGthe labels of the values that you would like to print to the file=tt.mean FILEthe name of the file on which to output these quantities=colvar
The following command calculates the number of TETRAHEDRAL parameters that are greater than 0.8 in a set of 10 atoms.
In this calculation it is assumed that there are two atom types A and B and that the first coordination sphere of the
10 atoms of type A contains atoms of type B. The formula above is thus calculated for ten different A atoms and within
it the sum over j runs over 40 atoms of type B that could be in the first coordination sphere.
Click on the labels of the actions for more information on what each action computes
ttThe TETRAHEDRAL action with label tt calculates the following quantities: Quantity | Type | Description |
tt | vector | the symmetry function for each of the specified atoms |
tt_morethan | scalar | the number of colvars that have a value more than a threshold |
: TETRAHEDRALCalculate the degree to which the environment about ions has a tetrahedral order. This action is a shortcut and it has hidden defaults. More details SPECIESAthe list of atoms for which the symmetry function is being calculated=1-10 SPECIESBthe list of atoms that can be in the environments of each of the atoms for which the symmetry function is being calculated=11-40 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=1.3 R_0=0.2} MORE_THANcalculate the number of variables that are more than a certain target value. Options for this keyword are explained in the documentation for MORE_THAN.={RATIONAL R_0=0.8}
tt: TETRAHEDRALCalculate the degree to which the environment about ions has a tetrahedral order. This action is a shortcut and uses the defaults shown here. More details SPECIESAthe list of atoms for which the symmetry function is being calculated=1-10 SPECIESBthe list of atoms that can be in the environments of each of the atoms for which the symmetry function is being calculated=11-40 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=1.3 R_0=0.2} MORE_THANcalculate the number of variables that are more than a certain target value. Options for this keyword are explained in the documentation for MORE_THAN.={RATIONAL R_0=0.8} PHI The Euler rotational angle phi=0.0 THETA The Euler rotational angle theta=0.0 PSI The Euler rotational angle psi=0.0
# tt: TETRAHEDRAL SPECIESA=1-10 SPECIESB=11-40 SWITCH={RATIONAL D_0=1.3 R_0=0.2} MORE_THAN={RATIONAL R_0=0.8}
tt_grpThe GROUP action with label tt_grp calculates the following quantities: Quantity | Type | Description |
tt_grp | atoms | indices of atoms specified in GROUP |
: GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-10
tt_matThe CONTACT_MATRIX action with label tt_mat calculates the following quantities: Quantity | Type | Description |
tt_mat.w | matrix | a matrix containing the weights for the bonds between each pair of atoms |
tt_mat.x | matrix | the projection of the bond on the x axis |
tt_mat.y | matrix | the projection of the bond on the y axis |
tt_mat.z | matrix | the projection of the bond on the z axis |
: CONTACT_MATRIXAdjacency matrix in which two atoms are adjacent if they are within a certain cutoff. More details GROUPAwhen you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPB=1-10 GROUPBwhen you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPA=11-40 SWITCHthe input for the switching function that acts upon the distance between each pair of atoms. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL D_0=1.3 R_0=0.2} COMPONENTS also calculate the components of the vectors connecting the atoms in the contact matrix
tt_rThe CUSTOM action with label tt_r calculates the following quantities: Quantity | Type | Description |
tt_r | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_mat.x,tt_mat.y,tt_mat.z PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO FUNCthe function you wish to evaluate=sqrt(x*x+y*y+z*z)
tt_vfuncThe CUSTOM action with label tt_vfunc calculates the following quantities: Quantity | Type | Description |
tt_vfunc | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_mat.x,tt_mat.y,tt_mat.z,tt_r VARthe names to give each of the arguments in the function=x,y,z,r PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO FUNCthe function you wish to evaluate=((x+y+z)/r)^3+((x-y-z)/r)^3+((-x+y-z)/r)^3+((-x-y+z)/r)^3
tt_wvfuncThe CUSTOM action with label tt_wvfunc calculates the following quantities: Quantity | Type | Description |
tt_wvfunc | matrix | the matrix obtained by doing an element-wise application of an arbitrary function to the input matrix |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt_vfunc,tt_mat.w FUNCthe function you wish to evaluate=x*y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
tt_onesThe CONSTANT action with label tt_ones calculates the following quantities: Quantity | Type | Description |
tt_ones | vector | the constant value that was read from the plumed input |
: ONESCreate a constant vector with all elements equal to one More details SIZEthe number of ones that you would like to create=30
ttThe MATRIX_VECTOR_PRODUCT action with label tt calculates the following quantities: Quantity | Type | Description |
tt | vector | the vector that is obtained by taking the product between the matrix and the vector that were input |
: MATRIX_VECTOR_PRODUCTCalculate the product of the matrix and the vector More details ARGthe label for the matrix and the vector/scalar that are being multiplied=tt_wvfunc,tt_ones
tt_denomThe MATRIX_VECTOR_PRODUCT action with label tt_denom calculates the following quantities: Quantity | Type | Description |
tt_denom | vector | the vector that is obtained by taking the product between the matrix and the vector that were input |
: MATRIX_VECTOR_PRODUCTCalculate the product of the matrix and the vector More details ARGthe label for the matrix and the vector/scalar that are being multiplied=tt_mat.w,tt_ones
tt_nThe CUSTOM action with label tt_n calculates the following quantities: Quantity | Type | Description |
tt_n | vector | the vector obtained by doing an element-wise application of an arbitrary function to the input vectors |
: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=tt,tt_denom FUNCthe function you wish to evaluate=x/y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
tt_mtThe MORE_THAN action with label tt_mt calculates the following quantities: Quantity | Type | Description |
tt_mt | vector | the vector obtained by doing an element-wise application of a function that is one if the if the input is more than a threshold to the input vectors |
: MORE_THANUse a switching function to determine how many of the input variables are more than a certain cutoff. More details ARGthe values input to this function=tt_n SWITCHThis keyword is used if you want to employ an alternative to the continuous swiching function defined above={RATIONAL R_0=0.8}
tt_morethanThe SUM action with label tt_morethan calculates the following quantities: Quantity | Type | Description |
tt_morethan | scalar | the sum of all the elements in the input vector |
: SUMCalculate the sum of the arguments More details ARGthe values input to this function=tt_mt PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# --- End of included input --- PRINTPrint quantities to a file. More details ARGthe labels of the values that you would like to print to the file=tt.* FILEthe name of the file on which to output these quantities=colvar
Notice that you can you can rotate the bond vectors before computing the
function in the above expression as is discussed in the documentation for COORDINATION_SHELL_FUNCTION
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 |