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::Integrator Class Reference

#include <Integrator.h>

Inheritance diagram for ProtoMol::Integrator:

ProtoMol::Makeable ProtoMol::NonStandardIntegrator ProtoMol::StandardIntegrator ProtoMol::MTSIntegrator ProtoMol::STSIntegrator ProtoMol::DihedralHMCIntegrator ProtoMol::ImpulseIntegrator ProtoMol::MCIntegrator ProtoMol::MOLLYIntegrator ProtoMol::UmbrellaIntegrator ProtoMol::BBKIntegrator ProtoMol::DMDLeapfrogIntegrator ProtoMol::iSGIntegrator ProtoMol::LangevinImpulseIntegrator ProtoMol::LeapfrogIntegrator ProtoMol::NoseNVTLeapfrogIntegrator ProtoMol::NPTVerletIntegrator ProtoMol::NVTVerletIntegrator ProtoMol::PaulTrapIntegrator ProtoMol::PLeapfrogIntegrator List of all members.

Public Member Functions

 Integrator ()
 Integrator (ForceGroup *forceGroup)
virtual ~Integrator ()
virtual void run (int numTimesteps)=0
virtual void initialize (GenericTopology *topo, Vector3DBlock *positions, Vector3DBlock *velocities, ScalarStructure *energies)
virtual Real getTimestep () const=0
Real getBottomTimestep () const
void forward ()
void backward ()
bool isforward () const
Vector3DBlockgetForces () const
ForceGroupgetForceGroup () const
void adoptPreStepModifier (Modifier *modifier)
void adoptPreDriftOrNextModifier (Modifier *modifier)
void adoptPostDriftOrNextModifier (Modifier *modifier)
void adoptPreForceModifier (Modifier *modifier)
void adoptMediForceModifier (Modifier *modifier)
void adoptPostForceModifier (Modifier *modifier)
void adoptPostStepModifier (Modifier *modifier)
void deleteExternalModifiers ()
bool removeModifier (const Modifier *modifier)
virtual ModifiercreateRattleModifier (Real eps, int maxIter)
virtual ModifiercreateShakeModifier (Real eps, int maxIter)
Integratortop ()
const Integratortop () const
Integratorbottom ()
const Integratorbottom () const
virtual Integratornext ()=0
virtual const Integratornext () const=0
virtual Integratorprevious ()=0
virtual const Integratorprevious () const=0
int level () const
int size () const
IntegratorDefinition getIntegratorDefinition () const
std::vector< IntegratorDefinitiongetIntegratorDefinitionAll () const
void uncache ()
virtual std::string getScope () const

Static Public Attributes

const std::string scope

Protected Member Functions

void preStepModify ()
void preDriftOrNextModify ()
void postDriftOrNextModify ()
void preForceModify ()
void mediForceModify ()
void postForceModify ()
void postStepModify ()
bool anyPreStepModify () const
bool anyPreDriftOrNextModify () const
bool anyPostDriftOrNextModify () const
bool anyPreForceModify () const
bool anyMediForceModify () const
bool anyPostForceModify () const
bool anyPostStepModify () const
void initializeModifiers ()
void deleteInternalModifiers ()
virtual void addModifierBeforeInitialize ()
virtual void addModifierAfterInitialize ()

Protected Attributes

GenericTopologymyTopo
Vector3DBlockmyPositions
Vector3DBlockmyVelocities
Vector3DBlockmyForces
ScalarStructuremyEnergies
ForceGroupmyForcesToEvaluate
bool myForward

Private Member Functions

void addModifier (Modifier *modifier)
void deleteModifier (Modifier *modifier)
virtual void doUncache ()

Private Attributes

std::set< Modifier * > myPreStepModifiers
std::set< Modifier * > myPreDriftOrNextModifiers
std::set< Modifier * > myPostDriftOrNextModifiers
std::set< Modifier * > myPreForceModifiers
std::set< Modifier * > myMediForceModifiers
std::set< Modifier * > myPostForceModifiers
std::set< Modifier * > myPostStepModifiers
std::set< Modifier * > myListModifiers

Constructor & Destructor Documentation

ProtoMol::Integrator::Integrator  ) 
 

ProtoMol::Integrator::Integrator ForceGroup forceGroup  ) 
 

ProtoMol::Integrator::~Integrator  )  [virtual]
 


Member Function Documentation

void ProtoMol::Integrator::addModifier Modifier modifier  )  [private]
 

virtual void ProtoMol::Integrator::addModifierAfterInitialize  )  [inline, protected, virtual]
 

Add modifiers which should not modify during initialize.

Reimplemented in ProtoMol::NoseNVTLeapfrogIntegrator, ProtoMol::NPTVerletIntegrator, ProtoMol::NVTVerletIntegrator, ProtoMol::STSIntegrator, and ProtoMol::iSGIntegrator.

virtual void ProtoMol::Integrator::addModifierBeforeInitialize  )  [inline, protected, virtual]
 

Add modifiers which should modify during initialize.

Reimplemented in ProtoMol::MOLLYIntegrator, and ProtoMol::iSGIntegrator.

void ProtoMol::Integrator::adoptMediForceModifier Modifier modifier  ) 
 

Add a modifier object between system and extended force calculation.

void ProtoMol::Integrator::adoptPostDriftOrNextModifier Modifier modifier  ) 
 

Add a modifier object after doDriftOrNextIntegrator.

void ProtoMol::Integrator::adoptPostForceModifier Modifier modifier  ) 
 

Add a modifier obejct after the force calculation.

void ProtoMol::Integrator::adoptPostStepModifier Modifier modifier  ) 
 

Add a modifier obejct at the end of a step.

void ProtoMol::Integrator::adoptPreDriftOrNextModifier Modifier modifier  ) 
 

Add a modifier object before doDriftOrNextIntegrator.

void ProtoMol::Integrator::adoptPreForceModifier Modifier modifier  ) 
 

Add a modifier object before the force calculation.

void ProtoMol::Integrator::adoptPreStepModifier Modifier modifier  ) 
 

Add a modifier obejct at the begining of a step.

bool ProtoMol::Integrator::anyMediForceModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPostDriftOrNextModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPostForceModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPostStepModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPreDriftOrNextModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPreForceModify  )  const [inline, protected]
 

bool ProtoMol::Integrator::anyPreStepModify  )  const [inline, protected]
 

void ProtoMol::Integrator::backward  ) 
 

Backward time-integration.

const Integrator * ProtoMol::Integrator::bottom  )  const
 

Integrator * ProtoMol::Integrator::bottom  ) 
 

Modifier * ProtoMol::Integrator::createRattleModifier Real  eps,
int  maxIter
[virtual]
 

Create a Rattle modifier.

Reimplemented in ProtoMol::NPTVerletIntegrator, ProtoMol::NVTVerletIntegrator, and ProtoMol::iSGIntegrator.

Modifier * ProtoMol::Integrator::createShakeModifier Real  eps,
int  maxIter
[virtual]
 

Create a Shake modifier.

Reimplemented in ProtoMol::NPTVerletIntegrator, ProtoMol::NVTVerletIntegrator, and ProtoMol::iSGIntegrator.

void ProtoMol::Integrator::deleteExternalModifiers  ) 
 

Delete all external modifiers.

void ProtoMol::Integrator::deleteInternalModifiers  )  [protected]
 

Delete all internal modifiers.

void ProtoMol::Integrator::deleteModifier Modifier modifier  )  [private]
 

virtual void ProtoMol::Integrator::doUncache  )  [inline, private, virtual]
 

Integrator specific details of uncache.

Reimplemented in ProtoMol::BSplineMOLLYIntegrator, and ProtoMol::PaulTrapIntegrator.

void ProtoMol::Integrator::forward  ) 
 

Forward time-integration.

Real ProtoMol::Integrator::getBottomTimestep  )  const [inline]
 

Returns the smallest time step of the integrator hierarchy.

ForceGroup* ProtoMol::Integrator::getForceGroup  )  const [inline]
 

Vector3DBlock * ProtoMol::Integrator::getForces  )  const [inline]
 

IntegratorDefinition ProtoMol::Integrator::getIntegratorDefinition  )  const
 

Retrieves the integrator definition of the actual level.

vector< IntegratorDefinition > ProtoMol::Integrator::getIntegratorDefinitionAll  )  const
 

Retrieves the complete integrator definition.

virtual std::string ProtoMol::Integrator::getScope  )  const [inline, virtual]
 

Implements ProtoMol::Makeable.

virtual Real ProtoMol::Integrator::getTimestep  )  const [pure virtual]
 

Returns the time step of the actual integrator.

Implemented in ProtoMol::MTSIntegrator, and ProtoMol::STSIntegrator.

void ProtoMol::Integrator::initialize GenericTopology topo,
Vector3DBlock positions,
Vector3DBlock velocities,
ScalarStructure energies
[virtual]
 

Set the integrator up. This method can be called at any time, and should perform any starting force evaluations the integrator needs in order to run correctly. The simulation data should be kept in the given structures.

Reimplemented in ProtoMol::BBKIntegrator, ProtoMol::BSplineMOLLYIntegrator, ProtoMol::DihedralHMCIntegrator, ProtoMol::DLMCIntegrator, ProtoMol::DMDLeapfrogIntegrator, ProtoMol::EquilibriumMOLLYIntegrator, ProtoMol::HMCIntegrator, ProtoMol::ImpulseIntegrator, ProtoMol::LangevinImpulseIntegrator, ProtoMol::LeapfrogIntegrator, ProtoMol::MCIntegrator, ProtoMol::MOLLYIntegrator, ProtoMol::MTSIntegrator, ProtoMol::NoseNVTLeapfrogIntegrator, ProtoMol::NPTVerletIntegrator, ProtoMol::NVTVerletIntegrator, ProtoMol::PaulTrapIntegrator, ProtoMol::PLeapfrogIntegrator, ProtoMol::ShadowHMCIntegrator, ProtoMol::StandardIntegrator, ProtoMol::STSIntegrator, ProtoMol::UmbrellaIntegrator, and ProtoMol::iSGIntegrator.

void ProtoMol::Integrator::initializeModifiers  )  [protected]
 

Initialize all modifiers.

bool ProtoMol::Integrator::isforward  )  const [inline]
 

int ProtoMol::Integrator::level  )  const
 

Returns the actual level of the integrator.

void ProtoMol::Integrator::mediForceModify  )  [protected]
 

virtual const Integrator* ProtoMol::Integrator::next  )  const [pure virtual]
 

Implemented in ProtoMol::MTSIntegrator, and ProtoMol::STSIntegrator.

virtual Integrator* ProtoMol::Integrator::next  )  [pure virtual]
 

Implemented in ProtoMol::MTSIntegrator, and ProtoMol::STSIntegrator.

void ProtoMol::Integrator::postDriftOrNextModify  )  [protected]
 

void ProtoMol::Integrator::postForceModify  )  [protected]
 

void ProtoMol::Integrator::postStepModify  )  [protected]
 

void ProtoMol::Integrator::preDriftOrNextModify  )  [protected]
 

void ProtoMol::Integrator::preForceModify  )  [protected]
 

void ProtoMol::Integrator::preStepModify  )  [protected]
 

virtual const Integrator* ProtoMol::Integrator::previous  )  const [pure virtual]
 

Implemented in ProtoMol::StandardIntegrator.

virtual Integrator* ProtoMol::Integrator::previous  )  [pure virtual]
 

Implemented in ProtoMol::StandardIntegrator.

bool ProtoMol::Integrator::removeModifier const Modifier modifier  ) 
 

Remove one specific modifier from the modifier list(s).

virtual void ProtoMol::Integrator::run int  numTimesteps  )  [pure virtual]
 

Run the integrator for the certain number of timesteps. It can be assumed that the topology and forces have not changed since the last time the integrator was initialized.

Implemented in ProtoMol::BBKIntegrator, ProtoMol::DihedralHMCIntegrator, ProtoMol::DMDLeapfrogIntegrator, ProtoMol::LeapfrogIntegrator, ProtoMol::MCIntegrator, ProtoMol::NPTVerletIntegrator, ProtoMol::NVTVerletIntegrator, ProtoMol::PLeapfrogIntegrator, ProtoMol::ShadowHMCIntegrator, ProtoMol::StandardIntegrator, ProtoMol::UmbrellaIntegrator, and ProtoMol::iSGIntegrator.

int ProtoMol::Integrator::size  )  const [inline]
 

Returns the number of levels.

const Integrator * ProtoMol::Integrator::top  )  const
 

Integrator * ProtoMol::Integrator::top  ) 
 

void ProtoMol::Integrator::uncache  ) 
 

Forces all integrators and their associated forces to clear the cache and pre-computed values


Member Data Documentation

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

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

ForceGroup* ProtoMol::Integrator::myForcesToEvaluate [protected]
 

bool ProtoMol::Integrator::myForward [protected]
 

std::set<Modifier*> ProtoMol::Integrator::myListModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myMediForceModifiers [private]
 

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

std::set<Modifier*> ProtoMol::Integrator::myPostDriftOrNextModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myPostForceModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myPostStepModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myPreDriftOrNextModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myPreForceModifiers [private]
 

std::set<Modifier*> ProtoMol::Integrator::myPreStepModifiers [private]
 

GenericTopology* ProtoMol::Integrator::myTopo [protected]
 

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

const string ProtoMol::Integrator::scope [static]
 


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