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

#include <iSGIntegrator.h>

Inheritance diagram for ProtoMol::iSGIntegrator:

ProtoMol::STSIntegrator ProtoMol::StandardIntegrator ProtoMol::Integrator ProtoMol::Makeable List of all members.

Public Member Functions

 iSGIntegrator ()
 iSGIntegrator (Real timestep, unsigned int numComp, Real temperature, Real pressure, const std::vector< Real > &fugacityFrac, Real tauT, Real tauV, Real tauP, Real tauD, ForceGroup *overloadedForces)
XSC getXSC () const
Real getEpsilonVel () const
Real getEtaVel () const
Real getNumAtoms () const
Real getAveDeltaMu (int NumSteps)
virtual std::string getIdNoAlias () const
virtual void getParameters (std::vector< Parameter > &parameters) const
virtual unsigned int getParameterSize () const
virtual void initialize (GenericTopology *topo, Vector3DBlock *positions, Vector3DBlock *velocities, ScalarStructure *energies)
virtual void run (int numTimesteps)
virtual ModifiercreateRattleModifier (Real eps, int maxIter)
virtual ModifiercreateShakeModifier (Real eps, int maxIter)

Static Public Attributes

const std::string keyword

Protected Member Functions

virtual void addModifierBeforeInitialize ()
virtual void addModifierAfterInitialize ()
virtual void doDrift ()
virtual void doHalfKick ()
void modifyForces (const std::vector< iSGPAR::Bond > &, const std::vector< iSGPAR::Angle > &, const std::vector< iSGPAR::Dihedral > &, const std::vector< iSGPAR::Improper > &, const std::vector< iSGPAR::AtomType > &, const std::vector< ModifierISG::TransformMap > &)
void checkForTransformation (const std::vector< iSGPAR::Bond > &, const std::vector< iSGPAR::Angle > &, const std::vector< iSGPAR::Dihedral > &, const std::vector< iSGPAR::Improper > &, const std::vector< iSGPAR::AtomType > &, const std::vector< ModifierISG::TransformMap > &)

Private Member Functions

void do2ndHalfKick ()
void PreForceThermostat ()
void PostForceThermostat ()
void PreForceBarostat ()
void PostForceBarostat ()
void PreForceChemostat ()
void PostForceChemostat ()
virtual STSIntegratordoMake (std::string &, const std::vector< Value > &values, ForceGroup *fg) const

Private Attributes

const unsigned int myNumComp
unsigned int myNumStages
const Real myTargetTemp
const Real myTargetPres
std::vector< RealmyTargetMu
const Real myTauT
const Real myTauV
const Real myTauP
const Real myTauD
const Real kbT
Real myLambda
unsigned int NumAtoms
unsigned int NumMols
unsigned int myNumFree
int T
int thisStage
unsigned int NumTransSteps
unsigned int OldType
unsigned int NewType
unsigned int FinalType
bool Transformed
Array< Real, 3 > myDeltaMuIG
std::vector< RealmyFugacityFrac
Real myTargetDeltaMu
Real mylnMassRatio
Real myDMuIG
Real myVolume
Real myEpsilonVel
Real Qo
Real Qv
Real W
Real Qd
Real myEta
Real myEtaV
Real myEtaVel
Real myEtaVolVel
Real myLambdaVel
std::vector< int > N
Real AveCQ
Real AveCQSq
Real AveDeltaMu

Friends

class ModifierISG
class ModifierPreForceThermostat
class ModifierPostForceThermostat
class ModifierPreForceBarostat
class ModifierPostForceBarostat
class iSGModifierPreForceChemostat
class iSGModifierPostForceChemostat

Constructor & Destructor Documentation

ProtoMol::iSGIntegrator::iSGIntegrator  ) 
 

ProtoMol::iSGIntegrator::iSGIntegrator Real  timestep,
unsigned int  numComp,
Real  temperature,
Real  pressure,
const std::vector< Real > &  fugacityFrac,
Real  tauT,
Real  tauV,
Real  tauP,
Real  tauD,
ForceGroup overloadedForces
 


Member Function Documentation

void ProtoMol::iSGIntegrator::addModifierAfterInitialize  )  [protected, virtual]
 

Add modifiers which should not modify during initialize.

Reimplemented from ProtoMol::STSIntegrator.

void ProtoMol::iSGIntegrator::addModifierBeforeInitialize  )  [protected, virtual]
 

Add modifiers which should modify during initialize.

Reimplemented from ProtoMol::Integrator.

void ProtoMol::iSGIntegrator::checkForTransformation const std::vector< iSGPAR::Bond > &  ,
const std::vector< iSGPAR::Angle > &  ,
const std::vector< iSGPAR::Dihedral > &  ,
const std::vector< iSGPAR::Improper > &  ,
const std::vector< iSGPAR::AtomType > &  ,
const std::vector< ModifierISG::TransformMap > & 
[protected]
 

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

Create a Rattle modifier.

Reimplemented from ProtoMol::Integrator.

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

Create a Shake modifier.

Reimplemented from ProtoMol::Integrator.

void ProtoMol::iSGIntegrator::do2ndHalfKick  )  [private]
 

void ProtoMol::iSGIntegrator::doDrift  )  [protected, virtual]
 

Reimplemented from ProtoMol::STSIntegrator.

void ProtoMol::iSGIntegrator::doHalfKick  )  [protected, virtual]
 

Reimplemented from ProtoMol::StandardIntegrator.

virtual STSIntegrator* ProtoMol::iSGIntegrator::doMake std::string &  ,
const std::vector< Value > &  values,
ForceGroup fg
const [private, virtual]
 

Implements ProtoMol::STSIntegrator.

Real ProtoMol::iSGIntegrator::getAveDeltaMu int  NumSteps  )  [inline]
 

Real ProtoMol::iSGIntegrator::getEpsilonVel  )  const [inline]
 

Real ProtoMol::iSGIntegrator::getEtaVel  )  const [inline]
 

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

Implements ProtoMol::Makeable.

Real ProtoMol::iSGIntegrator::getNumAtoms  )  const [inline]
 

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

retrieve all parameters

Reimplemented from ProtoMol::STSIntegrator.

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

number of parameters

Implements ProtoMol::Makeable.

XSC ProtoMol::iSGIntegrator::getXSC  )  const
 

void ProtoMol::iSGIntegrator::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::STSIntegrator.

void ProtoMol::iSGIntegrator::modifyForces const std::vector< iSGPAR::Bond > &  ,
const std::vector< iSGPAR::Angle > &  ,
const std::vector< iSGPAR::Dihedral > &  ,
const std::vector< iSGPAR::Improper > &  ,
const std::vector< iSGPAR::AtomType > &  ,
const std::vector< ModifierISG::TransformMap > & 
[protected]
 

void ProtoMol::iSGIntegrator::PostForceBarostat  )  [private]
 

void ProtoMol::iSGIntegrator::PostForceChemostat  )  [private]
 

void ProtoMol::iSGIntegrator::PostForceThermostat  )  [private]
 

void ProtoMol::iSGIntegrator::PreForceBarostat  )  [private]
 

void ProtoMol::iSGIntegrator::PreForceChemostat  )  [private]
 

void ProtoMol::iSGIntegrator::PreForceThermostat  )  [private]
 

void ProtoMol::iSGIntegrator::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::StandardIntegrator.


Friends And Related Function Documentation

friend class iSGModifierPostForceChemostat [friend]
 

friend class iSGModifierPreForceChemostat [friend]
 

friend class ModifierISG [friend]
 

friend class ModifierPostForceBarostat [friend]
 

friend class ModifierPostForceThermostat [friend]
 

friend class ModifierPreForceBarostat [friend]
 

friend class ModifierPreForceThermostat [friend]
 


Member Data Documentation

Real ProtoMol::iSGIntegrator::AveCQ [private]
 

Real ProtoMol::iSGIntegrator::AveCQSq [private]
 

Real ProtoMol::iSGIntegrator::AveDeltaMu [private]
 

unsigned int ProtoMol::iSGIntegrator::FinalType [private]
 

const Real ProtoMol::iSGIntegrator::kbT [private]
 

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

Array<Real,3> ProtoMol::iSGIntegrator::myDeltaMuIG [private]
 

Real ProtoMol::iSGIntegrator::myDMuIG [private]
 

Real ProtoMol::iSGIntegrator::myEpsilonVel [private]
 

Real ProtoMol::iSGIntegrator::myEta [private]
 

Real ProtoMol::iSGIntegrator::myEtaV [private]
 

Real ProtoMol::iSGIntegrator::myEtaVel [private]
 

Real ProtoMol::iSGIntegrator::myEtaVolVel [private]
 

std::vector<Real> ProtoMol::iSGIntegrator::myFugacityFrac [private]
 

Real ProtoMol::iSGIntegrator::myLambda [private]
 

Real ProtoMol::iSGIntegrator::myLambdaVel [private]
 

Real ProtoMol::iSGIntegrator::mylnMassRatio [private]
 

const unsigned int ProtoMol::iSGIntegrator::myNumComp [private]
 

unsigned int ProtoMol::iSGIntegrator::myNumFree [private]
 

unsigned int ProtoMol::iSGIntegrator::myNumStages [private]
 

Real ProtoMol::iSGIntegrator::myTargetDeltaMu [private]
 

std::vector<Real> ProtoMol::iSGIntegrator::myTargetMu [private]
 

const Real ProtoMol::iSGIntegrator::myTargetPres [private]
 

const Real ProtoMol::iSGIntegrator::myTargetTemp [private]
 

const Real ProtoMol::iSGIntegrator::myTauD [private]
 

const Real ProtoMol::iSGIntegrator::myTauP [private]
 

const Real ProtoMol::iSGIntegrator::myTauT [private]
 

const Real ProtoMol::iSGIntegrator::myTauV [private]
 

Real ProtoMol::iSGIntegrator::myVolume [private]
 

std::vector<int> ProtoMol::iSGIntegrator::N [private]
 

unsigned int ProtoMol::iSGIntegrator::NewType [private]
 

unsigned int ProtoMol::iSGIntegrator::NumAtoms [private]
 

unsigned int ProtoMol::iSGIntegrator::NumMols [private]
 

unsigned int ProtoMol::iSGIntegrator::NumTransSteps [private]
 

unsigned int ProtoMol::iSGIntegrator::OldType [private]
 

Real ProtoMol::iSGIntegrator::Qd [private]
 

Real ProtoMol::iSGIntegrator::Qo [private]
 

Real ProtoMol::iSGIntegrator::Qv [private]
 

int ProtoMol::iSGIntegrator::T [private]
 

int ProtoMol::iSGIntegrator::thisStage [private]
 

bool ProtoMol::iSGIntegrator::Transformed [private]
 

Real ProtoMol::iSGIntegrator::W [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.