Potential [potential]

Specify the potential the particles should “feel”.

Depending on the chosen type there are different options available / compulsory, which are explained in the following sections.

Besides specific hardcoded potentials, there are options to enter custom potentials.

type: string

Specify the type of the potential. Currently available values

  • polynomial: specify polynomial coefficients for potential

  • mueller-brown: 2D potential with 3 metastable states seperate by barriers.

boundary-condition: string

What should happen if particles go outside the specified range. If not specified, nothing happens. Currently available values:

  • periodic: move outside particles to other side of potential

  • reflective: move outside particles to the boundary and reverse their momentum

Polynomial potential

Custom potential build by a polynomial in up to 3 dimensions.

n_dim: int

Number of dimensions of the potential

min: float or list of floats

Minimum point(s) of the potential (per dimension)

min: float or list of floats

Maximum point(s) of the potential (per dimension)

In 1D the coefficients can be directly specified with

coeffs: list of floats

Coefficients of polynomial in increasing order, starting with constant order

Alternatively (and compulsory in more than one dimension) the path to the file holding the coefficients can be specified:

coeffs-file: string

Path to the file holding the coefficients The first n_dim columns hold the polynomial orders while column N+1 holds the coefficients. Remaining columns or lines starting with # are ignored. The syntax is compatible with coefficient files used by the ves_md_linearexpansion tool of plumed.

Müller-Brown potential

2D potential created by a sum of four exponential terms.

More information about this potential can be found in [1].

The potential ranges are hardcoded to [(-1.5, 1.5), (-0.5, 2.5)]

scaling-factor: float, optional

Scale the potential by the given factor

Examples

The following input directly sets up a potential of the form \(0.2*x - 4*x^2 + x^4\)

[potential]
type: polynomial
n_dim: 1
coeffs: 0, 0.2, -4, 0, 1
min: -2.5
max: 2.5

When using a potential of higher dimensionality, the coefficients are given in an extra file. This is the exemplary input for the Wolfe-Quapp potential

[potential]
type: polynomial
n_dim: 2
coeffs-file: wolfe_quapp.coeffs
min: -2.5, -2.5
max: 2.5, 2.5

The wolfe_quapp.coeffs file specifying the coefficients might look like this:

#! FIELDS idx_dim1 idx_dim2 pot.coeffs index description
#! SET type LinearBasisSet
#! SET ndimensions  2
#! SET ncoeffs_total  25
#! SET shape_dim1  5
#! SET shape_dim2  5
       0       0         0.0000000000000000e+00       0  1*1
       1       0         0.3000000000000000e+00       1  s^1*1
       2       0        -2.0000000000000000e+00       2  s^2*1
       4       0         1.0000000000000000e+00       4  s^4*1
       0       1         0.1000000000000000e+00       5  1*s^1
       1       1        +1.0000000000000000e+00       6  s^1*s^1
       0       2        -4.0000000000000000e+00      10  1*s^2
       0       4         1.0000000000000000e+00      20  1*s^4
#!-------------------

Note that the parser actually ignores all header comments as well as the index and description column. Using a file with just the first three columns gives the same result.

When using the Müller-Brown potential most of the properties are hardcoded, so only few options remain. Here we choose to employ reflective boundary conditions to avoid particles outside the range due to the low scaling factor.

[potential]
type: mueller-brown
scaling-factor: 0.1
boundary-condition: reflective

References