OpenMM
|
Force objects apply forces to the particles in a System, or alter their behavior in other ways. More...
#include <Force.h>
Public Member Functions | |
Force () | |
virtual | ~Force () |
int | getForceGroup () const |
Get the force group this Force belongs to. More... | |
void | setForceGroup (int group) |
Set the force group this Force belongs to. More... | |
Protected Member Functions | |
virtual ForceImpl * | createImpl () const =0 |
When a Context is created, it invokes this method on each Force in the System. More... | |
ForceImpl & | getImplInContext (Context &context) |
Get the ForceImpl corresponding to this Force in a Context. More... | |
ContextImpl & | getContextImpl (Context &context) |
Get the ContextImpl corresponding to a Context. More... | |
Friends | |
class | ContextImpl |
Force objects apply forces to the particles in a System, or alter their behavior in other ways.
This is an abstract class. Subclasses define particular forces.
More specifically, a Force object can do any or all of the following:
Forces may be organized into "force groups". This is used for multiple time step integration, and allows subsets of the Forces in a System to be evaluated at different times. By default, all Forces are in group 0. Call setForceGroup() to change this. Some Force subclasses may provide additional methods to further split their computations into multiple groups. Be aware that particular Platforms may place restrictions on the use of force groups, such as requiring all nonbonded forces to be in the same group.
|
inline |
|
inlinevirtual |
|
protectedpure virtual |
When a Context is created, it invokes this method on each Force in the System.
It should create a new ForceImpl object which can be used by the context for calculating forces. The ForceImpl will be deleted automatically when the Context is deleted.
Implemented in CustomGBForce, CustomNonbondedForce, CustomHbondForce, AmoebaMultipoleForce, NonbondedForce, CustomCompoundBondForce, GBVIForce, AmoebaVdwForce, CustomTorsionForce, CustomAngleForce, CustomBondForce, CustomExternalForce, GBSAOBCForce, AmoebaInPlaneAngleForce, MonteCarloAnisotropicBarostat, AmoebaAngleForce, AmoebaGeneralizedKirkwoodForce, AmoebaOutOfPlaneBendForce, DrudeForce, CMAPTorsionForce, AmoebaBondForce, AmoebaTorsionTorsionForce, MonteCarloBarostat, AmoebaWcaDispersionForce, AndersenThermostat, RBTorsionForce, AmoebaStretchBendForce, AmoebaPiTorsionForce, PeriodicTorsionForce, HarmonicAngleForce, HarmonicBondForce, and CMMotionRemover.
|
protected |
Get the ContextImpl corresponding to a Context.
int getForceGroup | ( | ) | const |
Get the force group this Force belongs to.
void setForceGroup | ( | int | group | ) |
Set the force group this Force belongs to.
group | the group index. Legal values are between 0 and 31 (inclusive). |
|
friend |