231 {
232 auto gE = *std::min_element(eigVals.begin(), eigVals.end());
233 auto energyRange = *std::max_element(eigVals.begin(), eigVals.end()) - gE;
234
236 fs::create_directories(outFilePath.parent_path());
237 if(!fs::exists(outFilePath.parent_path())) {
238 std::cerr << "Error: Failed to create a directory " << outFilePath.parent_path()
239 << std::endl;
240 std::exit(EXIT_FAILURE);
241 }
242 std::ofstream resFile(outFilePath);
243 if(!resFile) {
244 std::cerr << "Error: Can't open a file (" << outFilePath << ")" << std::endl;
245 std::exit(EXIT_FAILURE);
246 }
247
248 std::stringstream headers("");
249 headers << std::setprecision(6) << std::scientific << std::showpos;
250 headers << "#energyRange = " << energyRange << "\n"
251 << "#gE = " << gE << "\n"
252 << "#maxDiff = " << maxDiff << "\n\n";
253 resFile << headers.str();
254 resFile << "# 1.(Normalized energy) 2.(dimShell) 3.4. ...(ETH measures)\n";
255
256 resFile << std::setprecision(6) << std::scientific << std::showpos;
257 for(size_t j = 0; j < eigVals.size(); ++j) {
258 resFile << (eigVals[j] - gE) / energyRange << " " << dimShell[j] << " ";
259 for(size_t m = 1; m <= sysSize; ++m) { resFile << ETHmeasure(j, m) << " "; }
260 resFile << "\n";
261 }
262 resFile.close();
263
264 return true;
265}
fs::path generate_filepath(size_t hRep, size_t sysSize)
Definition EigenExpValue.cpp:148