List of Potential Modifiers

Potential modifiers are described here: Potential modifiers.

A list of available potential modifiers is provided here.


Modifier that raises each potential-form to the power of the next.

If the potentials provide analytical derivatives, the pow() modifier will combine these correctly.


To take the square of the sum() of a series of potential forms you could use:

# This would evaluate to 0.16
A-B : pow(sum(as.constant -1, as.constant 0.1, as.constant 0.5),
          as.constant 2)

pow() can take more than two potential forms as its arguments:

# This would evaluate to 2^(2^3) = 256
A-B : pow(as.constant 2, as.constant 3, as.constant 2)

You aren’t restricted to using constant values as arguments:

# This is equivalent to 2^(0.5r + r^2)
A-B : pow(as.constant 2, as.polynomial 0 0.5 1)


Modifier that takes the product of the potential-forms provided to it as arguments.

If the potentials provide analytical derivatives the product() modifier will combine these correctly.


Any number of potential instances can be multiplied by each other:

# Evaluates to 16
A-A : product(as.constant 2.0, as.constant 2.0, as.constant 4.0)

# Apply a soft-cutoff at 2.5 Angs to a Buckingham potential
# This defines a custom function in the [Potential-Form] section
# based on the complementary error function for this purpose.
B-B : product(as.buck 1000.0 0.2 32.0,
              truncate 2.5)

truncate(rij, cutoff) = erfc(4*(rij-cutoff))/2.0


Modifier that smoothly splines between two potential forms by linking them with an intermediate spline.

spline() takes a single argument which is defined as a multi-range potential. This must define three ranges:

  1. Start potential
  2. Interpolating spline
  3. End potential

The Interpolating spline section has the form:


Where the SPLINE_LABEL defines the type of spline to be used and the (optional) SPLINE_PARAMETERS is a list of space separated options taken by the spline function.

A list of spline types usable with SPLINE_LABEL is now given:


Spline Signature:

buck4_spline \(r_\text{min}\)


Combination of a fifth and third order polynomial joined by a stationary point at \(r_\text{min}\). This is the spline used in the well-known four-range Buckingham potential form.

See also:


Spline Signature:



Exponential of fifth order polynomial.

See also:


A configuration string might be defined as:


Si-O : spline(>0 as.zbl 14 8 >=0.8 exp_spline >=1.4 as.buck 180003 0.3 32.0)

This would create a zbl and Buckingham potential connected by an exponential spline when r is between 0.8 and 1.4.


Modifier that sums all the potentials given as arguments.

If the potentials provide analytical derivatives the sum() modifier will combine these correctly.


Any number of potential instances can be summed:

# Evaluates to 3
A-A : sum(as.constant 1.0, as.constant 2.0)
# Evaluates to 6
B-B : sum(as.constant 1.0, as.constant 2.0, as.constant 3.0)

See also


Modifier that applies the following transformation to a given potential function:


Where X is the transformation value.

This modifier takes two arguments, the first is a potential form instance. The second must be an instance of as.constant that takes X as its argument.


To shift a Buckingham paair potential two angstroms to the left the trans() modifier could be used like this:

A-B : trans(as.buck 1000.0 0.1 32.0, as.constant 2)