Shortcut: LOCAL_CRYSTALINITY
Module |
symfunc |
Description |
Usage |
Calculate the local crystalinity symmetry function |
  |
output value |
type |
the value of the local crystalinity for each of the input 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 local crystalinity symmetry function
This shortcut provides an implementation of the local crystalinity order parameter that is described in the paper in the bibliography.
To use this CV you define a series of unit vectors, gk, using multiple instances of the GVECTOR keyword. This allows you to define a
symmetry function for the ith atom as:
s_i = \sum_k \left| \frac{\sum_j \sigma(|r_{ij}|) e^{ig_k r_{ij}}}{\sum_j \sigma(|r_{ij}|) \right|^2
In this expression rij is the vector connecting atom i to atom j and σ is a switching function that acts upon the magnidue of this vector, |rij|.
The following input is an example that shows how this symmetry function can be used in practice.
Click on the labels of the actions for more information on what each action computes
lcThe LOCAL_CRYSTALINITY action with label lc calculates the following quantities: Quantity | Type | Description |
lc | vector | the value of the local crystalinity for each of the input atoms |
lc_sum | scalar | the sum of the colvars |
: LOCAL_CRYSTALINITYCalculate the local crystalinity symmetry function This action is a shortcut. 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} GVECTOR1the coefficients of the linear combinations to compute for the CV=1,1,1 GVECTOR2the coefficients of the linear combinations to compute for the CV=1,0.5,0.5 GVECTOR3the coefficients of the linear combinations to compute for the CV=0.5,1.0,1.0 SUM calculate the sum of all the quantities
# lc: LOCAL_CRYSTALINITY SPECIES=1-64 SWITCH={RATIONAL D_0=3.0 R_0=1.5} GVECTOR1=1,1,1 GVECTOR2=1,0.5,0.5 GVECTOR3=0.5,1.0,1.0 SUM
lc_grpThe GROUP action with label lc_grp calculates the following quantities: Quantity | Type | Description |
lc_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
lc_matThe CONTACT_MATRIX action with label lc_mat calculates the following quantities: Quantity | Type | Description |
lc_mat.w | matrix | a matrix containing the weights for the bonds between each pair of atoms |
lc_mat.x | matrix | the projection of the bond on the x axis |
lc_mat.y | matrix | the projection of the bond on the y axis |
lc_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=3.0 R_0=1.5} COMPONENTS also calculate the components of the vectors connecting the atoms in the contact matrix
lc_onesThe CONSTANT action with label lc_ones calculates the following quantities: Quantity | Type | Description |
lc_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
lc_denomThe MATRIX_VECTOR_PRODUCT action with label lc_denom calculates the following quantities: Quantity | Type | Description |
lc_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=lc_mat.w,lc_ones
lc_dot1The COMBINE action with label lc_dot1 calculates the following quantities: Quantity | Type | Description |
lc_dot1 | matrix | the matrix obtained by doing an element-wise application of a linear compbination to the input matrix |
: COMBINECalculate a polynomial combination of a set of other variables. More details ARGthe values input to this function=lc_mat.x,lc_mat.y,lc_mat.z PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO COEFFICIENTS the coefficients of the arguments in your function=1,1,1
lc_cos1The CUSTOM action with label lc_cos1 calculates the following quantities: Quantity | Type | Description |
lc_cos1 | 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=lc_mat.w,lc_dot1 FUNCthe function you wish to evaluate=x*cos(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_sin1The CUSTOM action with label lc_sin1 calculates the following quantities: Quantity | Type | Description |
lc_sin1 | 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=lc_mat.w,lc_dot1 FUNCthe function you wish to evaluate=x*sin(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_cossum1The MATRIX_VECTOR_PRODUCT action with label lc_cossum1 calculates the following quantities: Quantity | Type | Description |
lc_cossum1 | 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=lc_cos1,lc_ones
lc_sinsum1The MATRIX_VECTOR_PRODUCT action with label lc_sinsum1 calculates the following quantities: Quantity | Type | Description |
lc_sinsum1 | 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=lc_sin1,lc_ones
lc_cosmean1The CUSTOM action with label lc_cosmean1 calculates the following quantities: Quantity | Type | Description |
lc_cosmean1 | 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 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 ARGthe values input to this function=lc_cossum1,lc_denom
lc_sinmean1The CUSTOM action with label lc_sinmean1 calculates the following quantities: Quantity | Type | Description |
lc_sinmean1 | 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 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 ARGthe values input to this function=lc_sinsum1,lc_denom
lc_1The CUSTOM action with label lc_1 calculates the following quantities: Quantity | Type | Description |
lc_1 | 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 FUNCthe function you wish to evaluate=x*x+y*y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO ARGthe values input to this function=lc_cosmean1,lc_sinmean1
lc_dot2The COMBINE action with label lc_dot2 calculates the following quantities: Quantity | Type | Description |
lc_dot2 | matrix | the matrix obtained by doing an element-wise application of a linear compbination to the input matrix |
: COMBINECalculate a polynomial combination of a set of other variables. More details ARGthe values input to this function=lc_mat.x,lc_mat.y,lc_mat.z PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO COEFFICIENTS the coefficients of the arguments in your function=1,0.5,0.5
lc_cos2The CUSTOM action with label lc_cos2 calculates the following quantities: Quantity | Type | Description |
lc_cos2 | 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=lc_mat.w,lc_dot2 FUNCthe function you wish to evaluate=x*cos(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_sin2The CUSTOM action with label lc_sin2 calculates the following quantities: Quantity | Type | Description |
lc_sin2 | 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=lc_mat.w,lc_dot2 FUNCthe function you wish to evaluate=x*sin(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_cossum2The MATRIX_VECTOR_PRODUCT action with label lc_cossum2 calculates the following quantities: Quantity | Type | Description |
lc_cossum2 | 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=lc_cos2,lc_ones
lc_sinsum2The MATRIX_VECTOR_PRODUCT action with label lc_sinsum2 calculates the following quantities: Quantity | Type | Description |
lc_sinsum2 | 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=lc_sin2,lc_ones
lc_cosmean2The CUSTOM action with label lc_cosmean2 calculates the following quantities: Quantity | Type | Description |
lc_cosmean2 | 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 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 ARGthe values input to this function=lc_cossum2,lc_denom
lc_sinmean2The CUSTOM action with label lc_sinmean2 calculates the following quantities: Quantity | Type | Description |
lc_sinmean2 | 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 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 ARGthe values input to this function=lc_sinsum2,lc_denom
lc_2The CUSTOM action with label lc_2 calculates the following quantities: Quantity | Type | Description |
lc_2 | 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 FUNCthe function you wish to evaluate=x*x+y*y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO ARGthe values input to this function=lc_cosmean2,lc_sinmean2
lc_dot3The COMBINE action with label lc_dot3 calculates the following quantities: Quantity | Type | Description |
lc_dot3 | matrix | the matrix obtained by doing an element-wise application of a linear compbination to the input matrix |
: COMBINECalculate a polynomial combination of a set of other variables. More details ARGthe values input to this function=lc_mat.x,lc_mat.y,lc_mat.z PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO COEFFICIENTS the coefficients of the arguments in your function=0.5,1.0,1.0
lc_cos3The CUSTOM action with label lc_cos3 calculates the following quantities: Quantity | Type | Description |
lc_cos3 | 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=lc_mat.w,lc_dot3 FUNCthe function you wish to evaluate=x*cos(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_sin3The CUSTOM action with label lc_sin3 calculates the following quantities: Quantity | Type | Description |
lc_sin3 | 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=lc_mat.w,lc_dot3 FUNCthe function you wish to evaluate=x*sin(y) PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
lc_cossum3The MATRIX_VECTOR_PRODUCT action with label lc_cossum3 calculates the following quantities: Quantity | Type | Description |
lc_cossum3 | 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=lc_cos3,lc_ones
lc_sinsum3The MATRIX_VECTOR_PRODUCT action with label lc_sinsum3 calculates the following quantities: Quantity | Type | Description |
lc_sinsum3 | 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=lc_sin3,lc_ones
lc_cosmean3The CUSTOM action with label lc_cosmean3 calculates the following quantities: Quantity | Type | Description |
lc_cosmean3 | 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 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 ARGthe values input to this function=lc_cossum3,lc_denom
lc_sinmean3The CUSTOM action with label lc_sinmean3 calculates the following quantities: Quantity | Type | Description |
lc_sinmean3 | 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 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 ARGthe values input to this function=lc_sinsum3,lc_denom
lc_3The CUSTOM action with label lc_3 calculates the following quantities: Quantity | Type | Description |
lc_3 | 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 FUNCthe function you wish to evaluate=x*x+y*y PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO ARGthe values input to this function=lc_cosmean3,lc_sinmean3
lcThe COMBINE action with label lc calculates the following quantities: Quantity | Type | Description |
lc | vector | the vector obtained by doing an element-wise application of a linear compbination to the input vectors |
: COMBINECalculate a polynomial combination of a set of other variables. More details NORMALIZE normalize all the coefficients so that in total they are equal to one PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO ARGthe values input to this function=lc_1,lc_2,lc_3
lc_sumThe SUM action with label lc_sum calculates the following quantities: Quantity | Type | Description |
lc_sum | 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=lc 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=lc_sum FILEthe name of the file on which to output these quantities=colvar
As you can see if you expand the shortcut in this input, the sum over k in the above expression has three terms in this input as 3 GVECTORS are specified.
Sixty four values for the expression above are computed. These sixty four numbers are then added together in order to give a global mesuare of the crystallinity
for the simulated system.
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. R. Phillpot, S. Yip, D. Wolf, How Do Crystals Melt? Computers in Physics. 3, 20–31 (1989)
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 |
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 |
GVECTOR |
optional |
not used |
the coefficients of the linear combinations to compute for the CV |