Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

CanonicalMD Class Reference
[Molecular Dynamics Simulation]

A MD simulation in the canoncial ensemble. More...

#include <canonicalMD.h>

Inheritance diagram for CanonicalMD:

MolecularDynamics List of all members.

Public Member Functions

Constructors and Destructor
 CanonicalMD (ForceField &myforcefield) throw ()
 This constructor expects a force field .
 CanonicalMD (ForceField &force_field, SnapShotManager *ssm) throw ()
 This constructor expects a force field and a snapshot manager.
 CanonicalMD (ForceField &myforcefield, SnapShotManager *ssm, const Options &options) throw ()
 This constructor wants a force field, a snapshot manager and new options.
 CanonicalMD (const CanonicalMD &rhs) throw ()
 Copy constructor.
virtual ~CanonicalMD () throw ()
 Destructor.
Assignment
CanonicalMDoperator= (const CanonicalMD &rhs) throw ()
 Assignment operator.
Setup methods
virtual bool setup (ForceField &force_field, SnapShotManager *ssm=0) throw ()
 This method does general setup things.
virtual bool setup (ForceField &force_field, SnapShotManager *ssm, const Options &options) throw ()
 This method does general setup things.
virtual bool specificSetup () throw ()
 This method is meant for additional preparations apart from those done in setup.
Accessors
void setBathRelaxationTime (double time) throw ()
 This method sets a new relaxation time for the coupling to an external heat bath.
double getBathRelaxationTime () const throw ()
 This method gets the current value for heat bath coupling.
virtual void setTimeStep (double time) throw ()
 Set a new time step for the numerical integration.
virtual bool simulateIterations (Size number, bool restart=false) throw ()
 This method does the actual simulation stuff.

Protected Member Functions

Protected methods
void calculateFactors_ () throw ()
 A protected method for calculating some factors that are needed all the time.

Protected Attributes

Protected Attributes
double bath_relaxation_time_
 The coupling parameter to the heat bath.
std::vector< AuxFactorsmass_factor_
 This vector contains special precomputed factors.

Detailed Description

A MD simulation in the canoncial ensemble.

A class for doing molecular dynamics simulations according to the principle of a canonical ensemble (NVT), i.e., the temperature is kept constant. This is achieved via the velocity rescaling proposed by Berendsen et al., J. Chem. Physics, 81:3684, 1984. Note that this approach does not give all properties of a true canonical system. In particular, the heat capacity cannot be calculated!

The temperature is set through the method.


Constructor & Destructor Documentation

CanonicalMD::CanonicalMD ForceField myforcefield  )  throw ()
 

This constructor expects a force field .

The force field's options are used and no saving of snapshots is done.

Parameters:
myforcefield the forcefield we need for the simulation

CanonicalMD::CanonicalMD ForceField force_field,
SnapShotManager ssm
throw ()
 

This constructor expects a force field and a snapshot manager.

The force field's options are used.

Parameters:
myforcefield the forcefield to use in the simulation
ssm a pointer to the SnapShotManager which will be used to create trajectory files

CanonicalMD::CanonicalMD ForceField myforcefield,
SnapShotManager ssm,
const Options options
throw ()
 

This constructor wants a force field, a snapshot manager and new options.

Parameters:
myforcefield the forcefield which is to be used in the simulation
ssm a pointer to the SnapShotManager used for creating trajectory files
myoptions arbitrary options that are to be used by this instance instead of those defined therein


Member Function Documentation

double CanonicalMD::getBathRelaxationTime  )  const throw ()
 

This method gets the current value for heat bath coupling.

Returns:
the bath relaxation time in ps

void CanonicalMD::setBathRelaxationTime double  time  )  throw ()
 

This method sets a new relaxation time for the coupling to an external heat bath.

The readjustment to the external bath is not done after every step in order to save compute time. Instead, it is coupled periodically after the time specified here has elapsed.

Parameters:
time the time in ps

virtual bool CanonicalMD::setup ForceField force_field,
SnapShotManager ssm,
const Options options
throw () [virtual]
 

This method does general setup things.

This method also allows the assignment of options for the setup.

Reimplemented from MolecularDynamics.

virtual bool CanonicalMD::setup ForceField force_field,
SnapShotManager ssm = 0
throw () [virtual]
 

This method does general setup things.

Parameters:
ssm if no snapshots during the simulations are required, leave this at the default (NULL pointer)
force_field the forcefield, which has to be bound to a system

Reimplemented from MolecularDynamics.

virtual bool CanonicalMD::simulateIterations Size  number,
bool  restart = false
throw () [virtual]
 

This method does the actual simulation stuff.

It runs for the indicated number of iterations. If restart is true, the counting of iterations starts with the number of the last iteration in the previous run.

Parameters:
number the number of iterations that have to be simulated
restart flag for restarting the simulation

Reimplemented from MolecularDynamics.

virtual bool CanonicalMD::specificSetup  )  throw () [virtual]
 

This method is meant for additional preparations apart from those done in setup.

Returns:
bool, true if specificSetup() was successful

Reimplemented from MolecularDynamics.