7 |
|
|
8 |
|
#include "SimState.hpp" |
9 |
|
#include "StuntDouble.hpp" |
10 |
+ |
#include "BaseVisitor.hpp" |
11 |
|
|
12 |
|
class Atom : public StuntDouble { |
13 |
|
public: |
40 |
|
int getIdent( void ) { return ident; } |
41 |
|
void setIdent( int info ) { ident = info; } |
42 |
|
|
43 |
+ |
void getRc(double theRc[3]); |
44 |
+ |
void setRc(double theRc[3]); |
45 |
+ |
|
46 |
+ |
double getMassRatio() { return *massRatio;} |
47 |
+ |
void setMassRatio(double theMassRatio) { *massRatio = theMassRatio;} |
48 |
+ |
|
49 |
|
#ifdef IS_MPI |
50 |
|
int getGlobalIndex( void ) { return myGlobalIndex; } |
51 |
|
void setGlobalIndex( int info ) { myGlobalIndex = info; } |
54 |
|
void setHasDipole( int value ) { has_dipole = value; } |
55 |
|
int hasDipole( void ) { return has_dipole; } |
56 |
|
|
57 |
+ |
void setHasCharge(int value) {has_charge = value;} |
58 |
+ |
int hasCharge(void) {return has_charge;} |
59 |
+ |
|
60 |
+ |
|
61 |
+ |
virtual void accept(BaseVisitor* v) {v->visit(this);} |
62 |
+ |
|
63 |
|
protected: |
64 |
|
|
65 |
|
SimState* myConfig; |
71 |
|
double* Amat; // the rotation matrix |
72 |
|
double* mu; // the array of dipole moments |
73 |
|
double* ul; // the lab frame unit directional vector |
74 |
+ |
double* rc; //the center of mass of the molecule |
75 |
+ |
double* massRatio; //the ratio of this atom to the total mass of the molecule |
76 |
|
|
77 |
|
double c_mass; /* the mass of the atom in amu */ |
78 |
|
|
88 |
|
int ident; // it's unique numeric identity. |
89 |
|
|
90 |
|
int has_dipole; // dipole boolean |
91 |
+ |
int has_charge; // charge boolean |
92 |
|
|
93 |
|
bool hasCoords; |
94 |
|
|