.. _forces: ====== Forces ====== The ``Force`` abstract class ============================ The ``Force`` objects added to a ``System`` define the behavior of the particles. ``Force`` is an abstract class; subclasses implement specific behaviors. Classes that extend ``Force`` may implement actual physical forces, or any number of processes that either actually apply forces to particles or directly modify their positions or momenta. .. toctree:: :maxdepth: 2 generated/Force Common bonded and non-bonded forces =================================== These classes implement forces that are widely used in biomolecular simulation. .. toctree:: :maxdepth: 2 generated/CMAPTorsionForce generated/DrudeForce generated/GBSAOBCForce generated/GayBerneForce generated/HarmonicAngleForce generated/HarmonicBondForce generated/NonbondedForce generated/PeriodicTorsionForce generated/RBTorsionForce AMOEBA forces ============= These forces are used to implement the polarizable AMOEBA force fields. .. toctree:: :maxdepth: 2 generated/AmoebaGeneralizedKirkwoodForce generated/AmoebaMultipoleForce generated/AmoebaTorsionTorsionForce generated/AmoebaVdwForce generated/AmoebaWcaDispersionForce generated/HippoNonbondedForce Pseudo-forces ============= These inherit from ``Force``, but do not describe physical forces. They are used to implement thermostats or barostats, or otherwise modify the simulation from step to step. They are conceptually closer to modifications to the integrator, but providing them as a ``Force`` simplifies implementation and allows them to be combined in arbitrary ways. .. toctree:: :maxdepth: 2 generated/AndersenThermostat generated/ATMForce generated/CMMotionRemover generated/MonteCarloAnisotropicBarostat generated/MonteCarloBarostat generated/MonteCarloFlexibleBarostat generated/MonteCarloMembraneBarostat generated/RMSDForce generated/RPMDMonteCarloBarostat .. _custom-forces: Customizing ``Force`` ===================== OpenMM provides a number of classes that make it easier to implement custom forces for common scenarios. These classes implement constructors that take an algebraic expression as a string. The class is instantiated (not extended) to provide a ``Force`` object that efficiently implements the provided expression. .. toctree:: :maxdepth: 2 generated/CustomAngleForce generated/CustomBondForce generated/CustomCVForce generated/CustomCentroidBondForce generated/CustomCompoundBondForce generated/CustomExternalForce generated/CustomGBForce generated/CustomHbondForce generated/CustomManyParticleForce generated/CustomNonbondedForce generated/CustomTorsionForce