Gromacs  2026.0-dev-20251109-f20ba35
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
gmx::TorchModel Class Reference

#include <gromacs/applied_forces/nnpot/torchmodel.h>

+ Inheritance diagram for gmx::TorchModel:
+ Collaboration diagram for gmx::TorchModel:

Description

Class responsible for loading and evaluating a TorchScript-compiled neural network model. Inherits from NNPotModel.

Public Member Functions

 TorchModel (const std::string &filename, NNPotEmbedding embedding, const MDLogger &logger, const MpiComm &mpiComm)
 Constructor for TorchModel. More...
 
void evaluateModel (gmx_enerdata_t *enerd, ArrayRef< RVec > forces, ArrayRef< const int > indexLookup, ArrayRef< const int > mmIndices, ArrayRef< const std::string > inputs, ArrayRef< RVec > positions, ArrayRef< int > atomNumbers, ArrayRef< int > atomPairs, ArrayRef< RVec > pairShifts, ArrayRef< RVec > positionsMM, ArrayRef< real > chargesMM, real nnpCharge, ArrayRef< const LinkFrontierAtom > linkFrontier, matrix *box=nullptr, PbcType *pbcType=nullptr) override
 
bool outputsForces () const override
 helper function to check if model outputs forces
 

Constructor & Destructor Documentation

gmx::TorchModel::TorchModel ( const std::string &  filename,
NNPotEmbedding  embedding,
const MDLogger &  logger,
const MpiComm &  mpiComm 
)

Constructor for TorchModel.

Parameters
[in]filenamepath to the TorchScript model file
[in]embeddingembedding scheme used for NNP/MM interaction
[in]loggerhandle to MDLogger
[in]mpiCommhandle to MpiComm

Member Function Documentation

void gmx::TorchModel::evaluateModel ( gmx_enerdata_t enerd,
ArrayRef< RVec forces,
ArrayRef< const int >  indexLookup,
ArrayRef< const int >  mmIndices,
ArrayRef< const std::string >  inputs,
ArrayRef< RVec positions,
ArrayRef< int >  atomNumbers,
ArrayRef< int >  atomPairs,
ArrayRef< RVec pairShifts,
ArrayRef< RVec positionsMM,
ArrayRef< real chargesMM,
real  nnpCharge,
ArrayRef< const LinkFrontierAtom >  linkFrontier,
matrix *  box = nullptr,
PbcType pbcType = nullptr 
)
overridevirtual

Call inference on NN model and retrieve outputs

Parameters
[out]enerdenergy data struct
[out]forcesforces on atoms
[in]indexLookuplookup table for atom indices
[in]mmIndicesindices of MM atoms
[in]inputslist of strings specifying input data
[in]positionsatom positions
[in]atomNumbersatom numbers
[in]atomPairslist of all input atom pairs within cutoff
[in]pairShiftslist of periodic shift vectors corresponding to atom pairs
[in]positionsMMMM atom positions
[in]chargesMMMM atom charges
[in]nnpChargetotal charge of NNP region
[in]linkFrontierlink frontier atoms
[in]boxsimulation box
[in]pbcTypeperiodic boundary conditions

Implements gmx::INNPotModel.


The documentation for this class was generated from the following files: