ProtoMol - an object-oriented component based framework for Molecular Dynamics simulations.

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

ProtoMol::Modifier Class Reference

#include <Modifier.h>

Inheritance diagram for ProtoMol::Modifier:

ProtoMol::iSGModifierPostForceChemostat ProtoMol::iSGModifierPreForceChemostat ProtoMol::ModifierAveraging ProtoMol::ModifierFriction ProtoMol::ModifierIncrementTimestep ProtoMol::ModifierISG ProtoMol::ModifierMetaRattleShake ProtoMol::ModifierMollification ProtoMol::ModifierPostForceBarostat< TIntegrator > ProtoMol::ModifierPostForceThermostat< TIntegrator > ProtoMol::ModifierPreForceBarostat< TIntegrator > ProtoMol::ModifierPreForceThermostat< TIntegrator > ProtoMol::ModifierRemoveAngularMomentum ProtoMol::ModifierRemoveLinearMomentum ProtoMol::ModifierUmbrella ProtoMol::ModifierUpdateBeta ProtoMol::ModifierUpdateBetaAndPush List of all members.

Public Member Functions

 Modifier (int order=0)
virtual ~Modifier ()
void execute ()
virtual bool isInternal () const=0
int order () const
void enable () const
void disable () const
bool isEnabled () const
bool operator< (const Modifier &m) const
void initialize (GenericTopology *topo, Vector3DBlock *positions, Vector3DBlock *velocities, Vector3DBlock *forces, ScalarStructure *energies)
std::string print () const

Protected Attributes

GenericTopologymyTopology
Vector3DBlockmyPositions
Vector3DBlockmyVelocities
Vector3DBlockmyForces
ScalarStructuremyEnergies

Private Member Functions

virtual void doExecute ()=0
virtual void doInitialize ()
virtual std::string doPrint () const=0

Private Attributes

int myOrder
bool myEnable

Detailed Description

Base class for all kind of modifier implementation, based on the Observer Pattern. A modifier object can be added at five different stages of a single time step:


Constructor & Destructor Documentation

ProtoMol::Modifier::Modifier int  order = 0  )  [inline]
 

virtual ProtoMol::Modifier::~Modifier  )  [inline, virtual]
 


Member Function Documentation

void ProtoMol::Modifier::disable  )  const [inline]
 

Deactivate modifier.

virtual void ProtoMol::Modifier::doExecute  )  [private, pure virtual]
 

The method, which does the actual modification.

Implemented in ProtoMol::ModifierAveraging, ProtoMol::ModifierFriction, ProtoMol::ModifierIncrementTimestep, ProtoMol::ModifierMollification, ProtoMol::ModifierNPTRattleDetails, ProtoMol::ModifierNPTShakeDetails, ProtoMol::ModifierNVTRattleDetails, ProtoMol::ModifierNVTShakeDetails, ProtoMol::ModifierPostForceBarostat< TIntegrator >, ProtoMol::ModifierPostForceThermostat< TIntegrator >, ProtoMol::ModifierPreForceBarostat< TIntegrator >, ProtoMol::ModifierPreForceThermostat< TIntegrator >, ProtoMol::ModifierRattle, ProtoMol::ModifierRemoveAngularMomentum, ProtoMol::ModifierRemoveLinearMomentum, ProtoMol::ModifierShake, ProtoMol::ModifierUpdateBeta, ProtoMol::ModifierUpdateBetaAndPush, ProtoMol::ModifierUmbrella, ProtoMol::iSGModifierPostForceChemostat, ProtoMol::iSGModifierPreForceChemostat, and ProtoMol::ModifierISG.

virtual void ProtoMol::Modifier::doInitialize  )  [inline, private, virtual]
 

Implemenation of initialize.

Reimplemented in ProtoMol::ModifierMetaRattleShake, ProtoMol::ModifierRemoveAngularMomentum, ProtoMol::ModifierRemoveLinearMomentum, and ProtoMol::ModifierISG.

virtual std::string ProtoMol::Modifier::doPrint  )  const [private, pure virtual]
 

Implemenation print/debug.

Implemented in ProtoMol::ModifierAveraging, ProtoMol::ModifierFriction, ProtoMol::ModifierIncrementTimestep, ProtoMol::ModifierMollification, ProtoMol::ModifierNPTRattleDetails, ProtoMol::ModifierNPTShakeDetails, ProtoMol::ModifierNVTRattleDetails, ProtoMol::ModifierNVTShakeDetails, ProtoMol::ModifierPostForceBarostat< TIntegrator >, ProtoMol::ModifierPostForceThermostat< TIntegrator >, ProtoMol::ModifierPreForceBarostat< TIntegrator >, ProtoMol::ModifierPreForceThermostat< TIntegrator >, ProtoMol::ModifierRattle, ProtoMol::ModifierRemoveAngularMomentum, ProtoMol::ModifierRemoveLinearMomentum, ProtoMol::ModifierShake, ProtoMol::ModifierUpdateBeta, ProtoMol::ModifierUpdateBetaAndPush, ProtoMol::ModifierUmbrella, ProtoMol::iSGModifierPostForceChemostat, ProtoMol::iSGModifierPreForceChemostat, and ProtoMol::ModifierISG.

void ProtoMol::Modifier::enable  )  const [inline]
 

Activate modifier.

void ProtoMol::Modifier::execute  )  [inline]
 

The method, which calls the implemenation.

void ProtoMol::Modifier::initialize GenericTopology topo,
Vector3DBlock positions,
Vector3DBlock velocities,
Vector3DBlock forces,
ScalarStructure energies
[inline]
 

Initialize.

bool ProtoMol::Modifier::isEnabled  )  const [inline]
 

If the modifier is active (doExecute() is called).

virtual bool ProtoMol::Modifier::isInternal  )  const [pure virtual]
 

If the modifier is internal (added by an integrator) or external (added by the user)

Implemented in ProtoMol::ModifierAveraging, ProtoMol::ModifierFriction, ProtoMol::ModifierIncrementTimestep, ProtoMol::ModifierMetaRattleShake, ProtoMol::ModifierMollification, ProtoMol::ModifierPostForceBarostat< TIntegrator >, ProtoMol::ModifierPostForceThermostat< TIntegrator >, ProtoMol::ModifierPreForceBarostat< TIntegrator >, ProtoMol::ModifierPreForceThermostat< TIntegrator >, ProtoMol::ModifierRemoveAngularMomentum, ProtoMol::ModifierRemoveLinearMomentum, ProtoMol::ModifierUpdateBeta, ProtoMol::ModifierUpdateBetaAndPush, ProtoMol::ModifierUmbrella, ProtoMol::iSGModifierPostForceChemostat, ProtoMol::iSGModifierPreForceChemostat, and ProtoMol::ModifierISG.

bool ProtoMol::Modifier::operator< const Modifier m  )  const [inline]
 

Strict weak order using first order and than pointer to use set<>.

int ProtoMol::Modifier::order  )  const [inline]
 

Returns order of execution.

std::string ProtoMol::Modifier::print  )  const [inline]
 

print/debug


Member Data Documentation

bool ProtoMol::Modifier::myEnable [mutable, private]
 

ScalarStructure* ProtoMol::Modifier::myEnergies [protected]
 

Vector3DBlock* ProtoMol::Modifier::myForces [protected]
 

int ProtoMol::Modifier::myOrder [private]
 

Vector3DBlock* ProtoMol::Modifier::myPositions [protected]
 

GenericTopology* ProtoMol::Modifier::myTopology [protected]
 

Vector3DBlock* ProtoMol::Modifier::myVelocities [protected]
 


The documentation for this class was generated from the following file: Last update: . GNU GENERAL PUBLIC LICENSE, copyrighted by the University of Notre Dame and the University of Bergen, Norway.