class rgpot::TIP4PPot

Overview

Flexible TIP4P. More…

#include <WaterPots.hpp>
 
class TIP4PPot: public rgpot::Potential< TIP4PPot > {
public:
    // structs
 
    struct Impl;
 
    // construction
 
    TIP4PPot();
    TIP4PPot(const WaterConfig& config);
    TIP4PPot(const TIP4PPot&);
    ~TIP4PPot();
 
    // methods
 
    TIP4PPot& operator=(const TIP4PPot&);
    const WaterConfig& config() const;
    virtual PotCaps caps() const;
    virtual uint64_t paramsKey() const;
    void forceImpl(const ForceInput& in, ForceOut* out) const;
};

Detailed Documentation

Flexible TIP4P. Atoms are ordered H, H, …, O, O, one molecule per three atoms.

Methods

virtual PotCaps caps() const

Concurrency and evaluation capabilities of this potential.

Multi-threaded callers (NEB images, dimer endpoints) derive their sharing and cloning policy from this instead of hard-coded lists.

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.