| 2 |
|
|
| 3 |
|
#include "Atom.hpp" |
| 4 |
|
|
| 5 |
– |
double* Atom::pos; // the position array |
| 6 |
– |
double* Atom::vel; // the velocity array |
| 7 |
– |
double* Atom::frc; // the forc array |
| 8 |
– |
double* Atom::trq; // the torque vector ( space fixed ) |
| 9 |
– |
double* Atom::Amat; // the rotation matrix |
| 10 |
– |
double* Atom::mu; // the array of dipole moments |
| 11 |
– |
double* Atom::ul; // the lab frame unit directional vector |
| 5 |
|
|
| 6 |
+ |
|
| 7 |
|
void DirectionalAtom::setA( double the_A[3][3] ){ |
| 8 |
|
|
| 9 |
|
Amat[Axx] = the_A[0][0]; Amat[Axy] = the_A[0][1]; Amat[Axz] = the_A[0][2]; |
| 60 |
|
the_A[2][2] = Amat[Azz]; |
| 61 |
|
} |
| 62 |
|
|
| 63 |
+ |
void DirectionalAtom::printAmatIndex( void ){ |
| 64 |
|
|
| 65 |
+ |
std::cerr << "Atom[" << index << "] index =>\n" |
| 66 |
+ |
<< "[ " << Axx << ", " << Axy << ", " << Axz << " ]\n" |
| 67 |
+ |
<< "[ " << Ayx << ", " << Ayy << ", " << Ayz << " ]\n" |
| 68 |
+ |
<< "[ " << Azx << ", " << Azy << ", " << Azz << " ]\n"; |
| 69 |
+ |
} |
| 70 |
+ |
|
| 71 |
+ |
|
| 72 |
|
void DirectionalAtom::getU( double the_u[3] ){ |
| 73 |
|
|
| 74 |
|
the_u[0] = sux; |
| 177 |
|
ul[offsetZ] = (Amat[Axz] * sux) + (Amat[Ayz] * suy) + (Amat[Azz] * suz); |
| 178 |
|
} |
| 179 |
|
|
| 180 |
+ |
void DirectionalAtom::getJ( double theJ[3] ){ |
| 181 |
+ |
|
| 182 |
+ |
theJ[0] = jx; |
| 183 |
+ |
theJ[1] = jy; |
| 184 |
+ |
theJ[2] = jz; |
| 185 |
+ |
} |
| 186 |
+ |
|
| 187 |
+ |
void DirectionalAtom::setJ( double theJ[3] ){ |
| 188 |
+ |
|
| 189 |
+ |
jx = theJ[0]; |
| 190 |
+ |
jy = theJ[1]; |
| 191 |
+ |
jz = theJ[2]; |
| 192 |
+ |
} |
| 193 |
+ |
|
| 194 |
+ |
void DirectionalAtom::getTrq( double theT[3] ){ |
| 195 |
+ |
|
| 196 |
+ |
theT[0] = trq[offsetX]; |
| 197 |
+ |
theT[1] = trq[offsetY]; |
| 198 |
+ |
theT[2] = trq[offsetZ]; |
| 199 |
+ |
} |
| 200 |
+ |
|
| 201 |
+ |
void DirectionalAtom::addTrq( double theT[3] ){ |
| 202 |
+ |
|
| 203 |
+ |
trq[offsetX] += theT[0]; |
| 204 |
+ |
trq[offsetY] += theT[1]; |
| 205 |
+ |
trq[offsetZ] += theT[2]; |
| 206 |
+ |
} |
| 207 |
+ |
|
| 208 |
+ |
|
| 209 |
+ |
void DirectionalAtom::getI( double the_I[3][3] ){ |
| 210 |
+ |
|
| 211 |
+ |
the_I[0][0] = Ixx; |
| 212 |
+ |
the_I[0][1] = Ixy; |
| 213 |
+ |
the_I[0][2] = Ixz; |
| 214 |
+ |
|
| 215 |
+ |
the_I[1][0] = Iyx; |
| 216 |
+ |
the_I[1][1] = Iyy; |
| 217 |
+ |
the_I[1][2] = Iyz; |
| 218 |
+ |
|
| 219 |
+ |
the_I[2][0] = Izx; |
| 220 |
+ |
the_I[2][1] = Izy; |
| 221 |
+ |
the_I[2][2] = Izz; |
| 222 |
+ |
} |