Loading...
Searching...
No Matches
BALL::CanonicalMD Class Reference
Molecular Modeling » Molecular Mechanics » Molecular Dynamics Simulation

`#include <BALL/MOLMEC/MDSIMULATION/canonicalMD.h>`

Inheritance diagram for BALL::CanonicalMD:

## Classes

struct | AuxFactors
| Helper class containing auxiliary factors. More...

## Public Member Functions

Constructors and Destructor
| CanonicalMD ()
| CanonicalMD (ForceField &myforcefield)
| CanonicalMD (ForceField &force_field, SnapShotManager *ssm)
| CanonicalMD (ForceField &myforcefield, SnapShotManager *ssm, const Options &options)
| CanonicalMD (const CanonicalMD &rhs)
| Copy constructor.
virtual | ~CanonicalMD ()
| Destructor.
Assignment
CanonicalMD & | operator= (const CanonicalMD &rhs)
| Assignment operator.
Setup methods
virtual bool | setup (ForceField &force_field, SnapShotManager *ssm=0)
virtual bool | setup (ForceField &force_field, SnapShotManager *ssm, const Options &options)
virtual bool | specificSetup ()
Accessors
void | setBathRelaxationTime (double time)
double | getBathRelaxationTime () const
virtual void | setTimeStep (double time)
virtual bool | simulateIterations (Size number, bool restart=false)
Public Member Functions inherited from BALL::MolecularDynamics
| MolecularDynamics ()
| MolecularDynamics (ForceField &force_field)
| MolecularDynamics (const MolecularDynamics &rhs)
virtual | ~MolecularDynamics ()
const MolecularDynamics & | operator= (const MolecularDynamics &rhs)
void | set (const MolecularDynamics &rhs)
bool | isValid () const
void | setNumberOfIteration (Size number)
void | setMaximalNumberOfIterations (Size number)
void | setMaximalSimulationTime (double time)
void | setReferenceTemperature (double temperature)
void | setCurrentTime (double time)
void | setEnergyOutputFrequency (Size number)
void | setSnapShotFrequency (Size number)
Size | getEnergyOutputFrequency () const
Size | getNumberOfIterations () const
Size | getMaximalNumberOfIterations () const
double | getMaximalSimulationTime () const
double | getTimeStep () const
Size | getSnapShotFrequency () const
double | getTemperature () const
double | getTime () const
double | getTotalEnergy () const
double | getPotentialEnergy () const
double | getKineticEnergy () const
ForceField * | getForceField () const
bool | simulate (bool restart=false)
bool | simulateTime (double simulation_time, bool restart=false)
void | enableEnergyAbortCondition (bool state)
bool | energyAbortConditionEnabled () const
| Query if the MDSimulation aborts if the Energy is greater than abort_energy_.
void | setEnergyToAbort (float value)
float | getEnergyToAbort () const

## Protected Member Functions

Protected methods
void | calculateFactors_ ()
void | updateInstantaneousTemperature ()

## Protected Attributes

Protected Attributes
double | bath_relaxation_time_
| The coupling parameter to the heat bath.
std::vector< AuxFactors > | mass_factor_
| This vector contains special precomputed factors.
bool | valid_
ForceField * | force_field_ptr_
System * | system_ptr_
AtomVector | atom_vector_
Size | number_of_iteration_
Size | maximal_number_of_iterations_
double | time_step_
double | reference_temperature_
double | current_temperature_
double | kinetic_energy_
double | total_energy_
double | current_time_
Size | energy_output_frequency_
Size | snapshot_frequency_
SnapShotManager * | snapshot_manager_ptr_
bool | abort_by_energy_enabled_
float | abort_energy_

## Additional Inherited Members

Options | options

## 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 MDSimulation::setReferenceTemperature method.

Definition at line 30 of file canonicalMD.h.

## Constructor & Destructor Documentation

## CanonicalMD() [1/5]

BALL::CanonicalMD::CanonicalMD | ( |  | ) |

## CanonicalMD() [2/5]

BALL::CanonicalMD::CanonicalMD | ( | ForceField & | myforcefield | ) |

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() [3/5]

BALL::CanonicalMD::CanonicalMD | ( | ForceField & | force_field,
|  | SnapShotManager * | ssm )

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() [4/5]

BALL::CanonicalMD::CanonicalMD | ( | ForceField & | myforcefield,
|  | SnapShotManager * | ssm,
|  | const Options & | options )

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

## CanonicalMD() [5/5]

BALL::CanonicalMD::CanonicalMD | ( | const CanonicalMD & | rhs | ) |

Copy constructor.

## ~CanonicalMD()

virtual BALL::CanonicalMD::~CanonicalMD | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## calculateFactors_()

void BALL::CanonicalMD::calculateFactors_ | ( |  | ) |

protected

A protected method for calculating some factors that are needed all the time.

## getBathRelaxationTime()

double BALL::CanonicalMD::getBathRelaxationTime | ( |  | ) | const

This method gets the current value for heat bath coupling.

Returns
  the bath relaxation time in ps

## operator=()

CanonicalMD & BALL::CanonicalMD::operator= | ( | const CanonicalMD & | rhs | ) |

Assignment operator.

## setBathRelaxationTime()

void BALL::CanonicalMD::setBathRelaxationTime | ( | double | time | ) |

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

## setTimeStep()

virtual void BALL::CanonicalMD::setTimeStep | ( | double | time | ) |

virtual

Set a new time step for the numerical integration.

Reimplemented from BALL::MolecularDynamics.

## setup() [1/2]

virtual bool BALL::CanonicalMD::setup | ( | ForceField & | force_field,
|  | SnapShotManager * | ssm,
|  | const Options & | options )

virtual

This method does general setup things. This method also allows the assignment of options for the setup.

Reimplemented from BALL::MolecularDynamics.

## setup() [2/2]

virtual bool BALL::CanonicalMD::setup | ( | ForceField & | force_field,
|  | SnapShotManager * | ssm = 0 )

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 BALL::MolecularDynamics.

## simulateIterations()

virtual bool BALL::CanonicalMD::simulateIterations | ( | Size | number,
|  | bool | restart = false )

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 BALL::MolecularDynamics.

## specificSetup()

virtual bool BALL::CanonicalMD::specificSetup | ( |  | ) |

virtual

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

Returns
  bool, true if specificSetup() was successful

Reimplemented from BALL::MolecularDynamics.

## Member Data Documentation

## bath_relaxation_time_

double BALL::CanonicalMD::bath_relaxation_time_

protected

The coupling parameter to the heat bath.

Definition at line 160 of file canonicalMD.h.

## mass_factor_

std::vector<AuxFactors> BALL::CanonicalMD::mass_factor_

protected

This vector contains special precomputed factors.

Definition at line 163 of file canonicalMD.h.