class rgpot::LJPot

Overview

Implementation of a shifted 12-6 Lennard-Jones potential. More…

#include <LJPot.hpp>
 
class LJPot: public rgpot::Potential< LJPot > {
public:
    // construction
 
    LJPot();
    LJPot(const LJConfig& c);
 
    // methods
 
    const LJConfig& config() const;
    virtual uint64_t paramsKey() const;
    void forceImpl(const ForceInput& in, ForceOut* out) const;
};

Detailed Documentation

Implementation of a shifted 12-6 Lennard-Jones potential.

Pairwise interactions within the cutoff radius, minimum image convention on an orthogonal box. Pairs come from the shared rgpot::nlist::PairListCache (the eOn PairListCache design): repeated evaluations on nearby geometries reuse a Verlet-skin cached candidate list, and one-shot evaluations run a single fused scan identical in pair content to the historical per-call double loop.

Warning

The box is assumed to be orthogonal.

Methods

virtual uint64_t paramsKey() const

Fingerprint of the potential’s parameter set.

Mixed into the result-cache key so results never cross parameter sets. Implementations hash their config field by field (see ParamHash.hpp) plus a kernel-version salt that changes whenever the numerics change. The default (0) suits parameter-free potentials whose numerics never changed.

void forceImpl(const ForceInput& in, ForceOut* out) const

Computes the forces and energy for a given configuration.

Parameters:

in

Structure containing coordinates and cell info.

out

Pointer to the results structure.

Returns:

Void.