From c246b6902f8b13fb1fac64624b8e16f92bb39732 Mon Sep 17 00:00:00 2001 From: Anatoly Titov Date: Thu, 22 Dec 2016 14:38:52 +0300 Subject: [PATCH] remade writing output file function --- src/domains.cpp | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/domains.cpp b/src/domains.cpp index 47ea5bd..80b32aa 100644 --- a/src/domains.cpp +++ b/src/domains.cpp @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -177,16 +178,23 @@ bool check_domsizes(std::vector< std::vector< int > > cd_domsizes, int cd_domain return false; } -void print_domains(std::vector< std::vector< int > > pd_domains) { - int pd_for1 = pd_domains.size(), pd_for2; - for (int i = 0; i < pd_for1; i++) { - std::cout << "domain " << i + 1 << "\n"; - pd_for2 = pd_domains[i].size(); - for (int j = 0; j < pd_for2; j++) { +void print_domains(std::vector< std::vector< int > > pd_domains, std::string fnNdx_) { + std::freopen(fnNdx_.c_str(), "w+", stdout); + int write_count; + for (int i = 0; i < pd_domains.size(); i++) { + std::cout << "[domain_" << i + 1 << "]\n"; + write_count = 0; + for (int j = 0; j < pd_domains[i].size(); j++) { + write_count++; + if (write_count > 20) { + write_count -= 20; + std::cout << "\n"; + } std::cout << pd_domains[i][j] << " "; } - std::cout << "\n"; + std::cout << "\n\n"; } + std::fclose(stdout); } /*! \brief @@ -230,6 +238,7 @@ class Domains : public TrajectoryAnalysisModule private: + std::string fnNdx_; std::vector< std::vector< std::vector< node > > > graph; std::vector< std::vector< int > > domains; std::vector< std::vector< int > > domsizes; @@ -267,6 +276,10 @@ Domains::initOptions(IOptionsContainer *options, options->addOption(SelectionOption("select") .store(&selec).required() .description("Atoms that are considered as part of the excluded volume")); + // Add option for output file name + options->addOption(FileNameOption("on").filetype(eftIndex).outputFile() + .store(&fnNdx_).defaultBasename("rcore") + .description("Index file from the rcore")); // Control input settings settings->setFlags(TrajectoryAnalysisSettings::efNoUserPBC); settings->setPBC(true); @@ -416,7 +429,7 @@ Domains::finishAnalysis(int nframes) void Domains::writeOutput() { - print_domains(domains); // see function for details | numbers from index + print_domains(domains, fnNdx_); // see function for details | numbers from index std::cout << "\n END \n"; } -- 2.22.0