You might have noticed that from time to time constants are specified using strings rather than numbers. An example is the following
#SETTINGS MOLFILE=regtest/basic/rt65/AA.pdb MOLINFO STRUCTUREcompulsory keyword a file in pdb format containing a reference structure. =AA.pdb MOLTYPEcompulsory keyword ( default=protein ) what kind of molecule is contained in the pdb file - usually not needed since protein/RNA/DNA are compatible =rna e1: TORSION ATOMSthe four atoms involved in the torsional angle =@epsilon-1 t: METAD ARGthe input for this action is the scalar output from one or more other actions. =e1 SIGMAcompulsory keyword the widths of the Gaussian hills =0.15 PACEcompulsory keyword the frequency for hill addition =10 HEIGHTthe heights of the Gaussian hills. =2 GRID_MINthe lower bounds for the grid =-pi GRID_MAXthe upper bounds for the grid =pi GRID_BINthe number of bins for the grid =200
Notice that the boundaries for GRID_MIN
and GRID_MAX
are -pi
and pi
. Until PLUMED 2.3, we used a very dummy parses that could recognize only pi
as a special string, plus strings such as 0.5pi
and -pi
. However, as of version 2.4, we use the Lepton library in order to parse every constant that we read. This means that you can also employ more complicated expressions such as 1+2
or exp(10)
:
#SETTINGS MOLFILE=regtest/basic/rt65/AA.pdb MOLINFO STRUCTUREcompulsory keyword a file in pdb format containing a reference structure. =AA.pdb MOLTYPEcompulsory keyword ( default=protein ) what kind of molecule is contained in the pdb file - usually not needed since protein/RNA/DNA are compatible =rna e1: TORSION ATOMSthe four atoms involved in the torsional angle =@epsilon-1 RESTRAINT ARGthe input for this action is the scalar output from one or more other actions. =e1 ATcompulsory keyword the position of the restraint =1+0.5
Notice that this applies to any quantity read by plumed as a real number, but does not apply yet to integer numbers (e.g.: the PACE argument of METAD).