Potentials (pele.potentials)#

This module exports native potential bindings and Python implementations. The reference below groups the available models and wrappers by purpose.

Potential interface#

Python potentials can derive from these base classes.

BasePotential()

Base class for all potentials

PairwisePotentialInterface

this class defines the python interface for c++ pair potentials

BasePotentialAtomistic()

Base class for all potentials that can use interaction lists

When creating a potential, implement getEnergy(). Many routines also use gradients, so implement getEnergyGradient() to avoid calculating them numerically. See Creating Your Potential for a worked example.

Pair potentials#

LJ

define the python interface to the c++ LJ implementation

BLJCut

Binary Lennard-Jones with a cutoff

LJCut([eps, sig, rcut, boxl])

lennard jones potential with a cutoff that is continuous and smooth

LJpshift(natoms, ntypeA[, boxl, rcut, ...])

binary lennard jones potential with smooth cutoff

Frenkel

Python interface to the native Frenkel pair potential.

Morse([rho, r0, A, boxvec, rcut])

the morse potential

HS_WCA

Define the python interface to the c++ HS_WCA implementation.

WCA

define the python interface to the c++ WCA implementation

WCANeighborList

define the python interface to the c++ WCA implementation

WCAAtomList

define the python interface to the c++ WCA implementation

Inverse-power potentials#

InversePower

define the python interface to the c++ InversePower implementation

InversePowerHS

define the python interface to the c++ InversePowerHS implementation

InversePowerStillinger

Python interface to C++ implementation of InversePowerStillinger.

InversePowerStillingerCut

Python interface to C++ implementation of InversePowerStillingerCut, a smooth potential with cutoff distance.

InversePowerStillingerCutQuad

Python interface to C++ implementation of InversePowerStillingerCutQuad, a smooth repulsive potential with a cutoff distance.

PyInversePower(pow, eps, radii[, ndim, ...])

A python based inversepower potential for small system sizes with periodic boundary conditions.

Many-body potentials#

ATLJ([eps, sig, Z])

Lennard Jones + three body Axilrod-Teller term

ATLJCPP

alias of ATLJ

Harmonic and Gaussian potentials#

Harmonic

define the python interface to the c++ Harmonic potential implementation

RadialGaussian

define the python interface to the c++ RadialGaussian potential implementation

SumGaussianPot

Sum of GaussianPot

Spin potentials#

XYModel([dim, phi, periodic, phases])

XY model of 2d spins on a lattice

HeisenbergModel([dim, field_disorder, fields])

The classical Heisenberg Model of 3d spins on a lattice.

HeisenbergModelRA([dim, field_disorder, fields])

The classical Heisenberg Model of 3d spins on a lattice with random anisotropy.

MeanFieldPSpinSpherical

Python interface to _Cdef_MeanFieldPSpinSpherical

Potential wrappers#

CombinedPotential

Sum native potentials added with add_potential.

FrozenPotentialWrapper

Wrapper for a potential object for freezing degrees of freedom

Cost and test functions#

MLCost(data[, log_probf, probf])

Cost function to be used for maximum likelihood optimization.

PoweredCosineSum

Python Interface to the c++ PoweredCosineSum potential implementation

External potentials#

GMINPotential(GMIN)

Interface to fortran GMIN potential

LAMMPSPotential is available when the optional LAMMPS dependency is installed. See the Python adapter source and native adapter source for its energy and gradient interface.