57 |
|
#include "brains/Exclude.hpp" |
58 |
|
#include "io/Globals.hpp" |
59 |
|
#include "math/Vector3.hpp" |
60 |
+ |
#include "math/SquareMatrix3.hpp" |
61 |
|
#include "types/MoleculeStamp.hpp" |
62 |
|
#include "UseTheForce/ForceField.hpp" |
63 |
|
#include "utils/PropertyMap.hpp" |
95 |
|
* @param simParams |
96 |
|
* @note |
97 |
|
*/ |
98 |
< |
SimInfo(MakeStamps* stamps, std::vector<std::pair<MoleculeStamp*, int> >& molStampPairs, ForceField* ff, Globals* simParams); |
98 |
> |
SimInfo(ForceField* ff, Globals* simParams); |
99 |
|
virtual ~SimInfo(); |
100 |
|
|
101 |
|
/** |
256 |
|
|
257 |
|
/** Returns the center of the mass of the whole system.*/ |
258 |
|
Vector3d getCom(); |
259 |
+ |
/** Returns the center of the mass and Center of Mass velocity of the whole system.*/ |
260 |
+ |
void getComAll(Vector3d& com,Vector3d& comVel); |
261 |
+ |
|
262 |
+ |
/** Returns intertia tensor for the entire system and system Angular Momentum.*/ |
263 |
+ |
void getInertiaTensor(Mat3x3d &intertiaTensor,Vector3d &angularMomentum); |
264 |
+ |
|
265 |
+ |
/** Returns system angular momentum */ |
266 |
+ |
Vector3d getAngularMomentum(); |
267 |
|
|
268 |
|
/** main driver function to interact with fortran during the initialization and molecule migration */ |
269 |
|
void update(); |
299 |
|
return i != molecules_.end() ? i->second : NULL; |
300 |
|
} |
301 |
|
|
293 |
– |
/** Calculate the maximum cutoff radius based on the atom types */ |
294 |
– |
double calcMaxCutoffRadius(); |
295 |
– |
|
302 |
|
double getRcut() { |
303 |
|
return rcut_; |
304 |
|
} |
305 |
|
|
306 |
|
double getRsw() { |
307 |
|
return rsw_; |
308 |
+ |
} |
309 |
+ |
|
310 |
+ |
double getList() { |
311 |
+ |
return rlist_; |
312 |
|
} |
313 |
|
|
314 |
|
std::string getFinalConfigFileName() { |
439 |
|
/** Figure out the radius of cutoff, radius of switching function and pass them to fortran */ |
440 |
|
void setupCutoff(); |
441 |
|
|
442 |
+ |
/** Figure out which coulombic correction method to use and pass to fortran */ |
443 |
+ |
void setupElectrostaticSummationMethod( int isError ); |
444 |
+ |
|
445 |
+ |
/** Figure out which polynomial type to use for the switching function */ |
446 |
+ |
void setupSwitchingFunction(); |
447 |
+ |
|
448 |
|
/** Calculates the number of degress of freedom in the whole system */ |
449 |
|
void calcNdf(); |
450 |
|
void calcNdfRaw(); |
451 |
|
void calcNdfTrans(); |
452 |
|
|
453 |
+ |
ForceField* forceField_; |
454 |
+ |
Globals* simParams_; |
455 |
+ |
|
456 |
+ |
std::map<int, Molecule*> molecules_; /**< Molecule array */ |
457 |
+ |
|
458 |
|
/** |
459 |
|
* Adds molecule stamp and the total number of the molecule with same molecule stamp in the whole |
460 |
|
* system. |
461 |
|
*/ |
462 |
|
void addMoleculeStamp(MoleculeStamp* molStamp, int nmol); |
442 |
– |
|
443 |
– |
MakeStamps* stamps_; |
444 |
– |
ForceField* forceField_; |
445 |
– |
Globals* simParams_; |
446 |
– |
|
447 |
– |
std::map<int, Molecule*> molecules_; /**< Molecule array */ |
463 |
|
|
464 |
|
//degress of freedom |
465 |
|
int ndf_; /**< number of degress of freedom (excludes constraints), ndf_ is local */ |
522 |
|
|
523 |
|
double rcut_; /**< cutoff radius*/ |
524 |
|
double rsw_; /**< radius of switching function*/ |
525 |
+ |
double rlist_; /**< neighbor list radius */ |
526 |
|
|
527 |
|
bool fortranInitialized_; /**< flag indicate whether fortran side is initialized */ |
528 |
|
|