Modified Lennard-Jones potential

This module implements a modified Lennard-Jones potential,

U_\text{LJ}\left(r_{ij}\right) = 4\epsilon_{ij} \left(
    \left(\frac{\sigma_{ij}}{r_{ij}}\right)^{m_{ij}}
  - \left(\frac{\sigma_{ij}}{r_{ij}}\right)^{n_{ij}}
\right)

for the interaction between two particles of species i and j.

The difference to halmd.mdsim.potentials.pair.lennard_jones is that the exponents of repulsion, m_{ij}, and of attraction, n_{ij}, can be specified explicitly.

class halmd.mdsim.potentials.pair.modified_lennard_jones(args)

Construct modified Lennard-Jones potential.

Parameters:
  • args (table) – keyword arguments
  • args.epsilon (table) – matrix with elements \epsilon_{ij} (default: 1)
  • args.sigma (table) – matrix with elements \sigma_{ij} (default: 1)
  • args.index_repulsion (table) – exponent of repulsive part, m_{ij}
  • args.index_attraction (table) – exponent of attractive part, , n_{ij}
  • 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”. If memory is not specified, the memory location is selected according to the compute device.

epsilon

Matrix with elements \epsilon_{ij}.

sigma

Matrix with elements \sigma_{ij}.

r_cut

Matrix with elements r_{\text{c}, ij} in reduced units.

r_cut_sigma

Matrix with elements r_{\text{c}, ij} in units of \sigma_{ij}.

index_m

Matrix with exponents m_{ij} of repulsive part of the potential

index_n

Matrix with exponents n_{ij} of attractive part of the potential

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 r_{\text{c}, ij}
  • 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})