| 549 | 
  | 
  simInit->setSimInfo( mainInfo ); | 
| 550 | 
  | 
  simInit->suspendInit(); | 
| 551 | 
  | 
  simInit->parseFile( inName ); | 
| 552 | 
< | 
   simInit->createSim(); | 
| 552 | 
> | 
  simInit->createSim(); | 
| 553 | 
  | 
 | 
| 554 | 
  | 
  delete simInit; | 
| 555 | 
  | 
 | 
| 581 | 
  | 
  double *posX, *posY, *posZ; | 
| 582 | 
  | 
  double pos[3], posA[3], posB[3]; | 
| 583 | 
  | 
 | 
| 584 | 
< | 
  const double waterFudge = 5.0; | 
| 584 | 
> | 
  const double waterFudge = 6.0; | 
| 585 | 
  | 
 | 
| 586 | 
  | 
  int i,j,k,l; | 
| 587 | 
  | 
  int nAtoms, atomIndex, molIndex, molID; | 
| 597 | 
  | 
  int targetWaters; | 
| 598 | 
  | 
   | 
| 599 | 
  | 
  Atom** atoms; | 
| 600 | 
– | 
  SimInfo* simnfo; | 
| 600 | 
  | 
  SimInfo* testInfo; | 
| 601 | 
  | 
  coord testSite; | 
| 602 | 
  | 
  SimState* theConfig; | 
| 616 | 
  | 
    | 
| 617 | 
  | 
  molStart = NULL; | 
| 618 | 
  | 
 | 
| 620 | 
– | 
  // create the simInfo objects | 
| 621 | 
– | 
 | 
| 622 | 
– | 
  simnfo = new SimInfo; | 
| 623 | 
– | 
 | 
| 619 | 
  | 
  // set the the lipidStamp | 
| 620 | 
  | 
 | 
| 621 | 
  | 
  foundLipid = 0; | 
| 689 | 
  | 
  } | 
| 690 | 
  | 
  zHeight = maxZ - minZ; | 
| 691 | 
  | 
     | 
| 692 | 
< | 
  nCells = (int) sqrt( (double)targetNlipids * bLat / (4.0 * aLat) ); | 
| 692 | 
> | 
  std::cerr << "aLat = " << aLat << "; bLat = " << bLat << "\n"; | 
| 693 | 
  | 
 | 
| 694 | 
+ | 
  nCells = (int)ceil( sqrt( (double)targetNlipids * bLat / (4.0 * aLat) )); | 
| 695 | 
+ | 
 | 
| 696 | 
  | 
  nx = nCells; | 
| 697 | 
  | 
  ny = (int) ((double)nCells  * aLat / bLat); | 
| 698 | 
  | 
 | 
| 699 | 
+ | 
  std::cerr << "nx = " << nx << "; ny = " << ny << "\n"; | 
| 700 | 
+ | 
 | 
| 701 | 
  | 
  boxX = nx * aLat; | 
| 702 | 
  | 
  boxY = ny * bLat;   | 
| 703 | 
  | 
 | 
| 903 | 
  | 
   | 
| 904 | 
  | 
  // create the real Atom arrays  | 
| 905 | 
  | 
 | 
| 906 | 
< | 
  theConfig = simnfo->getConfiguration(); | 
| 906 | 
> | 
  delete[] (mainInfo->atoms); | 
| 907 | 
> | 
  theConfig = mainInfo->getConfiguration(); | 
| 908 | 
  | 
  theConfig->createArrays( nAtoms ); | 
| 909 | 
< | 
  simnfo->atoms = new Atom*[nAtoms]; | 
| 910 | 
< | 
  simnfo->n_atoms = nAtoms; | 
| 911 | 
< | 
  atoms = simnfo->atoms; | 
| 909 | 
> | 
  mainInfo->atoms = new Atom*[nAtoms]; | 
| 910 | 
> | 
  mainInfo->n_atoms = nAtoms; | 
| 911 | 
> | 
  atoms = mainInfo->atoms; | 
| 912 | 
  | 
 | 
| 913 | 
  | 
  // wrap back to <0,0,0> as center | 
| 914 | 
  | 
 | 
| 927 | 
  | 
  Hmat[2][2] = boxZ; | 
| 928 | 
  | 
   | 
| 929 | 
  | 
  mainInfo->setBoxM( Hmat ); | 
| 930 | 
– | 
  simnfo->setBoxM( Hmat ); | 
| 930 | 
  | 
 | 
| 931 | 
  | 
  for(j=0;j<nLipids;j++){ | 
| 932 | 
  | 
 | 
| 934 | 
  | 
    lipidSites[j].pos[1] -= centerY; | 
| 935 | 
  | 
    lipidSites[j].pos[2] -= centerZ; | 
| 936 | 
  | 
 | 
| 937 | 
< | 
    simnfo->wrapVector( lipidSites[j].pos ); | 
| 937 | 
> | 
    mainInfo->wrapVector( lipidSites[j].pos ); | 
| 938 | 
  | 
  } | 
| 939 | 
  | 
 | 
| 940 | 
  | 
  for(j=0;j<nWaters;j++){ | 
| 943 | 
  | 
    waterSites[j].pos[1] -= centerY; | 
| 944 | 
  | 
    waterSites[j].pos[2] -= centerZ; | 
| 945 | 
  | 
 | 
| 946 | 
< | 
    simnfo->wrapVector( waterSites[j].pos ); | 
| 946 | 
> | 
    mainInfo->wrapVector( waterSites[j].pos ); | 
| 947 | 
  | 
  } | 
| 948 | 
  | 
 | 
| 949 | 
  | 
  // initialize lipid positions | 
| 965 | 
  | 
    molIndex++; | 
| 966 | 
  | 
  } | 
| 967 | 
  | 
 | 
| 969 | 
– | 
  strcpy( simnfo->sampleName, mainInfo->sampleName ); | 
| 970 | 
– | 
  strcpy( simnfo->finalName, mainInfo->finalName ); | 
| 971 | 
– | 
 | 
| 968 | 
  | 
  // set up the writer and write out | 
| 969 | 
  | 
   | 
| 970 | 
< | 
  writer = new DumpWriter( simnfo ); | 
| 970 | 
> | 
  writer = new DumpWriter( mainInfo ); | 
| 971 | 
  | 
  writer->writeFinal( 0.0 ); | 
| 972 | 
  | 
 | 
| 973 | 
  | 
  std::cout << "\n" |