It is only available if you configure PLUMED with ./configure –enable-modules=symfunc . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list.
Calculate the local degree of order around an atoms by taking the average dot product between the q_6 vector on the central atom and the q_6 vector on the atoms in the first coordination sphere.
The Q6 command allows one to calculate one complex vectors for each of the atoms in your system that describe the degree of order in the coordination sphere around a particular atom. The difficulty with these vectors comes when combining the order parameters from all of the individual atoms/molecules so as to get a measure of the global degree of order for the system. The simplest way of doing this - calculating the average Steinhardt parameter - can be problematic. If one is examining nucleation say only the order parameters for those atoms in the nucleus will change significantly when the nucleus forms. The order parameters for the atoms in the surrounding liquid will remain pretty much the same. As such if one models a small nucleus embedded in a very large amount of solution/melt any change in the average order parameter will be negligible. Substantial changes in the value of this average can be observed in simulations of nucleation but only because the number of atoms is relatively small.
When the average Q6 parameter is used to bias the dynamics a problems can occur. These averaged coordinates cannot distinguish between the correct, single-nucleus pathway and a concerted pathway in which all the atoms rearrange themselves into their solid-like configuration simultaneously. This second type of pathway would be impossible in reality because there is a large entropic barrier that prevents concerted processes like this from happening. However, in the finite sized systems that are commonly simulated this barrier is reduced substantially. As a result in simulations where average Steinhardt parameters are biased there are often quite dramatic system size effects
If one wants to simulate nucleation using some form on biased dynamics what is really required is an order parameter that measures:
Whether or not the coordination spheres around atoms are ordered
Whether or not the atoms that are ordered are clustered together in a crystalline nucleus
LOCAL_AVERAGE and NLINKS are variables that can be combined with the Steinhardt parameters allow to calculate variables that satisfy these requirements. LOCAL_Q6 is another variable that can be used in these sorts of calculations. The LOCAL_Q6 parameter for a particular atom is a number that measures the extent to which the orientation of the atoms in the first coordination sphere of an atom match the orientation of the central atom. It does this by calculating the following quantity for each of the atoms in the system:
where \(q_{6m}(i)\) and \(q_{6m}(j)\) are the sixth order Steinhardt vectors calculated for atom \(i\) and atom \(j\) respectively and the asterisk denotes complex conjugation. The function \(\sigma( r_{ij} )\) is a switchingfunction that acts on the distance between atoms \(i\) and \(j\). The parameters of this function should be set so that it the function is equal to one when atom \(j\) is in the first coordination sphere of atom \(i\) and is zero otherwise. The sum in the numerator of this expression is the dot product of the Steinhardt parameters for atoms \(i\) and \(j\) and thus measures the degree to which the orientations of these adjacent atoms is correlated.
Examples
The following command calculates the average value of the LOCAL_Q6 parameter for the 64 Lennard Jones atoms in the system under study and prints this quantity to a file called colvar.
Click on the labels of the actions for more information on what each action computes
compulsory keyword
the values input to this function
=q6_sp.rm-n6,q6_sp.im-n6,q6_sp.rm-n5,q6_sp.im-n5,q6_sp.rm-n4,q6_sp.im-n4,q6_sp.rm-n3,q6_sp.im-n3,q6_sp.rm-n2,q6_sp.im-n2,q6_sp.rm-n1,q6_sp.im-n1,q6_sp.rm-0,q6_sp.im-0,q6_sp.rm-p1,q6_sp.im-p1,q6_sp.rm-p2,q6_sp.im-p2,q6_sp.rm-p3,q6_sp.im-p3,q6_sp.rm-p4,q6_sp.im-p4,q6_sp.rm-p5,q6_sp.im-p5,q6_sp.rm-p6,q6_sp.im-p6The COMBINE action with label q6_norm2 calculates a single scalar valueq6_norm: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6_norm2
FUNC
compulsory keyword
the function you wish to evaluate
=sqrt(x)
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6_norm calculates a single scalar valueq6: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6_norm,q6_denom
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6 calculates a single scalar valuelq6_uvec: ONES
SIZE
compulsory keyword
the number of ones that you would like to create
=26 The ONES action with label lq6_uvec calculates a single scalar valuelq6_grp: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=q6The GROUP action with label lq6_grp defines a group of atoms so that they can be referred to later in the inputlq6_nmat: OUTER_PRODUCT
ARG
compulsory keyword
the labels of the two vectors from which the outer product is being computed
=q6_norm,lq6_uvecThe OUTER_PRODUCT action with label lq6_nmat calculates a single scalar valuelq6_uvecs: VSTACK
ARG
compulsory keyword
the values that you would like to stack together to construct the output matrix
=q6_sp.rm-n6,q6_sp.im-n6,q6_sp.rm-n5,q6_sp.im-n5,q6_sp.rm-n4,q6_sp.im-n4,q6_sp.rm-n3,q6_sp.im-n3,q6_sp.rm-n2,q6_sp.im-n2,q6_sp.rm-n1,q6_sp.im-n1,q6_sp.rm-0,q6_sp.im-0,q6_sp.rm-p1,q6_sp.im-p1,q6_sp.rm-p2,q6_sp.im-p2,q6_sp.rm-p3,q6_sp.im-p3,q6_sp.rm-p4,q6_sp.im-p4,q6_sp.rm-p5,q6_sp.im-p5,q6_sp.rm-p6,q6_sp.im-p6The VSTACK action with label lq6_uvecs calculates a single scalar valuelq6_vecs: CUSTOM
ARG
compulsory keyword
the values input to this function
=lq6_uvecs,lq6_nmat
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label lq6_vecs calculates a single scalar valuelq6_vecsT: TRANSPOSE
ARG
compulsory keyword
the label of the vector or matrix that should be transposed
=lq6_vecsThe TRANSPOSE action with label lq6_vecsT calculates a single scalar valuelq6_cmap: CONTACT_MATRIX
GROUP
specifies the list of atoms that should be assumed indistinguishable.
=q6
SWITCH
specify the switching function to use between two sets of indistinguishable atoms.
=RATIONAL,D_0=1.3,R_0=0.2 The CONTACT_MATRIX action with label lq6_cmap
The following input calculates the distribution of LOCAL_Q6 parameters at any given time and outputs this information to a file.
Click on the labels of the actions for more information on what each action computes
compulsory keyword
the values input to this function
=q6_sp.rm-n6,q6_sp.im-n6,q6_sp.rm-n5,q6_sp.im-n5,q6_sp.rm-n4,q6_sp.im-n4,q6_sp.rm-n3,q6_sp.im-n3,q6_sp.rm-n2,q6_sp.im-n2,q6_sp.rm-n1,q6_sp.im-n1,q6_sp.rm-0,q6_sp.im-0,q6_sp.rm-p1,q6_sp.im-p1,q6_sp.rm-p2,q6_sp.im-p2,q6_sp.rm-p3,q6_sp.im-p3,q6_sp.rm-p4,q6_sp.im-p4,q6_sp.rm-p5,q6_sp.im-p5,q6_sp.rm-p6,q6_sp.im-p6The COMBINE action with label q6_norm2 calculates a single scalar valueq6_norm: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6_norm2
FUNC
compulsory keyword
the function you wish to evaluate
=sqrt(x)
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6_norm calculates a single scalar valueq6: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6_norm,q6_denom
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6 calculates a single scalar valuelq6_uvec: ONES
SIZE
compulsory keyword
the number of ones that you would like to create
=26 The ONES action with label lq6_uvec calculates a single scalar valuelq6_grp: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=q6The GROUP action with label lq6_grp defines a group of atoms so that they can be referred to later in the inputlq6_nmat: OUTER_PRODUCT
ARG
compulsory keyword
the labels of the two vectors from which the outer product is being computed
=q6_norm,lq6_uvecThe OUTER_PRODUCT action with label lq6_nmat calculates a single scalar valuelq6_uvecs: VSTACK
ARG
compulsory keyword
the values that you would like to stack together to construct the output matrix
=q6_sp.rm-n6,q6_sp.im-n6,q6_sp.rm-n5,q6_sp.im-n5,q6_sp.rm-n4,q6_sp.im-n4,q6_sp.rm-n3,q6_sp.im-n3,q6_sp.rm-n2,q6_sp.im-n2,q6_sp.rm-n1,q6_sp.im-n1,q6_sp.rm-0,q6_sp.im-0,q6_sp.rm-p1,q6_sp.im-p1,q6_sp.rm-p2,q6_sp.im-p2,q6_sp.rm-p3,q6_sp.im-p3,q6_sp.rm-p4,q6_sp.im-p4,q6_sp.rm-p5,q6_sp.im-p5,q6_sp.rm-p6,q6_sp.im-p6The VSTACK action with label lq6_uvecs calculates a single scalar valuelq6_vecs: CUSTOM
ARG
compulsory keyword
the values input to this function
=lq6_uvecs,lq6_nmat
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label lq6_vecs calculates a single scalar valuelq6_vecsT: TRANSPOSE
ARG
compulsory keyword
the label of the vector or matrix that should be transposed
=lq6_vecsThe TRANSPOSE action with label lq6_vecsT calculates a single scalar valuelq6_cmap: CONTACT_MATRIX
GROUP
specifies the list of atoms that should be assumed indistinguishable.
=q6
SWITCH
specify the switching function to use between two sets of indistinguishable atoms.
=RATIONAL,D_0=1.3,R_0=0.2 The CONTACT_MATRIX action with label lq6_cmap
The following calculates the LOCAL_Q6 parameters for atoms 1-5 only. For each of these atoms comparisons of the geometry of the coordination sphere are done with those of all the other atoms in the system. The final quantity is the average and is outputted to a file
Click on the labels of the actions for more information on what each action computes
compulsory keyword
the values input to this function
=q6a_sp.rm-n6,q6a_sp.im-n6,q6a_sp.rm-n5,q6a_sp.im-n5,q6a_sp.rm-n4,q6a_sp.im-n4,q6a_sp.rm-n3,q6a_sp.im-n3,q6a_sp.rm-n2,q6a_sp.im-n2,q6a_sp.rm-n1,q6a_sp.im-n1,q6a_sp.rm-0,q6a_sp.im-0,q6a_sp.rm-p1,q6a_sp.im-p1,q6a_sp.rm-p2,q6a_sp.im-p2,q6a_sp.rm-p3,q6a_sp.im-p3,q6a_sp.rm-p4,q6a_sp.im-p4,q6a_sp.rm-p5,q6a_sp.im-p5,q6a_sp.rm-p6,q6a_sp.im-p6The COMBINE action with label q6a_norm2 calculates a single scalar valueq6a_norm: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6a_norm2
FUNC
compulsory keyword
the function you wish to evaluate
=sqrt(x)
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6a_norm calculates a single scalar valueq6a: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6a_norm,q6a_denom
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6a calculates a single scalar valueq6b_grp: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=6-64 The GROUP action with label q6b_grp defines a group of atoms so that they can be referred to later in the inputq6b_mat: CONTACT_MATRIX
GROUPA
.
=6-64
GROUPB
.
=1-64
R_0
could not find this keyword
=0.2
D_0
could not find this keyword
=1.3
NN
compulsory keyword ( default=6 )
The n parameter of the switching function
=6
MM
compulsory keyword ( default=0 )
The m parameter of the switching function; 0 implies 2*NN
=0
COMPONENTS
( default=off ) also calculate the components of the vector connecting the atoms
in the contact matrix
The CONTACT_MATRIX action with label q6b_mat calculates the following quantities:
Quantity
Description
q6b_mat.w
a matrix containing the weights for the bonds between each pair of atoms
compulsory keyword
the values input to this function
=q6b_sp.rm-n6,q6b_sp.im-n6,q6b_sp.rm-n5,q6b_sp.im-n5,q6b_sp.rm-n4,q6b_sp.im-n4,q6b_sp.rm-n3,q6b_sp.im-n3,q6b_sp.rm-n2,q6b_sp.im-n2,q6b_sp.rm-n1,q6b_sp.im-n1,q6b_sp.rm-0,q6b_sp.im-0,q6b_sp.rm-p1,q6b_sp.im-p1,q6b_sp.rm-p2,q6b_sp.im-p2,q6b_sp.rm-p3,q6b_sp.im-p3,q6b_sp.rm-p4,q6b_sp.im-p4,q6b_sp.rm-p5,q6b_sp.im-p5,q6b_sp.rm-p6,q6b_sp.im-p6The COMBINE action with label q6b_norm2 calculates a single scalar valueq6b_norm: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6b_norm2
FUNC
compulsory keyword
the function you wish to evaluate
=sqrt(x)
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6b_norm calculates a single scalar valueq6b: CUSTOM
ARG
compulsory keyword
the values input to this function
=q6b_norm,q6b_denom
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label q6b calculates a single scalar valuew6_uvec: ONES
SIZE
compulsory keyword
the number of ones that you would like to create
=26 The ONES action with label w6_uvec calculates a single scalar valuew6_grp: GROUP
ATOMS
the numerical indexes for the set of atoms in the group.
=q6a,q6bThe GROUP action with label w6_grp defines a group of atoms so that they can be referred to later in the inputw6_mags: CONCATENATE
ARG
the values that should be concatenated together to form the output vector
=q6a_norm,q6b_normThe CONCATENATE action with label w6_mags calculates a single scalar valuew6_uvecs1: VSTACK
ARG
compulsory keyword
the values that you would like to stack together to construct the output matrix
=q6a_sp.rm-n6,q6a_sp.im-n6,q6a_sp.rm-n5,q6a_sp.im-n5,q6a_sp.rm-n4,q6a_sp.im-n4,q6a_sp.rm-n3,q6a_sp.im-n3,q6a_sp.rm-n2,q6a_sp.im-n2,q6a_sp.rm-n1,q6a_sp.im-n1,q6a_sp.rm-0,q6a_sp.im-0,q6a_sp.rm-p1,q6a_sp.im-p1,q6a_sp.rm-p2,q6a_sp.im-p2,q6a_sp.rm-p3,q6a_sp.im-p3,q6a_sp.rm-p4,q6a_sp.im-p4,q6a_sp.rm-p5,q6a_sp.im-p5,q6a_sp.rm-p6,q6a_sp.im-p6The VSTACK action with label w6_uvecs1 calculates a single scalar valuew6_uvecs2: VSTACK
ARG
compulsory keyword
the values that you would like to stack together to construct the output matrix
=q6b_sp.rm-n6,q6b_sp.im-n6,q6b_sp.rm-n5,q6b_sp.im-n5,q6b_sp.rm-n4,q6b_sp.im-n4,q6b_sp.rm-n3,q6b_sp.im-n3,q6b_sp.rm-n2,q6b_sp.im-n2,q6b_sp.rm-n1,q6b_sp.im-n1,q6b_sp.rm-0,q6b_sp.im-0,q6b_sp.rm-p1,q6b_sp.im-p1,q6b_sp.rm-p2,q6b_sp.im-p2,q6b_sp.rm-p3,q6b_sp.im-p3,q6b_sp.rm-p4,q6b_sp.im-p4,q6b_sp.rm-p5,q6b_sp.im-p5,q6b_sp.rm-p6,q6b_sp.im-p6The VSTACK action with label w6_uvecs2 calculates a single scalar valuew6_nmat: OUTER_PRODUCT
ARG
compulsory keyword
the labels of the two vectors from which the outer product is being computed
=w6_mags,w6_uvecThe OUTER_PRODUCT action with label w6_nmat calculates a single scalar valuew6_uvecs: CONCATENATE
MATRIX11
compulsory keyword
specify the matrices that you wish to join together into a single matrix.
=w6_uvecs1
MATRIX21
compulsory keyword
specify the matrices that you wish to join together into a single matrix.
=w6_uvecs2The CONCATENATE action with label w6_uvecs calculates a single scalar valuew6_vecs: CUSTOM
ARG
compulsory keyword
the values input to this function
=w6_uvecs,w6_nmat
FUNC
compulsory keyword
the function you wish to evaluate
=x/y
PERIODIC
compulsory keyword
if the output of your function is periodic then you should specify the periodicity
of the function.
=NO The CUSTOM action with label w6_vecs calculates a single scalar valuew6_vecsT: TRANSPOSE
ARG
compulsory keyword
the label of the vector or matrix that should be transposed
=w6_vecsThe TRANSPOSE action with label w6_vecsT calculates a single scalar valuew6_cmap: CONTACT_MATRIX
GROUP
specifies the list of atoms that should be assumed indistinguishable.
=q6a,q6b
SWITCH
specify the switching function to use between two sets of indistinguishable atoms.
=RATIONAL,D_0=1.3,R_0=0.2 The CONTACT_MATRIX action with label w6_cmap
Glossary of keywords and components
Description of components
Quantity
Description
.#!value
the values of the local steinhardt parameters for the input atoms
In addition the following quantities can be calculated by employing the keywords listed below
Quantity
Keyword
Description
lessthan
LESS_THAN
the number of colvars that have a value less than a threshold
morethan
MORE_THAN
the number of colvars that have a value more than a threshold
altmin
ALT_MIN
the minimum value of the cv
min
MIN
the minimum colvar
max
MAX
the maximum colvar
between
BETWEEN
the number of colvars that have a value that lies in a particular interval
highest
HIGHEST
the largest of the colvars
lowest
LOWEST
the smallest of the colvars
sum
SUM
the sum of the colvars
mean
MEAN
the mean of the colvars
Options
LOWMEM
( default=off ) this flag does nothing and is present only to ensure back-compatibility
HIGHEST
( default=off ) this flag allows you to recover the highest of these variables.
LOWEST
( default=off ) this flag allows you to recover the lowest of these variables.
SUM
( default=off ) calculate the sum of all the quantities.
MEAN
( default=off ) calculate the mean of all the quantities.
SPECIES
SPECIESA
SPECIESB
SWITCH
This keyword is used if you want to employ an alternative to the continuous swiching function defined above. The following provides information on the switchingfunction that are available. When this keyword is present you no longer need the NN, MM, D_0 and R_0 keywords.
LESS_THAN
calculate the number of variables that are less than a certain target value. This quantity is calculated using \(\sum_i \sigma(s_i)\), where \(\sigma(s)\) is a switchingfunction.. You can use multiple instances of this keyword i.e. LESS_THAN1, LESS_THAN2, LESS_THAN3...
MORE_THAN
calculate the number of variables that are more than a certain target value. This quantity is calculated using \(\sum_i 1 - \sigma(s_i)\), where \(\sigma(s)\) is a switchingfunction.. You can use multiple instances of this keyword i.e. MORE_THAN1, MORE_THAN2, MORE_THAN3...
ALT_MIN
calculate the minimum value. To make this quantity continuous the minimum is calculated using \( \textrm{min} = -\frac{1}{\beta} \log \sum_i \exp\left( -\beta s_i \right) \) The value of \(\beta\) in this function is specified using (BETA= \(\beta\)).
MIN
calculate the minimum value. To make this quantity continuous the minimum is calculated using \( \textrm{min} = \frac{\beta}{ \log \sum_i \exp\left( \frac{\beta}{s_i} \right) } \) The value of \(\beta\) in this function is specified using (BETA= \(\beta\))
MAX
calculate the maximum value. To make this quantity continuous the maximum is calculated using \( \textrm{max} = \beta \log \sum_i \exp\left( \frac{s_i}{\beta}\right) \) The value of \(\beta\) in this function is specified using (BETA= \(\beta\))
BETWEEN
calculate the number of values that are within a certain range. These quantities are calculated using kernel density estimation as described on histogrambead.. You can use multiple instances of this keyword i.e. BETWEEN1, BETWEEN2, BETWEEN3...
HISTOGRAM
calculate a discretized histogram of the distribution of values. This shortcut allows you to calculates NBIN quantites like BETWEEN.