Gromacs
2025-dev-20241002-88a4191
|
#include <gromacs/mdtypes/iforceprovider.h>
Interface for a component that provides forces during MD.
Modules implementing IMDModule generally implement this internally, and use IMDModule::initForceProviders() to register their implementation in ForceProviders.
The interface most likely requires additional generalization for use in other modules than the current electric field implementation.
The forces that are produced by force providers are not taken into account in the calculation of the virial. When applicable, the provider should compute its own virial contribution.
Public Member Functions | |
virtual void | calculateForces (const ForceProviderInput &forceProviderInput, ForceProviderOutput *forceProviderOutput)=0 |
Computes forces. More... | |
|
pure virtual |
Computes forces.
[in] | forceProviderInput | struct that collects input data for the force providers |
[in,out] | forceProviderOutput | struct that collects output data of the force providers |
Implemented in gmx::RestraintForceProvider, gmx::ColvarsForceProvider, gmx::anonymous_namespace{electricfield.cpp}::ElectricField, gmx::DensityFittingForceProvider, gmx::QMMMForceProvider, and gmx::PlumedForceProvider.