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

#include <ShadowHMCIntegrator.h>

Inheritance diagram for ProtoMol::ShadowHMCIntegrator:

ProtoMol::MCIntegrator ProtoMol::MTSIntegrator ProtoMol::StandardIntegrator ProtoMol::Integrator ProtoMol::Makeable List of all members.

Public Member Functions

 ShadowHMCIntegrator ()
 ShadowHMCIntegrator (int cycles, bool randomCycLen, Real initialTemperature, unsigned int shadowOrder, Real c, ForceGroup *overloadedForces, StandardIntegrator *nextIntegrator)
virtual ~ShadowHMCIntegrator ()
virtual std::string getIdNoAlias () const
virtual unsigned int getParameterSize () const
virtual void getParameters (std::vector< Parameter > &parameters) const
virtual void initialize (GenericTopology *topo, Vector3DBlock *positions, Vector3DBlock *velocities, ScalarStructure *energies)
virtual void run (int numTimesteps)

Static Public Attributes

const std::string keyword

Protected Member Functions

virtual void perturbSystem ()
virtual void saveValues ()
virtual void restoreValues ()

Private Member Functions

void updateBeta ()
void pushShadowHistory ()
void calculateShadow ()
Real calcShadow4 ()
Real calcShadow8 ()
void runPreSteps (int numTimesteps)
void runPostSteps (int numTimesteps)
void resetHistory ()
void disableBetaUpdate ()
void enableBetaUpdate ()
virtual MTSIntegratordoMake (std::string &errMsg, const std::vector< Value > &values, ForceGroup *fg, StandardIntegrator *nextIntegrator) const

Private Attributes

unsigned int myOrder
unsigned int myShadowK
unsigned int myShadowKover2
Real myC
Real myBeta
Real sumTotalEnergy
std::deque< Vector3DBlock > * myPrevVelocities
std::deque< Vector3DBlock > * myPrevPositions
std::deque< Real > * myPrevBeta
ModifierUpdateBetamyModifier1
ModifierUpdateBetaAndPushmyModifier2
Vector3DBlockmyOldForces

Friends

class ModifierUpdateBeta
class ModifierUpdateBetaAndPush

Constructor & Destructor Documentation

ProtoMol::ShadowHMCIntegrator::ShadowHMCIntegrator  ) 
 

ProtoMol::ShadowHMCIntegrator::ShadowHMCIntegrator int  cycles,
bool  randomCycLen,
Real  initialTemperature,
unsigned int  shadowOrder,
Real  c,
ForceGroup overloadedForces,
StandardIntegrator nextIntegrator
 

ProtoMol::ShadowHMCIntegrator::~ShadowHMCIntegrator  )  [virtual]
 


Member Function Documentation

Real ProtoMol::ShadowHMCIntegrator::calcShadow4  )  [private]
 

Real ProtoMol::ShadowHMCIntegrator::calcShadow8  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::calculateShadow  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::disableBetaUpdate  )  [private]
 

MTSIntegrator * ProtoMol::ShadowHMCIntegrator::doMake std::string &  errMsg,
const std::vector< Value > &  values,
ForceGroup fg,
StandardIntegrator nextIntegrator
const [private, virtual]
 

Implements ProtoMol::MTSIntegrator.

void ProtoMol::ShadowHMCIntegrator::enableBetaUpdate  )  [private]
 

virtual std::string ProtoMol::ShadowHMCIntegrator::getIdNoAlias  )  const [inline, virtual]
 

Implements ProtoMol::Makeable.

void ProtoMol::ShadowHMCIntegrator::getParameters std::vector< Parameter > &  parameters  )  const [virtual]
 

retrieve all parameters

Reimplemented from ProtoMol::MCIntegrator.

virtual unsigned int ProtoMol::ShadowHMCIntegrator::getParameterSize  )  const [inline, virtual]
 

number of parameters

Reimplemented from ProtoMol::MTSIntegrator.

void ProtoMol::ShadowHMCIntegrator::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 from ProtoMol::MCIntegrator.

void ProtoMol::ShadowHMCIntegrator::perturbSystem  )  [protected, virtual]
 

Each class must implement its own system perturbation method.

Implements ProtoMol::MCIntegrator.

void ProtoMol::ShadowHMCIntegrator::pushShadowHistory  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::resetHistory  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::restoreValues  )  [protected, virtual]
 

Implements ProtoMol::MCIntegrator.

void ProtoMol::ShadowHMCIntegrator::run int  numTimesteps  )  [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.

Reimplemented from ProtoMol::MCIntegrator.

void ProtoMol::ShadowHMCIntegrator::runPostSteps int  numTimesteps  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::runPreSteps int  numTimesteps  )  [private]
 

void ProtoMol::ShadowHMCIntegrator::saveValues  )  [protected, virtual]
 

Save/restore state implementations (default pos, vel & energies).

Implements ProtoMol::MCIntegrator.

void ProtoMol::ShadowHMCIntegrator::updateBeta  )  [private]
 


Friends And Related Function Documentation

friend class ModifierUpdateBeta [friend]
 

friend class ModifierUpdateBetaAndPush [friend]
 


Member Data Documentation

const string ProtoMol::ShadowHMCIntegrator::keyword [static]
 

Real ProtoMol::ShadowHMCIntegrator::myBeta [private]
 

Real ProtoMol::ShadowHMCIntegrator::myC [private]
 

ModifierUpdateBeta* ProtoMol::ShadowHMCIntegrator::myModifier1 [private]
 

ModifierUpdateBetaAndPush* ProtoMol::ShadowHMCIntegrator::myModifier2 [private]
 

Vector3DBlock* ProtoMol::ShadowHMCIntegrator::myOldForces [private]
 

unsigned int ProtoMol::ShadowHMCIntegrator::myOrder [private]
 

std::deque< Real >* ProtoMol::ShadowHMCIntegrator::myPrevBeta [private]
 

std::deque< Vector3DBlock >* ProtoMol::ShadowHMCIntegrator::myPrevPositions [private]
 

std::deque< Vector3DBlock >* ProtoMol::ShadowHMCIntegrator::myPrevVelocities [private]
 

unsigned int ProtoMol::ShadowHMCIntegrator::myShadowK [private]
 

unsigned int ProtoMol::ShadowHMCIntegrator::myShadowKover2 [private]
 

Real ProtoMol::ShadowHMCIntegrator::sumTotalEnergy [private]
 


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.