--- trunk/OOPSE/libmdtools/SimInfo.cpp 2003/07/10 22:15:53 590 +++ trunk/OOPSE/libmdtools/SimInfo.cpp 2003/07/15 21:34:56 618 @@ -34,6 +34,7 @@ SimInfo::SimInfo(){ setTemp = 0; thermalTime = 0.0; rCut = 0.0; + ecr = 0.0; usePBC = 0; useLJ = 0; @@ -77,11 +78,11 @@ void SimInfo::setBoxM( double theBox[3][3] ){ for(i=0; i < 3; i++) for (j=0; j < 3; j++) Hmat[i][j] = theBox[i][j]; - cerr - << "setting Hmat ->\n" - << "[ " << Hmat[0][0] << ", " << Hmat[0][1] << ", " << Hmat[0][2] << " ]\n" - << "[ " << Hmat[1][0] << ", " << Hmat[1][1] << ", " << Hmat[1][2] << " ]\n" - << "[ " << Hmat[2][0] << ", " << Hmat[2][1] << ", " << Hmat[2][2] << " ]\n"; + // cerr + // << "setting Hmat ->\n" + // << "[ " << Hmat[0][0] << ", " << Hmat[0][1] << ", " << Hmat[0][2] << " ]\n" + // << "[ " << Hmat[1][0] << ", " << Hmat[1][1] << ", " << Hmat[1][2] << " ]\n" + // << "[ " << Hmat[2][0] << ", " << Hmat[2][1] << ", " << Hmat[2][2] << " ]\n"; calcBoxL(); calcHmatInv(); @@ -122,22 +123,21 @@ void SimInfo::setBoxM( double theBox[3][3] ){ refreshSim(); } - if (rCut > maxCutoff) { + if( ecr > maxCutoff ){ + sprintf( painCave.errMsg, - "New Box size is forcing cutoff radius down to %lf\n", + "New Box size is forcing electrostatic cutoff radius " + "down to %lf\n", maxCutoff ); painCave.isFatal = 0; simError(); - status = 0; - LJ_new_rcut(&rCut, &status); - if (status != 0) { - sprintf( painCave.errMsg, - "Error in recomputing LJ shifts based on new rcut\n"); - painCave.isFatal = 1; - simError(); - } + ecr = maxCutoff; + est = 0.05 * ecr; + + refreshSim(); } + } @@ -153,7 +153,7 @@ void SimInfo::scaleBox(double scale) { double theBox[3][3]; int i, j; - cerr << "Scaling box by " << scale << "\n"; + // cerr << "Scaling box by " << scale << "\n"; for(i=0; i<3; i++) for (j=0; j<3; j++) theBox[i][j] = Hmat[i][j]*scale; @@ -266,7 +266,39 @@ void SimInfo::matVecMul3(double m[3][3], double inVec[ outVec[1] = m[1][0]*a0 + m[1][1]*a1 + m[1][2]*a2; outVec[2] = m[2][0]*a0 + m[2][1]*a1 + m[2][2]*a2; } + +void SimInfo::transposeMat3(double in[3][3], double out[3][3]) { + double temp[3][3]; + int i, j; + + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + temp[j][i] = in[i][j]; + } + } + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + out[i][j] = temp[i][j]; + } + } +} +void SimInfo::printMat3(double A[3][3] ){ + + std::cerr + << "[ " << A[0][0] << ", " << A[0][1] << ", " << A[0][2] << " ]\n" + << "[ " << A[1][0] << ", " << A[1][1] << ", " << A[1][2] << " ]\n" + << "[ " << A[2][0] << ", " << A[2][1] << ", " << A[2][2] << " ]\n"; +} + +void SimInfo::printMat9(double A[9] ){ + + std::cerr + << "[ " << A[0] << ", " << A[1] << ", " << A[2] << " ]\n" + << "[ " << A[3] << ", " << A[4] << ", " << A[5] << " ]\n" + << "[ " << A[6] << ", " << A[7] << ", " << A[8] << " ]\n"; +} + void SimInfo::calcBoxL( void ){ double dx, dy, dz, dsq;