source: molecuilder/src/atom_trajectoryparticle.hpp@ 2e6aa1

Last change on this file since 2e6aa1 was 2e2a70, checked in by Frederik Heber <heber@…>, 16 years ago

Refactored atom.cpp into multiple files.

After the class atom was refactored into multiple base classes that are inherited, these base classes are also all put into separate files. This is basically a preparatory step for the like-wise refactoring of class molecule into inherited base classes and splitting up (that is there done already). Finally, we will also separate the relations, i.e. not have "atom.hpp" included everywhere and use class atom, but rather the subclasses such as TrajectoryParticle and its header files only.
Signed-off-by: Frederik Heber <heber@…>

  • Property mode set to 100644
File size: 2.1 KB
RevLine 
[2e2a70]1/*
2 * atom_trajectoryparticle.hpp
3 *
4 * Created on: Oct 19, 2009
5 * Author: heber
6 */
7
8#ifndef ATOM_TRAJECTORYPARTICLE_HPP_
9#define ATOM_TRAJECTORYPARTICLE_HPP_
10
11using namespace std;
12
13/*********************************************** includes ***********************************/
14
15// include config.h
16#ifdef HAVE_CONFIG_H
17#include <config.h>
18#endif
19
20#include <fstream>
21
22#include <gsl/gsl_randist.h>
23
24#include "atom_atominfo.hpp"
25#include "atom_particleinfo.hpp"
26#include "atom_trajectoryparticleinfo.hpp"
27
28/****************************************** forward declarations *****************************/
29
30class atom;
31class config;
32class ForceMatrix;
33class Vector;
34
35/********************************************** declarations *******************************/
36
37
38class TrajectoryParticle : public TrajectoryParticleInfo, public virtual AtomInfo, public virtual ParticleInfo {
39public:
40
41 TrajectoryParticle();
42 virtual ~TrajectoryParticle();
43
44 // constraint potential and dynamics stuff
45 void AddKineticToTemperature(double *temperature, int step) const;
46 void EvaluateConstrainedForce(int startstep, int endstep, atom **PermutationMap, ForceMatrix *Force);
47 void CorrectVelocity(double *ActualTemp, int Step, Vector *CoGVelocity);
48
49 // trajectory stuff
50 void ResizeTrajectory(int MaxSteps);
51 void CopyStepOnStep(int dest, int src);
52 void VelocityVerletUpdate(int MDSteps, config *configuration, ForceMatrix *Force);
53 void SumUpKineticEnergy( int Step, double *TotalMass, Vector *TotalVelocity );
54
55 // thermostats
56 void Thermostat_Woodcock(double ScaleTempFactor, int Step, double *ekin);
57 void Thermostat_Gaussian_init(int Step, double *G, double *E);
58 void Thermostat_Gaussian_least_constraint(int Step, double G_over_E, double *ekin, config *configuration);
59 void Thermostat_Langevin(int Step, gsl_rng * r, double *ekin, config *configuration);
60 void Thermostat_Berendsen(int Step, double ScaleTempFactor, double *ekin, config *configuration);
61 void Thermostat_NoseHoover_init(int Step, double *delta_alpha);
62 void Thermostat_NoseHoover_scale(int Step, double *ekin, config *configuration);
63
64private:
65
66};
67
68
69#endif /* ATOM_TRAJECTORYPARTICLE_HPP_ */
Note: See TracBrowser for help on using the repository browser.