[us-commits] r2814 - trunk/programs/us_density_match

svn at svn.aucsolutions.com svn at svn.aucsolutions.com
Wed Aug 14 17:17:22 MDT 2019


Author: gegorbet
Date: 2019-08-14 23:17:21 +0000 (Wed, 14 Aug 2019)
New Revision: 2814

Modified:
   trunk/programs/us_density_match/us_density_match.cpp
   trunk/programs/us_density_match/us_density_match.h
Log:
density_match 'Save' of CSV added

Modified: trunk/programs/us_density_match/us_density_match.cpp
===================================================================
--- trunk/programs/us_density_match/us_density_match.cpp	2019-08-14 18:27:09 UTC (rev 2813)
+++ trunk/programs/us_density_match/us_density_match.cpp	2019-08-14 23:17:21 UTC (rev 2814)
@@ -276,7 +276,68 @@
 // Save plots and CSV files
 void US_Density_Match::save( void )
 {
+   int ndists      = v_sedcs.size();
+   QString runid   = QString( alldis[ 0 ].run_name ).section( ".", 0, -2 );
+   QString reppath = US_Settings::reportDir() + "/" + runid + "/";
+   QStringList fnames;
+
+   // Save all distributions as CSV files in */ultrascan/reports/X
+
+   QString fpfix   = "dens_match_distrib_";
+   QString fname;
+   QString fpath;
+
+   // Write sedimentation coeff, bfrac CSV files
+   for ( int ii = 0; ii < ndists; ii++ )
+   {
+      fname           = fpfix + "sedc_" + QString::number( (ii+1) ) + ".csv";
+      fpath           = reppath + fname;
+      write_csv( fpath, "sedi_coeff", v_sedcs[ ii ],
+                        "boundary_fraction", v_bfracs );
+      fnames << fname;
+   }
+
+   // Write diffusion coeff, bfrac CSV files
+   for ( int ii = 0; ii < ndists; ii++ )
+   {
+      fname           = fpfix + "difc_" + QString::number( (ii+1) ) + ".csv";
+      fpath           = reppath + fname;
+      write_csv( fpath, "diff_coeff", v_difcs[ ii ],
+                        "boundary_fraction", v_bfracs );
+      fnames << fname;
+   }
+
+   // Write X,bfrac CSV files for vbars,mmass,hrads,frats
+   fname           = fpfix + "vbar.csv";
+   fpath           = reppath + fname;
+   write_csv( fpath, "vbar", v_vbars,
+                     "boundary_fraction", v_bfracs );
+   fnames << fname;
+   fname           = fpfix + "mass.csv";
+   fpath           = reppath + fname;
+   write_csv( fpath, "molar_mass", v_mmass,
+                     "boundary_fraction", v_bfracs );
+   fnames << fname;
+   fname           = fpfix + "hrad.csv";
+   fpath           = reppath + fname;
+   write_csv( fpath, "hydro_radius", v_hrads,
+                     "boundary_fraction", v_bfracs );
+   fnames << fname;
+   fname           = fpfix + "frat.csv";
+   fpath           = reppath + fname;
+   write_csv( fpath, "fric_ratio", v_frats,
+                     "boundary_fraction", v_bfracs );
+   fnames << fname;
 #if 0
+   QVector< double >             v_bfracs;
+   QVector< double >             v_vbars;
+   QVector< double >             v_mmass;
+   QVector< double >             v_hrads;
+   QVector< double >             v_frats;
+   QVector< QVector< double > >  v_sedcs;
+   QVector< QVector< double > >  v_difcs;
+#endif
+#if 0
    //QString dtext = te_distr_info->toPlainText().section( "\n", 0, 1 );
    QString dtext  = tr( "Run:  " ) + tsys->run_name
          + " (" + tsys->method + ")\n    " + tsys->analys_name;
@@ -1487,3 +1548,32 @@
    plot_data();         // Plot data
 }
 
+// Write a CSV file from given vectors
+void US_Density_Match::write_csv( const QString fpath,
+  const QString hdr1, QVector< double >& vals1,
+  const QString hdr2, QVector< double >& vals2 )
+{
+DbgLv(1) << "WrCsv: fpath" << fpath;
+   // Open file and textstream
+   QFile datf( fpath );
+   if ( ! datf.open( QIODevice::WriteOnly | QIODevice::Truncate ) )
+      return;
+   QTextStream ts( &datf );
+
+   // Write header line
+   ts << "\"" + hdr1 + "\",\"" + hdr2 + "\"\n";
+
+   // Write data lines
+   for ( int jj = 0; jj < vals1.size(); jj++ )
+   {
+      QString line  = QString().sprintf(
+         "\"%9.6e\",\"%6.4f\"\n", vals1[ jj ], vals2[ jj ] );
+      line.replace( " ","" );
+      ts << line;
+   }
+
+   // Close file
+   datf.close();
+   return;
+}
+

Modified: trunk/programs/us_density_match/us_density_match.h
===================================================================
--- trunk/programs/us_density_match/us_density_match.h	2019-08-14 18:27:09 UTC (rev 2813)
+++ trunk/programs/us_density_match/us_density_match.h	2019-08-14 23:17:21 UTC (rev 2814)
@@ -182,6 +182,8 @@
       int  plot_x_select  ( void );
       QString anno_title  ( int );
       QString ptype_text  ( int );
+      void write_csv( const QString, const QString, QVector< double >&,
+                                     const QString, QVector< double >& );
 
       void help       ( void )
       { showHelp.show_help( "dens_match.html" ); };



More information about the us-commits mailing list