예제 #1
0
파일: GofXyz.cpp 프로젝트: hsidky/OpenMD
  void GofXyz::writeRdf() {
    std::ofstream rdfStream(outputFilename_.c_str(), std::ios::binary);
    if (rdfStream.is_open()) {
      //rdfStream << "#g(x, y, z)\n";
      //rdfStream << "#selection1: (" << selectionScript1_ << ")\t";
      //rdfStream << "selection2: (" << selectionScript2_ << ")\n";
      //rdfStream << "#nRBins = " << nBins_ << "\t maxLen = " 
      //          << len_ << "deltaR = " << deltaR_ <<"\n";
      for (unsigned int i = 0; i < histogram_.size(); ++i) { 
	for(unsigned int j = 0; j < histogram_[i].size(); ++j) { 
	  for(unsigned int k = 0;k < histogram_[i][j].size(); ++k) {
	    rdfStream.write(reinterpret_cast<char *>( &histogram_[i][j][k] ),
                            sizeof( histogram_[i][j][k] ));
	  }
	}
      }
        
    } else {

      sprintf(painCave.errMsg, "GofXyz: unable to open %s\n", 
	      outputFilename_.c_str());
      painCave.isFatal = 1;
      simError();  
    }

    rdfStream.close();
  }
예제 #2
0
파일: GofRZ.cpp 프로젝트: jmichalka/OpenMD
  void GofRZ::writeRdf() {
    std::ofstream rdfStream(outputFilename_.c_str());
    if (rdfStream.is_open()) {
      rdfStream << "#radial distribution function\n";
      rdfStream << "#selection1: (" << selectionScript1_ << ")\t";
      rdfStream << "selection2: (" << selectionScript2_ << ")\n";
      rdfStream << "#nRBins = " << nRBins_ << "\t maxLen = " << len_ << "deltaR = " << deltaR_ <<"\n";
      rdfStream << "#nZBins =" << nZBins_ << "\t deltaZ = " << deltaZ_ << "\n";
      for (unsigned int i = 0; i < avgGofr_.size(); ++i) {
        // RealType r = deltaR_ * (i + 0.5);

        for(unsigned int j = 0; j < avgGofr_[i].size(); ++j) {
          // RealType z = deltaZ_ * (j + 0.5);
          rdfStream << avgGofr_[i][j]/nProcessed_ << "\t";
        }

        rdfStream << "\n";
      }
        
    } else {
      sprintf(painCave.errMsg, "GofRZ: unable to open %s\n", outputFilename_.c_str());
      painCave.isFatal = 1;
      simError();  
    }

    rdfStream.close();
  }
예제 #3
0
파일: GofR.cpp 프로젝트: Patrick-Louden/2.2
  void GofR::writeRdf() {
    std::ofstream rdfStream(outputFilename_.c_str());
    if (rdfStream.is_open()) {
      rdfStream << "#radial distribution function\n";
      rdfStream << "#selection1: (" << selectionScript1_ << ")\t";
      rdfStream << "selection2: (" << selectionScript2_ << ")\n";
      rdfStream << "#r\tcorrValue\n";
      for (unsigned int i = 0; i < avgGofr_.size(); ++i) {
	RealType r = deltaR_ * (i + 0.5);
	rdfStream << r << "\t" << avgGofr_[i]/nProcessed_ << "\n";
      }
    } else {

      sprintf(painCave.errMsg, "GofR: unable to open %s\n", outputFilename_.c_str());
      painCave.isFatal = 1;
      simError();  
    }

    rdfStream.close();
  }