Morse potential¶
This module implements the Morse potential,
for the interaction between two particles of species and
.
-
class
halmd.mdsim.potentials.pair.
morse
(args)¶ Construct Morse potential.
Parameters: - args (table) – keyword arguments
- args – keyword arguments
- args.epsilon (table) – matrix with elements
(default:
1
) - args.sigma (table) – matrix with elements
(default:
1
) - args.minimum (table) – Minimum/equilibrium distance
in units of
- args.species (number) – number of particle species (optional)
- args.memory (string) – select memory location (optional)
- args.label (string) – instance label (optional)
If the argument
species
is omitted, it is inferred from the first dimension of the parameter matrices.If all elements of a matrix are equal, a scalar value may be passed instead which is promoted to a square matrix of size given by the number of particle
species
.The supported values for
memory
are “host” and “gpu”. Ifmemory
is not specified, the memory location is selected according to the compute device.-
epsilon
¶ Matrix with elements
.
-
sigma
¶ Matrix with elements
.
-
r_cut
¶ Matrix with elements
in reduced units.
-
r_cut_sigma
¶ Matrix with elements
in units of
.
-
r_min_sigma
¶ Equilibrium distance
in units of
.
-
description
¶ Name of potential for profiler.
-
memory
¶ Device where the particle memory resides.
-
truncate
(args)¶ Truncate potential. See Potential truncations for available truncations.
Parameters: - args (table) – keyword argument
- args[1] (string) – name of truncation type
- cutoff (table) – matrix with elements
- args.* (any) – additional arguments depend on the truncation type
Returns: truncated potential
Example:
potential = potential:truncate({"smooth_r4", cutoff = 5, h = 0.05})
-
modify
(args)¶ Apply potential modification. See Potential modifications for available modifications.
Parameters: - args (table) – keyword argument
- args[1] (string) – name of modification type
- args.* (any) – additional arguments depend on the modification type
Returns: modified potential
Example:
potential = potential:modify({"hard_core", radius = 0.5})