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.