| 26 | 
  | 
SimInfo::SimInfo(){ | 
| 27 | 
  | 
  excludes = NULL; | 
| 28 | 
  | 
  n_constraints = 0; | 
| 29 | 
+ | 
  nZconstraints = 0; | 
| 30 | 
  | 
  n_oriented = 0; | 
| 31 | 
  | 
  n_dipoles = 0; | 
| 32 | 
  | 
  ndf = 0; | 
| 33 | 
  | 
  ndfRaw = 0; | 
| 34 | 
+ | 
  nZconstraints = 0; | 
| 35 | 
  | 
  the_integrator = NULL; | 
| 36 | 
  | 
  setTemp = 0; | 
| 37 | 
  | 
  thermalTime = 0.0; | 
| 38 | 
  | 
  currentTime = 0.0; | 
| 39 | 
  | 
  rCut = 0.0; | 
| 40 | 
+ | 
  origRcut = -1.0; | 
| 41 | 
  | 
  ecr = 0.0; | 
| 42 | 
+ | 
  origEcr = -1.0; | 
| 43 | 
  | 
  est = 0.0; | 
| 44 | 
  | 
  oldEcr = 0.0; | 
| 45 | 
  | 
  oldRcut = 0.0; | 
| 366 | 
  | 
  ndf = ndf_local; | 
| 367 | 
  | 
#endif | 
| 368 | 
  | 
 | 
| 369 | 
< | 
  ndf = ndf - 3; | 
| 369 | 
> | 
  ndf = ndf - 3 - nZconstraints; | 
| 370 | 
  | 
 | 
| 371 | 
  | 
  return ndf; | 
| 372 | 
  | 
} | 
| 385 | 
  | 
 | 
| 386 | 
  | 
  return ndfRaw; | 
| 387 | 
  | 
} | 
| 388 | 
< | 
  | 
| 388 | 
> | 
 | 
| 389 | 
> | 
int SimInfo::getNDFtranslational() { | 
| 390 | 
> | 
  int ndfTrans_local, ndfTrans; | 
| 391 | 
> | 
 | 
| 392 | 
> | 
  ndfTrans_local = 3 * n_atoms - n_constraints; | 
| 393 | 
> | 
 | 
| 394 | 
> | 
#ifdef IS_MPI | 
| 395 | 
> | 
  MPI_Allreduce(&ndfTrans_local,&ndfTrans,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); | 
| 396 | 
> | 
#else | 
| 397 | 
> | 
  ndfTrans = ndfTrans_local; | 
| 398 | 
> | 
#endif | 
| 399 | 
> | 
 | 
| 400 | 
> | 
  ndfTrans = ndfTrans - 3 - nZconstraints; | 
| 401 | 
> | 
 | 
| 402 | 
> | 
  return ndfTrans; | 
| 403 | 
> | 
} | 
| 404 | 
> | 
 | 
| 405 | 
  | 
void SimInfo::refreshSim(){ | 
| 406 | 
  | 
 | 
| 407 | 
  | 
  simtype fInfo; | 
| 457 | 
  | 
 | 
| 458 | 
  | 
  this->ndf = this->getNDF(); | 
| 459 | 
  | 
  this->ndfRaw = this->getNDFraw(); | 
| 460 | 
< | 
 | 
| 460 | 
> | 
  this->ndfTrans = this->getNDFtranslational(); | 
| 461 | 
  | 
} | 
| 462 | 
  | 
 | 
| 463 | 
  | 
 | 
| 516 | 
  | 
 | 
| 517 | 
  | 
    if( maxCutoff > ecr ){ | 
| 518 | 
  | 
      if( ecr < origEcr ){ | 
| 519 | 
< | 
        rCut = origEcr; | 
| 519 | 
> | 
        ecr = origEcr; | 
| 520 | 
  | 
        if (ecr > maxCutoff) ecr = maxCutoff; | 
| 521 | 
  | 
         | 
| 522 | 
  | 
        sprintf( painCave.errMsg, | 
| 549 | 
  | 
      ecr = maxCutoff; | 
| 550 | 
  | 
    } | 
| 551 | 
  | 
 | 
| 552 | 
< | 
     | 
| 553 | 
< | 
  } | 
| 534 | 
< | 
    | 
| 535 | 
< | 
 | 
| 536 | 
< | 
  if( (oldEcr != ecr) || ( oldRcut != rCut ) ) cutChanged = 1; | 
| 552 | 
> | 
  | 
| 553 | 
> | 
    if( (oldEcr != ecr) || ( oldRcut != rCut ) ) cutChanged = 1; | 
| 554 | 
  | 
 | 
| 555 | 
< | 
  // rlist is the 1.0 plus max( rcut, ecr ) | 
| 539 | 
< | 
   | 
| 540 | 
< | 
  ( rCut > ecr )? rList = rCut + 1.0: rList = ecr + 1.0; | 
| 541 | 
< | 
 | 
| 542 | 
< | 
  if( cutChanged ){ | 
| 555 | 
> | 
    // rlist is the 1.0 plus max( rcut, ecr ) | 
| 556 | 
  | 
     | 
| 557 | 
< | 
    notifyFortranCutOffs( &rCut, &rList, &ecr, &est ); | 
| 557 | 
> | 
    ( rCut > ecr )? rList = rCut + 1.0: rList = ecr + 1.0; | 
| 558 | 
> | 
     | 
| 559 | 
> | 
    if( cutChanged ){ | 
| 560 | 
> | 
       | 
| 561 | 
> | 
      notifyFortranCutOffs( &rCut, &rList, &ecr, &est ); | 
| 562 | 
> | 
    } | 
| 563 | 
> | 
     | 
| 564 | 
> | 
    oldEcr = ecr; | 
| 565 | 
> | 
    oldRcut = rCut; | 
| 566 | 
> | 
 | 
| 567 | 
> | 
  } else { | 
| 568 | 
> | 
    // initialize this stuff before using it, OK? | 
| 569 | 
> | 
      sprintf( painCave.errMsg, | 
| 570 | 
> | 
               "Trying to check cutoffs without a box. Be smarter.\n" ); | 
| 571 | 
> | 
      painCave.isFatal = 1; | 
| 572 | 
> | 
      simError();       | 
| 573 | 
  | 
  } | 
| 574 | 
  | 
 | 
| 547 | 
– | 
  oldEcr = ecr; | 
| 548 | 
– | 
  oldRcut = rCut; | 
| 575 | 
  | 
} | 
| 576 | 
  | 
 | 
| 577 | 
  | 
void SimInfo::addProperty(GenericData* prop){ | 
| 621 | 
  | 
  return result; | 
| 622 | 
  | 
} | 
| 623 | 
  | 
 | 
| 624 | 
+ | 
double SimInfo::matTrace3(double m[3][3]){ | 
| 625 | 
+ | 
  double trace; | 
| 626 | 
+ | 
  trace = m[0][0] + m[1][1] + m[2][2]; | 
| 627 | 
  | 
 | 
| 628 | 
+ | 
  return trace; | 
| 629 | 
+ | 
} |