File MolecularDynamics.h

Copyright

This code is licensed under the 3-clause BSD license.

Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.

See LICENSE.txt for details.

namespace Scine

This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.

This header contains alias definitions defining which classes to use for the different degrees of derivatives.

namespace Utils
class MolecularDynamics

Public Functions

MolecularDynamics(Core::Calculator &calculator)

Constructor that takes in a reference to a calculator.

void performMDSimulation(const AtomCollection &structure)

Performs an MD simulation with the set calculator and the current settings.

Parameters
  • structure: The initial molecular structure.

Utils::MolecularTrajectory getMolecularTrajectory() const

Getter for the molecular trajectory.

The molecular trajectory holds the structures and energies along the MD simulation. The first element is always the initial structure with its energy.

std::vector<Utils::DisplacementCollection> getVelocities() const

Getter for the velocities corresponding to the structures in the molecular trajectory of the MD simulation.

void setInitialVelocities(const Utils::DisplacementCollection &velocities)

Sets initial velocities for the MD simulation.

Utils::Settings &settings()

Accessor for the settings.

Return

Utils::Settings& The settings.

const Utils::Settings &settings() const

Constant accessor for the settings.

Return

const Utils::Settings& The settings.

Private Functions

void applySettings()
std::unique_ptr<MDIntegrator> getIntegrator() const

Private Members

std::unique_ptr<Utils::Settings> settings_
Core::Calculator &calculator_
double timeStep_
std::string positionUpdaterAlgorithm_
Utils::DisplacementCollection initialVelocities_
bool temperatureBath_
double temperature_
double relaxationTimeFactor_
int numberOfSteps_
Utils::MolecularTrajectory structures_
bool saveVelocities_
std::vector<Utils::DisplacementCollection> velocities_
int recordFrequency_
int linearMomentumRemovalFrequency_
int angularMomentumRemovalFrequency_