Project ID: plumID:19.026
Source: EXAMPLE/plumed.dat
Originally used with PLUMED version: 2.3.0-mod
Stable: raw zipped stdout - stderr
Master: raw zipped stdout - stderr

# Order parameter:
# Number of water molecules within the largest connected "icy" cluster
# Whether a water molecule is defined as icy or not, it depends on its hydrogen bond network
# as well as the value of an order parameter built on the Steinhardt parameter Q6.
# The exact definition can be found at:
# https://pubs.acs.org/doi/suppl/10.1021/acs.jpclett.6b01013/suppl_file/jz6b01013_si_001.pdf

# Geometric criteria for hydrogen bonds (HBs) 
HBOND_COORD SPECIES=2665-10353:4 HYDROGENS=2666-10354:4,2667-10355:4 RCUTOO=0.324 RCUTOH=0.25 ACUT=0.20pi LABEL=hb

# Selecting those oxygens with 4 HB
MFILTER_BETWEEN DATA=hb LOWER=3.9 UPPER=4.1 SMEAR=0.0 LABEL=rsumsb

# Steinhardt parameter Q6 for this particular subset of molecules 
Q6 SPECIES=rsumsb                SWITCH={GAUSSIAN D_0=0.324  R_0=0.00001 D_MAX=0.3241} LABEL=q6 LOWMEM

# Local Q6 (see Plumed Docs, LOCAL_Q6) for this particular subset
LOCAL_Q6 DATA=q6                 SWITCH={GAUSSIAN D_0=0.324  R_0=0.00001 D_MAX=0.3241} LABEL=lq6 LOWMEM

# Selecting atoms with a certain value of LQ6
MFILTER_MORE DATA=lq6            SWITCH={GAUSSIAN D_0=0.45   R_0=0.00001 D_MAX=0.4501} LABEL=cf

# Create a contact matrix based on distance
CONTACT_MATRIX ATOMS=cf WTOL=0.1 SWITCH={GAUSSIAN D_0=0.324  R_0=0.00001 D_MAX=0.3241} LABEL=mat

# Clustering, based on MFILTER_MORE and CONTACT_MATRIX
DFSCLUSTERING MATRIX=mat LABEL=cls SERIAL

# Including "surface" (nearest neighbours) atoms
CLUSTER_WITHSURFACE CLUSTERS=cls RCUT_SURF=0.324 LABEL=scls SERIAL

# Finding the largest connected cluster - this is the order parameter lambda we are building our
# Forward Flux Sampling (FFS) machinery upon
CLUSTER_NATOMS CLUSTERS=scls CLUSTER=1 LABEL=lambda

# In order to decide whether a particular MD run has reached the next FFS interface 
# (see e.g. https://pubs.acs.org/doi/abs/10.1021/acs.jpclett.6b01013) or got back to the first interface,
# we use the COMMITTOR action
COMMITTOR ARG=lambda STRIDE=2000 BASIN_LL1=0 BASIN_UL1=24 BASIN_LL2=110 BASIN_UL2=10000 FILE=shoot.dat

# Output the value of lambda as we go along
OUTPUT_CLUSTER CLUSTERS=scls CLUSTER=1 STRIDE=2000 FILE=dfs_surf.dat # Output lambda
FLUSH STRIDE=2000

ENDPLUMED