--- trunk/OOPSE/libmdtools/SimInfo.hpp 2003/03/21 17:42:12 378 +++ trunk/OOPSE/libmdtools/SimInfo.hpp 2003/07/01 21:33:45 569 @@ -30,30 +30,53 @@ class SimInfo{ (public) unsigned int n_bends; // number of bends unsigned int n_torsions; // number of torsions unsigned int n_oriented; // number of of atoms with orientation + unsigned int ndf; // number of actual degrees of freedom + unsigned int ndfRaw; // number of settable degrees of freedom unsigned int setTemp; // boolean to set the temperature at each sampleTime unsigned int n_dipoles; // number of dipoles - double rRF; // the reaction field cut off radius + double ecr; // the electrostatic cutoff radius + double est; // the electrostatic skin thickness double dielectric; // the dielectric of the medium for reaction field int n_exclude; // the # of pairs excluded from long range forces - int *excludes; // the pairs themselves + Exclude** excludes; // the pairs themselves int nGlobalExcludes; int* globalExcludes; // same as above, but these guys participate in // no long range forces. int* identArray; // array of unique identifiers for the atoms + int* molMembershipArray; // map of atom numbers onto molecule numbers int n_constraints; // the number of constraints on the system unsigned int n_SRI; // the number of short range interactions - SRI **sr_interactions;// the array of short range force objects double lrPot; // the potential energy from the long range calculations. - double box_x, box_y, box_z; // the periodic boundry conditions + double Hmat[9]; // the periodic boundry conditions. The Hmat is the + // column vectors of the x, y, and z box vectors. + // + // h1 h2 h3 + // [ Xx Yx Zx ] + // [ Xy Yy Zy ] + // [ Xz Yz Zz ] + // + // to preserve compatibility with Fortran the + // ordering in the array is as follows: + // + // [ 0 3 6 ] + // [ 1 4 7 ] + // [ 2 5 8 ] + + double HmatI[9]; // the inverted Hmat; + double boxLx, boxLy, boxLz; // the box Lengths + double boxVol, orthoRhombic; + + + double rList, rCut; // variables for the neighborlist int usePBC; // whether we use periodic boundry conditions. @@ -81,7 +104,7 @@ class SimInfo{ (public) char ensemble[100]; // the enesemble of the simulation (NVT, NVE, etc. ) char mixingRule[100]; // the mixing rules for Lennard jones/van der walls - Integrator *the_integrator; // the integrator of the simulation + BaseIntegrator *the_integrator; // the integrator of the simulation char finalName[300]; // the name of the eor file to be written char sampleName[300]; // the name of the dump file to be written @@ -102,8 +125,20 @@ class SimInfo{ (public) setFortranBoxSize = fBox; } + int getNDF(); + int getNDFraw(); + + void setBox( double newBox[3] ); + void setBoxM( double newBox[9] ); + void getBoxM( double theBox[9] ); + + void wrapVector( double thePos[3] ); + private: + void calcHmatI( void ); + void calcBoxL(); + // private function to initialize the fortran side of the simulation void (*setFsimulation) setFortranSimList;