List of Potential Modifiers

Potential modifiers are described here: Potential modifiers.

A list of available potential modifiers is provided here.

pow()

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.

Example:

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

[Pair]
# 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:

[Pair]
# 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:

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

product()

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.

Example:

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

[Pair]
# 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)

[Potential-Form]
truncate(rij, cutoff) = erfc(4*(rij-cutoff))/2.0

spline()

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:

SPLINE_LABEL SPLINE_PARAMETERS

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:

buck4_spline

Spline Signature:
 

buck4_spline \(r_\text{min}\)

Description:

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:

exp_spline

Spline Signature:
 

exp_spline

Description:

Exponential of fifth order polynomial.

See also:

Example:

A configuration string might be defined as:

[Pair]

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.

sum()

Modifier that sums all the potentials given as arguments.

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

Example:

Any number of potential instances can be summed:

[Pair]
# 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

trans()

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

potential(r+X)

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.

Example

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

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