void PammObject::setup( const std::string& filename, const double& reg, const std::vector<std::string>& valnames, const std::vector<bool>& pbcin, const std::vector<std::string>& imin, const std::vector<std::string>& imax, std::string& errorstr ) { IFile ifile; regulariser=reg; if( !ifile.FileExist(filename) ) { errorstr = "could not find file named " + filename; return; } std::vector<std::unique_ptr<Value>> pos; pbc.resize( valnames.size() ); min.resize( valnames.size() ); max.resize( valnames.size() ); for(unsigned i=0; i<valnames.size(); ++i) { pbc[i]=pbcin[i]; min[i]=imin[i]; max[i]=imax[i]; pos.emplace_back( new Value() ); if( !pbc[i] ) pos[i]->setNotPeriodic(); else pos[i]->setDomain( min[i], max[i] ); } ifile.open(filename); ifile.allowIgnoredFields(); kernels.resize(0); for(unsigned k=0;; ++k) { std::unique_ptr<KernelFunctions> kk = KernelFunctions::read( &ifile, false, valnames ); if( !kk ) break ; kk->normalize( Tools::unique2raw( pos ) ); kernels.emplace_back( std::move(kk) ); ifile.scanField(); } ifile.close(); }
void PlumedMain::readInputFile(std::string str) { plumed_assert(initialized); log.printf("FILE: %s\n",str.c_str()); IFile ifile; ifile.link(*this); ifile.open(str); ifile.allowNoEOL(); std::vector<std::string> words; while(Tools::getParsedLine(ifile,words) && words[0]!="ENDPLUMED") readInputWords(words); log.printf("END FILE: %s\n",str.c_str()); log.flush(); pilots=actionSet.select<ActionPilot*>(); }
IFile* open(const DeviceList& device_list, const Path& file, Mode mode) override { IFile* prev = createFile(device_list); if (prev) { if (prev->open(file, mode)) { return prev; } else { prev->release(); return nullptr; } } return nullptr; }
void testIO(unsigned nr, SocketEndpoint *ep) { IFile *ifile; IFileIO *ifileio; unsigned fsize = (unsigned)(((double)nr * (double)rs) / (1024.0 * 1024.0)); fflush(NULL); fprintf(stdout,"\n"); fflush(NULL); for(int j=0; j<2; j++) { if (j==0) fprintf(stdout, "File size: %d (MB) Cache, ", fsize); else fprintf(stdout, "\nFile size: %d (MB) Nocache, ", fsize); if (ep != NULL) { ifile = createRemoteFile(*ep, tmpfile); fprintf(stdout, "Remote: (%s)\n", server.toCharArray()); } else { ifile = createIFile(tmpfile); fprintf(stdout, "Local:\n"); } ifile->remove(); unsigned st = msTick(); IFEflags extraFlags = IFEcache; if (j==1) extraFlags = IFEnocache; ifileio = ifile->open(IFOcreate, extraFlags); unsigned iter = nr / 40; __int64 pos = 0; for (int i=0;i<nr;i++) { ifileio->write(pos, rs, record); pos += rs; if ((i % iter) == 0) { fprintf(stdout,"."); fflush(NULL); } } ifileio->close(); double rsec = (double)(msTick() - st)/1000.0; unsigned iorate = (unsigned)((double)fsize / rsec); fprintf(stdout, "\nwrite - elapsed time = %6.2f (s) iorate = %4d (MB/s)\n", rsec, iorate); st = msTick(); extraFlags = IFEcache; if (j==1) extraFlags = IFEnocache; ifileio = ifile->open(IFOread, extraFlags); pos = 0; for (int i=0;i<nr;i++) { ifileio->read(pos, rs, record); pos += rs; if ((i % iter) == 0) { fprintf(stdout,"."); fflush(NULL); } } ifileio->close(); rsec = (double)(msTick() - st)/1000.0; iorate = (unsigned)((double)fsize / rsec); fprintf(stdout, "\nread -- elapsed time = %6.2f (s) iorate = %4d (MB/s)\n", rsec, iorate); ifileio->Release(); ifile->remove(); ifile->Release(); } }