| 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 | 
+ | 
} |