| 1 |
< |
#include <cmath> |
| 1 |
> |
#include <math.h> |
| 2 |
|
#include <iostream> |
| 3 |
|
using namespace std; |
| 4 |
|
|
| 104 |
|
potential = potential_local; |
| 105 |
|
#endif // is_mpi |
| 106 |
|
|
| 107 |
– |
#ifdef IS_MPI |
| 108 |
– |
/* |
| 109 |
– |
std::cerr << "node " << worldRank << ": after pot = " << potential << "\n"; |
| 110 |
– |
*/ |
| 111 |
– |
#endif |
| 112 |
– |
|
| 107 |
|
return potential; |
| 108 |
|
} |
| 109 |
|
|
| 124 |
|
return temperature; |
| 125 |
|
} |
| 126 |
|
|
| 133 |
– |
double Thermo::getEnthalpy() { |
| 134 |
– |
|
| 135 |
– |
const double e_convert = 4.184E-4; // convert kcal/mol -> (amu A^2)/fs^2 |
| 136 |
– |
double u, p, v; |
| 137 |
– |
double press[3][3]; |
| 138 |
– |
|
| 139 |
– |
u = this->getTotalE(); |
| 140 |
– |
|
| 141 |
– |
this->getPressureTensor(press); |
| 142 |
– |
p = (press[0][0] + press[1][1] + press[2][2]) / 3.0; |
| 143 |
– |
|
| 144 |
– |
v = this->getVolume(); |
| 145 |
– |
|
| 146 |
– |
return (u + (p*v)/e_convert); |
| 147 |
– |
} |
| 148 |
– |
|
| 127 |
|
double Thermo::getVolume() { |
| 128 |
|
|
| 129 |
|
return info->boxVol; |
| 250 |
|
|
| 251 |
|
void Thermo::velocitize() { |
| 252 |
|
|
| 275 |
– |
double x,y; |
| 253 |
|
double aVel[3], aJ[3], I[3][3]; |
| 254 |
|
int i, j, vr, vd; // velocity randomizer loop counters |
| 255 |
|
double vdrift[3]; |
| 279 |
|
|
| 280 |
|
av2 = 2.0 * kebar / atoms[vr]->getMass(); |
| 281 |
|
vbar = sqrt( av2 ); |
| 282 |
< |
|
| 306 |
< |
// vbar = sqrt( 8.31451e-7 * temperature / atoms[vr]->getMass() ); |
| 307 |
< |
|
| 282 |
> |
|
| 283 |
|
// picks random velocities from a gaussian distribution |
| 284 |
|
// centered on vbar |
| 285 |
|
|