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.
The package was merged for one composition, charge, spin and task. Every force call checks the config and the input against the metadata embedded in the package and throws UmaContractError on a mismatch (see UmaContract).
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.