BF_CUSTOM
This is part of the ves module
It is only available if you configure PLUMED with ./configure –enable-modules=ves . Furthermore, this feature is still being developed so take care when using it and report any problems on the mailing list.

Basis functions given by arbitrary mathematical expressions.

This allows you to define basis functions using arbitrary mathematical expressions that are parsed using the lepton library. The basis functions \(f_{i}(x)\) are given in mathematical expressions with x as a variable using the numbered FUNC keywords that start from FUNC1. Consistent with other basis functions is \(f_{0}(x)=1\) defined as the constant. The interval on which the basis functions are defined is given using the MINIMUM and MAXIMUM keywords.

Using the TRANSFORM keyword it is possible to define a function \(x(t)\) that is used to transform the argument before calculating the basis functions values. The variables min and max can be used to indicate the minimum and the maximum of the interval. By default the arguments are not transformed, i.e. \(x(t)=t\).

For periodic basis functions you should use the PERIODIC flag to indicate that they are periodic.

The basis functions \(f_{i}(x)\) and the transform function \(x(t)\) need to be well behaved in the interval on which the basis functions are defined, e.g. not result in a not a number (nan) or infinity (inf). The code will not perform checks to make sure that this is the case unless the flag CHECK_NAN_INF is enabled.

Compulsory keywords
MINIMUM The minimum of the interval on which the basis functions are defined.
MAXIMUM The maximum of the interval on which the basis functions are defined.
Options
DEBUG_INFO ( default=off ) Print out more detailed information about the basis set. Useful for debugging.
PERIODIC ( default=off ) Indicate that the basis functions are periodic.
CHECK_NAN_INF

( default=off ) Check that the basis functions do not result in a not a number (nan) or infinity (inf).

FUNC The basis functions f_i(x) given in mathematical expressions using x as a variable. You can use multiple instances of this keyword i.e. FUNC1, FUNC2, FUNC3...
TRANSFORM

An optional function that can be used to transform the argument before calculating the basis function values. You should use t as a variable. You can use the variables min and max to give the minimum and the maximum of the interval.

Examples

Defining Legendre polynomial basis functions of order 6 using BF_CUSTOM where the appropriate transform function is given by the TRANSFORM keyword. This is just an example of what can be done, in practice you should use BF_LEGENDRE for Legendre polynomial basis functions.

BF_CUSTOM ...
 TRANSFORM=(t-(min+max)/2)/((max-min)/2)
 FUNC1=x
 FUNC2=(1/2)*(3*x^2-1)
 FUNC3=(1/2)*(5*x^3-3*x)
 FUNC4=(1/8)*(35*x^4-30*x^2+3)
 FUNC5=(1/8)*(63*x^5-70*x^3+15*x)
 FUNC6=(1/16)*(231*x^6-315*x^4+105*x^2-5)
 MINIMUM=-4.0
 MAXIMUM=4.0
 LABEL=bf1
... BF_CUSTOM

Defining Fourier basis functions of order 3 using BF_CUSTOM where the periodicity is indicated using the PERIODIC flag. This is just an example of what can be done, in practice you should use BF_FOURIER for Fourier basis functions.

BF_CUSTOM ...
 FUNC1=cos(x)
 FUNC2=sin(x)
 FUNC3=cos(2*x)
 FUNC4=sin(2*x)
 FUNC5=cos(3*x)
 FUNC6=sin(3*x)
 MINIMUM=-pi
 MAXIMUM=+pi
 LABEL=bf1
 PERIODIC
... BF_CUSTOM