/usr/include/BALL/MOLMEC/MDSIMULATION/microCanonicalMD.h is in libball1.4-dev 1.4.3~beta1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: microCanonicalMD.h,v 1.25 2005/12/23 17:01:53 amoll Exp $
//
#ifndef BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H
#define BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H
#ifndef BALL_MOLMEC_MDSIMULATION_MOLECULARDYNAMICS_H
# include <BALL/MOLMEC/MDSIMULATION/molecularDynamics.h>
#endif
namespace BALL
{
/** Microcanonical MD: A class for doing molecular dynamics simulations
according to the principle of a microcanonical ensemble (NVE), i.e.,
the total energy of the system is kept constant. Numerical
integration for new atom positions is done via the Velocity Verlet
method. \par
\ingroup MDSimulation
*/
class BALL_EXPORT MicroCanonicalMD : public MolecularDynamics
{
public:
/** A local auxiliary class.
*/
struct AuxFactors
{
double factor1,factor2;
};
/** @name Constructors and Destructors.
*/
//@{
BALL_CREATE(MicroCanonicalMD)
/** The default constructor with no arguments.
*/
MicroCanonicalMD();
/** This constructor expects a force field.
The force field's options are used and no snapshots are taken.
*/
MicroCanonicalMD(ForceField &myforcefield);
/** This constructor expects a force field and a snapshot-manager.
The force field's options are used.
*/
MicroCanonicalMD(ForceField &myforcefield, SnapShotManager *ssm);
/** This constructor wants a force field, a snapshot manager and new
options.
*/
MicroCanonicalMD(ForceField &myforcefield, SnapShotManager *ssm,
const Options &myoptions);
/// Copy constructor
MicroCanonicalMD(const MicroCanonicalMD& rhs);
/// The destructor
virtual ~MicroCanonicalMD();
//@}
/** @name Assignment
*/
//@{
/// Assignment operator
MicroCanonicalMD &operator=(const MicroCanonicalMD &rhs);
//@}
/** @name Setup methods.
*/
//@{
/** This method does general setup things.
*/
virtual bool setup(ForceField &myforcefield, SnapShotManager *ssm);
/** This method does general setup things.
*/
virtual bool setup(ForceField &myforcefield, SnapShotManager *ssm,
const Options &myoptions);
/** This method is meant for additional preparations apart from those
done in setup.
*/
virtual bool specificSetup();
//@}
/** @name Accessors
*/
//@{
/** Choose a new time step
*/
virtual void setTimeStep(double step);
/** This method does the actual simulation stuff.
It runs for the indicated number of iterations.
restart = true means that the counting of iterations is
continued from the previous run.
*/
virtual bool simulateIterations(Size number, bool restart = false);
//@}
protected:
/*_ @name Protected methods
*/
//_@{
/*_ A protected method for calculating some
factors that are needed all the time
*/
void calculateFactors();
//_@}
/*_ @name Protected Attributes
*/
//_@{
/*_ This vector contains special, precomputed factors
*/
vector<AuxFactors> mass_factor_;
//_@}
}; // end of class MicroCanonicalMD
} // end of namespace BALL
#endif // BALL_MOLMEC_MDSIMULATION_MICROCANONICALMD_H
|