class rgpot::UmaPot

Overview

UMA / OMol calculator: vesin neighbor list + AOTI package. More…

#include <UmaPot.hpp>
 
class UmaPot: public rgpot::Potential< UmaPot > {
public:
    // structs
 
    struct Impl;
 
    // construction
 
    UmaPot(const UmaConfig& config);
    UmaPot(const UmaPot&);
    ~UmaPot();
 
    // methods
 
    UmaPot& operator=(const UmaPot&);
    void forceImpl(const ForceInput& in, ForceOut* out) const;
    void forceBatchImpl(const ForceBatch& batch) const;
    virtual PotCaps caps() const;
    const UmaConfig& config() const;
    void setChargeSpin(int charge, int spin);
    virtual uint64_t paramsKey() const;
};

Detailed Documentation

UMA / OMol calculator: vesin neighbor list + AOTI package.

Loads an AOTInductor .pt2 exported by scripts/export_uma_aoti.py. Each force call builds a fairchem-convention edge list with vesin and runs the compiled graph. Charge and spin are per-call tensor inputs.

Methods

void forceBatchImpl(const ForceBatch& batch) const

One AOTI call per chunk of up to the package’s batch_max same-composition systems (a NEB band). Band packages carry only the batched graph, so a lone system is padded to two.

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.