-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrens.h
56 lines (39 loc) · 1.33 KB
/
rens.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
#ifndef RENS_INTEGRATOR_H
#define RENS_INTEGRATOR_H
#include "remd.h"
#include "config.h"
#include "mpi.h"
#include "math.h"
#include "utilities.h"
#define TEMP_TAG 64
#define WORK_TAG 65
#define DATA_VALUES_TAG 66
#define ATTEMPT_TAG 67
class RENSIntegrator : public REMDIntegrator {
public:
float tau;
float attemptRate;
int andersenUpdateFrequency;
float numWorkSimulationSteps;
bool mode;
float T_A;
float T_B;
float w;
float heat;
int currentStep;
float peerReplicaNo;
int noOfReplicas;
std::vector<std::vector<float>> initialPositions;
std::vector<std::vector<float>> initialVelocities;
RENSIntegrator();
/* RENS FUNCTIONS */
virtual void setupRENS(System* sys);
virtual void performWorkSimulation(System* sys, FileOperations* fileOpObject, float timeStep);
bool determineExchange(System* sys, FileOperations* fileOpObject, float timeStep);
void writeExchanges( std::vector<float> dataValues, FileOperations* fileOpObject, float timeStep );
void andersenUpdate(System* sys, float T_lambda);
void attemptSwitching(System* sys);
/* END RENS FUNCTIONS */
void step(System* sys, FileOperations* fileOpObject, int numSteps = 1);
};
#endif