class rgpot::ZBLPot

Overview

Universal screened nuclear repulsion with a switched cutoff. More…

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

Detailed Documentation

Universal screened nuclear repulsion with a switched cutoff.

Every pair within cut_global contributes, with vectors taken straight from the coordinates: opt.periodic is off in all three directions, so the pair scan never folds a separation into the cell. Pairs come from the shared rgpot::nlist::PairListCache, and the per-species coefficient tables are built once per species set.

Construction

ZBLPot(const ZBLConfig& c)

Constructs the potential from its cutoff pair.

Parameters:

c

Configuration; requires 0 < cut_inner < cut_global.

std::invalid_argument

when the cutoff ordering is violated.

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.

virtual PotCaps caps() const

Free boundaries: the kernel ignores the cell and never applies the minimum image convention.

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.