--- trunk/OOPSE/libmdtools/SimInfo.hpp 2003/05/30 21:31:48 542 +++ trunk/OOPSE/libmdtools/SimInfo.hpp 2003/07/16 02:11:02 621 @@ -56,7 +56,21 @@ class SimInfo{ (public) double lrPot; // the potential energy from the long range calculations. - double box_x, box_y, box_z; // the periodic boundry conditions + double Hmat[3][3]; // 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 ] + // + double HmatInv[3][3]; + + double boxL[3]; // The Lengths of the 3 column vectors of Hmat + double boxVol; + int orthoRhombic; + + + double rList, rCut; // variables for the neighborlist int usePBC; // whether we use periodic boundry conditions. @@ -109,10 +123,25 @@ class SimInfo{ (public) int getNDFraw(); void setBox( double newBox[3] ); - void getBox( double theBox[3] ); + void setBoxM( double newBox[3][3] ); + void getBoxM( double theBox[3][3] ); + void scaleBox( double scale ); + void wrapVector( double thePos[3] ); + + void matMul3(double a[3][3], double b[3][3], double out[3][3]); + void matVecMul3(double m[3][3], double inVec[3], double outVec[3]); + void invertMat3(double in[3][3], double out[3][3]); + void transposeMat3(double in[3][3], double out[3][3]); + void printMat3(double A[3][3]); + void printMat9(double A[9]); + double matDet3(double m[3][3]); + private: + void calcHmatInv( void ); + void calcBoxL(); + // private function to initialize the fortran side of the simulation void (*setFsimulation) setFortranSimList;