Skip to content

Action: BRIDGE_MATRIX

Module adjmat
Description Usage
Calculate the number of atoms that bridge two parts of a structure used in 0 tutorialsused in 0 eggs
output value type
a matrix containing the weights for the bonds between each pair of atoms matrix

Details and examples

Calculate the number of atoms that bridge two parts of a structure

This adjacency matrix is used to implement the BRIDGE shortcut. The action outputs a adjacency matrix in the same way as CONTACT_MATRIX. However, the element of the adjacency matrix is calculated using:

In this expression, the sum runs over all the atoms that were specified using the BRIDGING_ATOMS keyword, and are switching functions, and and are the distances between atom and and between atoms and . Less formally, this formula ensures that element of the output matrix is one if there is a bridging atom between atom and .

In the following example input atoms 100-200 can serve as bridging atoms between the atoms in GROUPA and GROUPB and the two switching functions and in the formula above are identical.

Click on the labels of the actions for more information on what each action computes
tested on2.11
w1: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=100-200
   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-20
   SWITCHThe parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.2}
...

If you use a single GROUP keyword as in the input below as a single SWITCH keyword the output matrix is symmetric.

Click on the labels of the actions for more information on what each action computes
tested on2.11
w2: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=100-200 GROUPthe atoms for which you would like to calculate the adjacency matrix=1-10
   SWITCHThe parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.2}
...

However, if the two switching functions are not identical, as in the following example, then the output matrix is not symmetric even if GROUP is used rather than GROUPA/GROUPB.

Click on the labels of the actions for more information on what each action computes
tested on2.11
w2: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=100-200 GROUPthe atoms for which you would like to calculate the adjacency matrix=1-10
   SWITCHAThe switching function on the distance between bridging atoms and the atoms in group A. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.2}
   SWITCHBThe switching function on the distance between the bridging atoms and the atoms in group B. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.4}
...

Notice that in all the inputs above the and values that enter the formula above are calculated in a way that takes the periodic boundary conditions into account. If you want to ignore the periodic boundary conditions you can use the NOPBC flag as shown below.

Click on the labels of the actions for more information on what each action computes
tested on2.11
w2: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=100-200 GROUPthe atoms for which you would like to calculate the adjacency matrix=1-10
   SWITCHThe parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.2}
   NOPBC don't use pbc
...

COMPONENTS flag

If you add the flag COMPONENTS to the input as shown below:

Click on the labels of the actions for more information on what each action computes
tested on2.11
c4: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=100-200 GROUPthe atoms for which you would like to calculate the adjacency matrix=1-10
   SWITCHThe parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.2}
   COMPONENTS also calculate the components of the vector connecting the atoms in the contact matrix
...

then four matrices with the labels c4.w, c4.x, c4.y and c4.z are output by the action. The matrix with the label c4.w is the adjacency matrix that would be output if you had not added the COMPONENTS flag. The component of the matrices c4.x, c4.y and c4.z contain the , and components of the vector connecting atoms and . Importantly, however, the components of these vectors are only stored in c4.x, c4.y and c4.z if the elements of c4.w are non-zero. Using the COMPONENTS flag in this way ensures that you can use BRIDGE_MATRIX in tandem with many of the functionalities that are part of the symfunc module.

The MASK keyword

You use the MASK keyword with BRIDGE_MATRIX in the same way that is used in CONTACT_MATRIX. This keyword thus expects a vector in input, which tells BRIDGE_MATRIX that it is safe to not calculate certain rows of the output matrix. An example where this keyword is used is shown below:

Click on the labels of the actions for more information on what each action computes
tested on2.11
# The atoms that are of interest
ow: 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-1650
# Fixed virtual atom which serves as the probe volume's center (pos. in nm)
center: FIXEDATOMAdd a virtual atom in a fixed position. This action has hidden defaults. More details ATcoordinates of the virtual atom=2.5,2.5,2.5
# Vector in which element i is one if atom i is in sphere of interest and zero otherwise
sphere: INSPHEREThis quantity can be used to calculate functions of the distribution of collective variables for the atoms that lie in a particular, user-specified part of of the cell. More details ATOMSthe group of atoms that you would like to investigate=ow CENTERthe atom whose vicinity we are interested in examining=center RADIUSthe switching function that tells us the extent of the sphereical region of interest. Options for this keyword are explained in the documentation for LESS_THAN.={GAUSSIAN D_0=0.5 R_0=0.01 D_MAX=0.52}
# Calculates cooordination numbers
cmap: BRIDGE_MATRIXCalculate the number of atoms that bridge two parts of a structure This action has hidden defaults. More details ...
   GROUPthe atoms for which you would like to calculate the adjacency matrix=ow BRIDGING_ATOMSThe list of atoms that can form the bridge between the two interesting parts of the structure=1650-3000
   SWITCHThe parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.={GAUSSIAN D_0=0.32 R_0=0.01 D_MAX=0.34} MASKa vector that is used to used to determine which rows of the adjancency matrix to compute=sphere
...
ones: ONESCreate a constant vector with all elements equal to one This action is a shortcut. More details SIZEthe number of ones that you would like to create=1650
cc: 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=cmap,ones
# Multiply coordination numbers by sphere vector
prod: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=cc,sphere 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
# Sum of coordination numbers for atoms that are in the sphere of interest
numer: SUMCalculate the sum of the arguments More details ARGthe vector/matrix/grid whose elements shuld be added together=prod PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# Number of atoms that are in sphere of interest
denom: SUMCalculate the sum of the arguments More details ARGthe vector/matrix/grid whose elements shuld be added together=sphere PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# Average coordination number for atoms in sphere of interest
av: CUSTOMCalculate a combination of variables using a custom expression. More details ARGthe values input to this function=prod,sphere 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
# And print out final CV to a file
PRINTPrint quantities to a file. More details ARGthe labels of the values that you would like to print to the file=av FILEthe name of the file on which to output these quantities=colvar STRIDE the frequency with which the quantities of interest should be output=1

This input calculates the average for a type of coordination number for those atoms that are within a spherical region that is centered on the point . The coordination number for the atoms that is evaluated here counts an atom in the coordination sphere of atom if there is a bridging atom within 0.34 nm of atoms and .

Input

The arguments and 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
MASK vector a vector that is used to used to determine which rows of the adjancency matrix to compute
GROUP atoms the atoms for which you would like to calculate the adjacency matrix
GROUPA atoms when you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPB
GROUPB atoms when you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPA
BRIDGING_ATOMS atoms The list of atoms that can form the bridge between the two interesting parts of the structure

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
w matrix COMPONENTS a matrix containing the weights for the bonds between each pair of atoms
x matrix COMPONENTS the projection of the bond on the x axis
y matrix COMPONENTS the projection of the bond on the y axis
z matrix COMPONENTS the projection of the bond on the z axis

Full list of keywords

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

Keyword Type Default Description
MASK input none a vector that is used to used to determine which rows of the adjancency matrix to compute
GROUP input none the atoms for which you would like to calculate the adjacency matrix
GROUPA input none when you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPB
GROUPB input none when you are calculating the adjacency matrix between two sets of atoms this keyword is used to specify the atoms along with the keyword GROUPA
BRIDGING_ATOMS input none The list of atoms that can form the bridge between the two interesting parts of the structure
NL_CUTOFF compulsory 0.0 The cutoff for the neighbor list
NL_STRIDE compulsory 1 The frequency with which we are updating the atoms in the neighbor list
COMPONENTS optional false also calculate the components of the vector connecting the atoms in the contact matrix
NOPBC optional false don't use pbc
SWITCH optional not used The parameters of the two switching functions in the above formula. Options for this keyword are explained in the documentation for LESS_THAN.
SWITCHA optional not used The switching function on the distance between bridging atoms and the atoms in group A. Options for this keyword are explained in the documentation for LESS_THAN.
SWITCHB optional not used The switching function on the distance between the bridging atoms and the atoms in group B. Options for this keyword are explained in the documentation for LESS_THAN.
SERIAL optional false do the calculation in serial. Further information about this flag can be found here.
USEGPU optional false run this calculation on the GPU. Further information about this flag can be found here.

deprecated keywords

The keywords in the following table can still be used with this action but have been deprecated

Keyword Description
ATOMS You should use GROUP instead of this keyword which was used in older versions of PLUMED and is provided for back compatibility only

References

More information about how this action can be used is available in the following articles: