.. index:: pair: class; rgpot::UmaPot .. _doxid-classrgpot_1_1_uma_pot: class rgpot::UmaPot =================== .. toctree:: :hidden: struct_rgpot_UmaPot_Impl.rst Overview ~~~~~~~~ UMA / OMol calculator: vesin neighbor list + AOTI package. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class UmaPot: public rgpot::Potential< UmaPot > { public: // structs struct :ref:`Impl`; // construction :target:`UmaPot`(const :ref:`UmaConfig`& config); :target:`UmaPot`(const UmaPot&); :target:`~UmaPot`(); // methods UmaPot& :target:`operator=`(const UmaPot&); void :target:`forceImpl`(const :ref:`ForceInput`& in, :ref:`ForceOut`* out) const; void :ref:`forceBatchImpl`(const :ref:`ForceBatch`& batch) const; virtual :ref:`PotCaps` :ref:`caps`() const; const :ref:`UmaConfig`& :target:`config`() const; void :target:`setChargeSpin`(int charge, int spin); virtual uint64_t :ref:`paramsKey`() const; }; .. _details-classrgpot_1_1_uma_pot: 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 ------- .. index:: pair: function; forceBatchImpl .. _doxid-classrgpot_1_1_uma_pot_1adba21af630a10ae2db55f615b0fdc445: .. ref-code-block:: cpp :class: doxyrest-title-code-block void forceBatchImpl(const :ref:`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. .. index:: pair: function; caps .. _doxid-classrgpot_1_1_uma_pot_1a019bb20075a03501bca579f1000da723: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`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. .. index:: pair: function; paramsKey .. _doxid-classrgpot_1_1_uma_pot_1aec8956d8d8fbc5af49d2b69f3e622d5b: .. ref-code-block:: cpp :class: doxyrest-title-code-block 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 :ref:`ParamHash.hpp `) plus a kernel-version salt that changes whenever the numerics change. The default (0) suits parameter-free potentials whose numerics never changed.