# 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.

### exp_spline¶

Spline Signature:

exp_spline

Description:

Exponential of fifth order polynomial.

### 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.

• Splining is introduced in more detail here: Splining.

• List of examples:

## 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)


• This modifier is used in the following examples:

## 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)