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 theves_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