| 29 | 
  | 
  string inputFileName; | 
| 30 | 
  | 
  string outPrefix; | 
| 31 | 
  | 
  string outMdFileName; | 
| 32 | 
+ | 
  string outInitFileName; | 
| 33 | 
  | 
  SimInfo* oldInfo; | 
| 34 | 
  | 
  SimSetup* oldSimSetup; | 
| 35 | 
  | 
  BaseLattice* simpleLat; | 
| 51 | 
  | 
  // parse command line arguments | 
| 52 | 
  | 
  if (cmdline_parser (argc, argv, &args_info) != 0) | 
| 53 | 
  | 
    exit(1) ; | 
| 54 | 
+ | 
   | 
| 55 | 
+ | 
  density = args_info.density_arg; | 
| 56 | 
  | 
 | 
| 54 | 
– | 
  //process density | 
| 55 | 
– | 
  if(!args_info.density_given && !args_info.ndensity_given){ | 
| 56 | 
– | 
    cerr << "SimpleBuilder Error: density or number density must be given" << endl; | 
| 57 | 
– | 
    cmdline_parser_print_help(); | 
| 58 | 
– | 
    exit(1); | 
| 59 | 
– | 
  } | 
| 60 | 
– | 
  else if(args_info.density_given){ | 
| 61 | 
– | 
    if( args_info.ndensity_given) | 
| 62 | 
– | 
      cerr << "SimpleBuilder Warning: both of density and number density are given, use density" << endl; | 
| 63 | 
– | 
     | 
| 64 | 
– | 
    density = args_info.density_arg; | 
| 65 | 
– | 
  } | 
| 66 | 
– | 
  else if(args_info.ndensity_given){ | 
| 67 | 
– | 
    //convert number density to density  | 
| 68 | 
– | 
  } | 
| 69 | 
– | 
 | 
| 70 | 
– | 
 | 
| 57 | 
  | 
  //get lattice type | 
| 58 | 
  | 
  latticeType = UpperCase(args_info.latticetype_arg); | 
| 59 | 
  | 
  if(!LatticeFactory::getInstance()->hasLatticeCreator(latticeType)){ | 
| 90 | 
  | 
    exit(1); | 
| 91 | 
  | 
  } | 
| 92 | 
  | 
 | 
| 107 | 
– | 
  //determine the output file names | 
| 93 | 
  | 
   | 
| 109 | 
– | 
  if (args_info.output_given){ | 
| 110 | 
– | 
    outPrefix = args_info.output_arg; | 
| 111 | 
– | 
  } | 
| 112 | 
– | 
  else | 
| 113 | 
– | 
    outPrefix = getPrefix(inputFileName.c_str()) + "_" + latticeType; | 
| 114 | 
– | 
   | 
| 115 | 
– | 
  outMdFileName = outPrefix + ".md"; | 
| 116 | 
– | 
 | 
| 94 | 
  | 
  //parse md file and set up the system | 
| 95 | 
  | 
  oldInfo = new SimInfo; | 
| 96 | 
  | 
  if(oldInfo == NULL){ | 
| 138 | 
  | 
  numMol = nx * ny * nz * numMolPerCell; | 
| 139 | 
  | 
 | 
| 140 | 
  | 
  if (oldInfo->n_mol != numMol){ | 
| 141 | 
< | 
    //creat new .md file on fly which corrects the number of molecule  | 
| 141 | 
> | 
 | 
| 142 | 
> | 
    outPrefix = getPrefix(inputFileName.c_str()) + "_" + latticeType; | 
| 143 | 
> | 
    outMdFileName = outPrefix + ".md"; | 
| 144 | 
> | 
 | 
| 145 | 
> | 
    //creat new .md file on fly which corrects the number of molecule      | 
| 146 | 
  | 
    createMdFile(inputFileName, outMdFileName, numMol); | 
| 147 | 
  | 
    cerr << "SimpleBuilder Error: the number of molecule and the density are not matched" <<endl; | 
| 148 | 
  | 
    cerr << "A new .md file: " << outMdFileName << " is generated, use it to rerun the simpleBuilder" << endl; | 
| 149 | 
  | 
    exit(1); | 
| 150 | 
  | 
  } | 
| 151 | 
< | 
 | 
| 151 | 
> | 
   | 
| 152 | 
> | 
  //determine the output file names   | 
| 153 | 
> | 
  if (args_info.output_given) | 
| 154 | 
> | 
    outInitFileName = args_info.output_arg; | 
| 155 | 
> | 
  else | 
| 156 | 
> | 
    outInitFileName = getPrefix(inputFileName.c_str())  + ".in"; | 
| 157 | 
> | 
   | 
| 158 | 
> | 
   | 
| 159 | 
  | 
  //allocat memory for storing pos, vel and etc | 
| 160 | 
  | 
  oldInfo->getConfiguration()->createArrays(oldInfo->n_atoms); | 
| 161 | 
  | 
  for (int i = 0; i < oldInfo->n_atoms; i++) | 
| 202 | 
  | 
  } | 
| 203 | 
  | 
 | 
| 204 | 
  | 
  //create dumpwriter and write out the coordinates | 
| 205 | 
+ | 
  oldInfo->finalName = outInitFileName; | 
| 206 | 
  | 
  writer = new DumpWriter( oldInfo ); | 
| 207 | 
  | 
  if(writer == NULL){ | 
| 208 | 
  | 
    cerr << "error in creating DumpWriter" << endl; | 
| 209 | 
  | 
    exit(1);     | 
| 210 | 
  | 
  } | 
| 211 | 
  | 
  writer->writeFinal(0); | 
| 212 | 
< | 
   | 
| 212 | 
> | 
  cout << "new initial configuration file: " << outInitFileName <<" is generated." << endl; | 
| 213 | 
  | 
  //delete objects | 
| 214 | 
  | 
 | 
| 215 | 
  | 
  //delete oldInfo and oldSimSetup |