Path integrals simulatins are able to describe the quantum thermodynamics
of distinguishable particles at finite temperature, and are the most accurate
approach to describe the behavior of light nuclei (e.g. hydrogen) at
room temperature and above.
They can be combined with metadynamics to accelerate the sampling of rare
events, and compute a “quantum free energies” that reflect (in an approximate
way) the effect of zero-point energy and tunneling on reaction rates.
Free-energy of the Zundel cation
This lecture provide a hands-on interactive tutorial (that you can also
download and run locally) that uses the i-PI code
to perform path-integral simulations for the Zundel cation, a protonated
water dimer. PLUMED is used to compute appropriate collective variables,
using an input as follows
Click on the labels of the actions for more information on what each action computes
dooThe DISTANCE action with label doo calculates the following quantities: Quantity | Type | Description |
doo | scalar | the DISTANCE between this pair of atoms |
: DISTANCECalculate the distance/s between pairs of atoms. More details ATOMSthe pair of atom that we are calculating the distance between=1,2
co1The DISTANCES action with label co1 calculates the following quantities: Quantity | Type | Description |
co1 | vector | the DISTANCES between the each pair of atoms that were specified |
co1_lessthan | scalar | the number of colvars that have a value less than a threshold |
: DISTANCESCalculate the distances between multiple piars of atoms This action is a shortcut. More details GROUPACalculate the distances between all the atoms in GROUPA and all the atoms in GROUPB=1 GROUPBCalculate the distances between all the atoms in GROUPA and all the atoms in GROUPB=3-7 LESS_THANcalculate the number of variables that are less than a certain target value. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.14}
# co1: DISTANCES GROUPA=1 GROUPB=3-7 LESS_THAN={RATIONAL R_0=0.14}
co1The DISTANCE action with label co1 calculates the following quantities: Quantity | Type | Description |
co1 | vector | the DISTANCE for each set of specified atoms |
: DISTANCECalculate the distance/s between pairs of atoms. More details ATOMS1the pair of atom that we are calculating the distance between=1,3 ATOMS2the pair of atom that we are calculating the distance between=1,4 ATOMS3the pair of atom that we are calculating the distance between=1,5 ATOMS4the pair of atom that we are calculating the distance between=1,6 ATOMS5the pair of atom that we are calculating the distance between=1,7
co1_ltThe LESS_THAN action with label co1_lt calculates the following quantities: Quantity | Type | Description |
co1_lt | vector | the vector obtained by doing an element-wise application of a function that is one if the input is less than a threshold to the input vectors |
: LESS_THANUse a switching function to determine how many of the input variables are less than a certain cutoff. More details ARGthe values input to this function=co1 SWITCHThis keyword is used if you want to employ an alternative to the continuous swiching function defined above={RATIONAL R_0=0.14}
co1_lessthanThe SUM action with label co1_lessthan calculates the following quantities: Quantity | Type | Description |
co1_lessthan | 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=co1_lt PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# --- End of included input --- co2The DISTANCES action with label co2 calculates the following quantities: Quantity | Type | Description |
co2 | vector | the DISTANCES between the each pair of atoms that were specified |
co2_lessthan | scalar | the number of colvars that have a value less than a threshold |
: DISTANCESCalculate the distances between multiple piars of atoms This action is a shortcut. More details GROUPACalculate the distances between all the atoms in GROUPA and all the atoms in GROUPB=2 GROUPBCalculate the distances between all the atoms in GROUPA and all the atoms in GROUPB=3-7 LESS_THANcalculate the number of variables that are less than a certain target value. Options for this keyword are explained in the documentation for LESS_THAN.={RATIONAL R_0=0.14}
# co2: DISTANCES GROUPA=2 GROUPB=3-7 LESS_THAN={RATIONAL R_0=0.14}
co2The DISTANCE action with label co2 calculates the following quantities: Quantity | Type | Description |
co2 | vector | the DISTANCE for each set of specified atoms |
: DISTANCECalculate the distance/s between pairs of atoms. More details ATOMS1the pair of atom that we are calculating the distance between=2,3 ATOMS2the pair of atom that we are calculating the distance between=2,4 ATOMS3the pair of atom that we are calculating the distance between=2,5 ATOMS4the pair of atom that we are calculating the distance between=2,6 ATOMS5the pair of atom that we are calculating the distance between=2,7
co2_ltThe LESS_THAN action with label co2_lt calculates the following quantities: Quantity | Type | Description |
co2_lt | vector | the vector obtained by doing an element-wise application of a function that is one if the input is less than a threshold to the input vectors |
: LESS_THANUse a switching function to determine how many of the input variables are less than a certain cutoff. More details ARGthe values input to this function=co2 SWITCHThis keyword is used if you want to employ an alternative to the continuous swiching function defined above={RATIONAL R_0=0.14}
co2_lessthanThe SUM action with label co2_lessthan calculates the following quantities: Quantity | Type | Description |
co2_lessthan | 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=co2_lt PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
# --- End of included input --- dcThe COMBINE action with label dc calculates the following quantities: Quantity | Type | Description |
dc | scalar | a linear compbination |
: COMBINECalculate a polynomial combination of a set of other variables. More details ARGthe values input to this function=co1.lessthan,co2.lessthan COEFFICIENTS the coefficients of the arguments in your function=1,-1 PERIODICif the output of your function is periodic then you should specify the periodicity of the function=NO
mtdThe METAD action with label mtd calculates the following quantities: Quantity | Type | Description |
mtd.bias | scalar | the instantaneous value of the bias potential |
: METADUsed to performed metadynamics on one or more collective variables. More details ARGthe labels of the scalars on which the bias will act=doo,dc PACEthe frequency for hill addition=10 SIGMAthe widths of the Gaussian hills=0.005,0.05 HEIGHTthe heights of the Gaussian hills=4 FILE a file in which the list of added hills is stored=HILLS-pimd BIASFACTORuse well tempered metadynamics and use this bias factor=10 TEMPthe system temperature - this is only needed if you are doing well-tempered metadynamics=300
uwallThe UPPER_WALLS action with label uwall calculates the following quantities: Quantity | Type | Description |
uwall.bias | scalar | the instantaneous value of the bias potential |
uwall.force2 | scalar | the instantaneous value of the squared force due to this bias potential |
: UPPER_WALLSDefines a wall for the value of one or more collective variables, More details ARGthe arguments on which the bias is acting=doo ATthe positions of the wall=0.4 KAPPAthe force constant for the wall=250
PRINTPrint quantities to a file. More details ARGthe labels of the values that you would like to print to the file=doo,co1.*,co2.*,dc,mtd.*,uwall.* STRIDE the frequency with which the quantities of interest should be output=10 FILEthe name of the file on which to output these quantities=COLVAR-pimd
The PRINT action with label calculates somethingFLUSHThis command instructs plumed to flush all the open files with a user specified frequency. More details STRIDEthe frequency with which all the open files should be flushed=1
Depending on your previous experience, you may want to follow the
lessons on metadynamics, and the external tutorial on path integral
simulations.
flowchart LR
A[Basic plumed syntax] ==> B[Metadynamics]
B ==> D[Path integral metadynamics]
C[Introduction to path integrals] ==> D
click A "../../../21/001/data/NAVIGATION.html" "Follow this lecture for an introduction to PLUMED and enhanced sampling"
click B "../../../21/004/data/NAVIGATION.html" "Follow this lecture if you have never heard of metadynamics before"
click C "https://atomistic-cookbook.org/examples/path-integrals/path-integrals.html" "An interactive tutorial on path integral simulations and how to perform them using i-PI"
click D "https://atomistic-cookbook.org/examples/pi-metad/pi-metad.html" "The main tutorial: combine i-PI and PLUMED to compute free energies including quantum nuclear effects"
Click here to open manual pages for actions discussed in this tutorial.