-
Notifications
You must be signed in to change notification settings - Fork 0
/
TestSystem.h
99 lines (93 loc) · 2.39 KB
/
TestSystem.h
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
/*
* ClassicalSys.h
*
* Created on: May 7, 2012
* Author: dstuck
*/
#ifndef CLASSICALSYS_H_
#define CLASSICALSYS_H_
#include "debug.h"
#include "System.h"
#include "Potential.h"
#include "V_UCHO.h"
#include "V_AQO.h"
#include "V_Morse.h"
#include "V_TinkerExecutable.h"
#include "V_Tinker.h"
#include "V_Potlib.h"
#include "V_QChem.h"
#include "Propagator.h"
#include "Rho_Free.h"
#include "Rho_HO.h"
#include "Rho_Mixed.h"
#include "Rho_TruncHO.h"
#include "Random.h"
#include "CoordUtil.h"
#include "PhysicsUtil.h"
#include <math.h>
#include <iostream>
#include <cstdio>
#include <vector>
#include <sstream>
#include <fstream>
using namespace std;
class TestSystem: public System {
public:
TestSystem(int, double, CoordUtil*, PhysicsUtil *);
virtual ~TestSystem();
void CalcEnergy();
void CalcPotential();
void Move(vector<double> prob, double epsMove, int levyNum, int levyPart = 1);
void Forget();
void Undo();
void Reset();
double EstimatorAnharmonicV();
double EstimatorE();
double GetWeight();
double GetOldWeight();
double GetHarmonicE();
//void WritePathToFile(vector< vector<Particle> >, string);
void WritePartToFile(string);
vector< vector<Particle> > GetParticle();
string GetVType();
string GetRhoType();
PhysicsUtil* GetPhysics();
double Debug();
string toString(int);
bool ECheckFlag;
int P;
int N;
int coorDim;
int levyLength;
double eps;
double weight;
double oldWeight;
double energy; //TODO: Phase out?
double oldEnergy; //TODO: Phase out?
//double potE; //Warning: this is the sum of V over all the beads (needs to be divided by P to calc avg)
double checkVal; //Warning: this is the sum of V over all the beads (needs to be divided by P to calc avg)
double oldCheckVal;
double anharmonicV;
//double oldPotE;
double avgV;
double harmonicE;
int numSteps;
Potential * V;
Potential * V2;
Propagator * rho;
PhysicsUtil * physics;
vector<bool> upToDate;
vector<double> sliceCheck;
vector<double> oldSliceCheck;
vector<double> sliceAnharmonicV;
vector<double> oldSliceAnharmonicV;
vector< vector<Particle> > part;
vector< vector<Particle> > oldPart;
vector< vector< vector<double> > > oldCarts;
vector< vector< vector<double> > > newCarts;
//DES Temp
ofstream vFile; //TODO: Remove
int tempNum; //TODO: Remove
// ofstream qchemFile; //TODO: Delete this
};
#endif /* CLASSICALSYS_H_ */