Action: BRIDGE_MATRIX
| Module | adjmat |
|---|---|
| Description | Usage |
| Calculate the number of atoms that bridge two parts of a structure | |
| 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.
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.
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.
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.
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:
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:
# 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: