diff --git a/include/cantera/oneD/Inlet1D.h b/include/cantera/oneD/Inlet1D.h index 0868d1911..3497498dd 100644 --- a/include/cantera/oneD/Inlet1D.h +++ b/include/cantera/oneD/Inlet1D.h @@ -16,8 +16,6 @@ #include "cantera/kinetics/InterfaceKinetics.h" #include "StFlow.h" -#include - namespace Cantera { @@ -129,18 +127,14 @@ public: } virtual void showSolution(const doublereal* x) { - char buf[80]; - sprintf(buf, " Mass Flux: %10.4g kg/m^2/s \n", m_mdot); - writelog(buf); - sprintf(buf, " Temperature: %10.4g K \n", m_temp); - writelog(buf); + writelog(" Mass Flux: {:10.4g} kg/m^2/s \n", m_mdot); + writelog(" Temperature: {:10.4g} K \n", m_temp); if (m_flow) { writelog(" Mass Fractions: \n"); for (size_t k = 0; k < m_flow->phase().nSpecies(); k++) { if (m_yin[k] != 0.0) { - sprintf(buf, " %16s %10.4g \n", - m_flow->phase().speciesName(k).c_str(), m_yin[k]); - writelog(buf); + writelog(" {:>16s} {:10.4g} \n", + m_flow->phase().speciesName(k), m_yin[k]); } } } @@ -329,10 +323,7 @@ public: } virtual void showSolution(const doublereal* x) { - char buf[80]; - sprintf(buf, " Temperature: %10.4g K \n", m_temp); - writelog(buf); - writelog("\n"); + writelog(" Temperature: {:10.4g} K \n\n", m_temp); } }; @@ -380,14 +371,10 @@ public: } virtual void showSolution(const doublereal* x) { - char buf[80]; - sprintf(buf, " Temperature: %10.4g K \n", x[0]); - writelog(buf); + writelog(" Temperature: {:10.4g} K \n", x[0]); writelog(" Coverages: \n"); for (size_t k = 0; k < m_nsp; k++) { - sprintf(buf, " %20s %10.4g \n", m_sphase->speciesName(k).c_str(), - x[k+1]); - writelog(buf); + writelog(" {:>20s} {:10.4g} \n", m_sphase->speciesName(k), x[k+1]); } writelog("\n"); } diff --git a/include/cantera/oneD/MultiNewton.h b/include/cantera/oneD/MultiNewton.h index c3e73d7c5..40d82071d 100644 --- a/include/cantera/oneD/MultiNewton.h +++ b/include/cantera/oneD/MultiNewton.h @@ -84,9 +84,6 @@ protected: size_t m_n; doublereal m_elapsed; - -private: - char m_buf[100]; }; } diff --git a/src/base/global.cpp b/src/base/global.cpp index 39328e8f0..63db0fdb0 100644 --- a/src/base/global.cpp +++ b/src/base/global.cpp @@ -27,7 +27,7 @@ void setLogger(Logger* logwriter) } } -void writelog(const std::string& msg) +void writelog_direct(const std::string& msg) { app()->writelog(msg); } @@ -42,7 +42,7 @@ void writeline(char repeat, size_t count, bool endl_after, bool endl_before) if (endl_before) { writelogendl(); } - writelog(std::string(count, repeat)); + writelog_direct(std::string(count, repeat)); if (endl_after) { writelogendl(); } diff --git a/src/oneD/Domain1D.cpp b/src/oneD/Domain1D.cpp index f7dd6caae..6eac33c4a 100644 --- a/src/oneD/Domain1D.cpp +++ b/src/oneD/Domain1D.cpp @@ -6,8 +6,6 @@ #include "cantera/oneD/MultiJac.h" #include "cantera/base/ctml.h" -#include - using namespace std; namespace Cantera @@ -159,44 +157,35 @@ void Domain1D::showSolution(const doublereal* x) { size_t nn = m_nv/5; size_t i, j, n; - char buf[100]; doublereal v; for (i = 0; i < nn; i++) { writeline('-', 79, false, true); - sprintf(buf, "\n z "); - writelog(buf); + writelog("\n z "); for (n = 0; n < 5; n++) { - sprintf(buf, " %10s ",componentName(i*5 + n).c_str()); - writelog(buf); + writelog(" {:>10s} ", componentName(i*5 + n)); } writeline('-', 79, false, true); for (j = 0; j < m_points; j++) { - sprintf(buf, "\n %10.4g ",m_z[j]); - writelog(buf); + writelog("\n {:10.4g} ", m_z[j]); for (n = 0; n < 5; n++) { v = value(x, i*5+n, j); - sprintf(buf, " %10.4g ",v); - writelog(buf); + writelog(" {:10.4g} ", v); } } writelog("\n"); } size_t nrem = m_nv - 5*nn; writeline('-', 79, false, true); - sprintf(buf, "\n z "); - writelog(buf); + writelog("\n z "); for (n = 0; n < nrem; n++) { - sprintf(buf, " %10s ", componentName(nn*5 + n).c_str()); - writelog(buf); + writelog(" {:>10s} ", componentName(nn*5 + n)); } writeline('-', 79, false, true); for (j = 0; j < m_points; j++) { - sprintf(buf, "\n %10.4g ",m_z[j]); - writelog(buf); + writelog("\n {:10.4g} ", m_z[j]); for (n = 0; n < nrem; n++) { v = value(x, nn*5+n, j); - sprintf(buf, " %10.4g ", v); - writelog(buf); + writelog(" {:10.4g} ", v); } } writelog("\n"); diff --git a/src/oneD/MultiNewton.cpp b/src/oneD/MultiNewton.cpp index dd2bf20d9..f470cf451 100644 --- a/src/oneD/MultiNewton.cpp +++ b/src/oneD/MultiNewton.cpp @@ -9,7 +9,6 @@ #include "cantera/oneD/MultiNewton.h" #include "cantera/base/utilities.h" -#include #include using namespace std; @@ -39,7 +38,6 @@ public: doublereal bound_step(const doublereal* x, const doublereal* step, Domain1D& r, int loglevel) { - char buf[100]; size_t np = r.nPoints(); size_t nv = r.nComponents(); Indx index(nv, np); @@ -54,11 +52,9 @@ doublereal bound_step(const doublereal* x, const doublereal* step, for (j = 0; j < np; j++) { val = x[index(m,j)]; if (loglevel > 0 && (val > above + 1.0e-12 || val < below - 1.0e-12)) { - sprintf(buf, "domain %s: %20s(%s) = %10.3e (%10.3e, %10.3e)\n", - int2str(r.domainIndex()).c_str(), - r.componentName(m).c_str(), int2str(j).c_str(), - val, below, above); - writelog(string("\nERROR: solution out of bounds.\n")+buf); + writelog("\nERROR: solution out of bounds.\n"); + writelog("domain {:d}: {:>20s}({:d}) = {:10.3e} ({:10.3e}, {:10.3e})\n", + r.domainIndex(), r.componentName(m), j, val, below, above); } newval = val + step[index(m,j)]; @@ -73,16 +69,13 @@ doublereal bound_step(const doublereal* x, const doublereal* step, if (loglevel > 1 && (newval > above || newval < below)) { if (!wroteTitle) { writelog("\nNewton step takes solution out of bounds.\n\n"); - sprintf(buf," %12s %12s %4s %10s %10s %10s %10s\n", - "domain","component","pt","value","step","min","max"); + writelog(" {:>12s} {:>12s} {:>4s} {:>10s} {:>10s} {:>10s} {:>10s}\n", + "domain","component","pt","value","step","min","max"); wroteTitle = true; - writelog(buf); } - sprintf(buf, " %4s %12s %4s %10.3e %10.3e %10.3e %10.3e\n", - int2str(r.domainIndex()).c_str(), - r.componentName(m).c_str(), int2str(j).c_str(), - val, step[index(m,j)], below, above); - writelog(buf); + writelog(" {:4d} {:>12s} {:4d} {:10.3e} {:10.3e} {:10.3e} {:10.3e}\n", + r.domainIndex(), r.componentName(m), j, + val, step[index(m,j)], below, above); } } } @@ -235,10 +228,9 @@ int MultiNewton::dampStep(const doublereal* x0, const doublereal* step0, writelog("\n\nDamped Newton iteration:\n"); writeline('-', 65, false); - sprintf(m_buf,"\n%s %9s %9s %9s %9s %9s %5s %5s\n", + writelog("\n{} {:>9s} {:>9s} {:>9s} {:>9s} {:>9s} {:>5s} {:>5s}\n", "m","F_damp","F_bound","log10(ss)", "log10(s0)","log10(s1)","N_jac","Age"); - writelog(m_buf); writeline('-', 65); } @@ -283,12 +275,10 @@ int MultiNewton::dampStep(const doublereal* x0, const doublereal* step0, // write log information if (loglevel > 0) { doublereal ss = r.ssnorm(x1,step1); - sprintf(m_buf,"\n%s %9.5f %9.5f %9.5f %9.5f %9.5f %4d %d/%d", - int2str(m).c_str(), damp, fbound, log10(ss+SmallNumber), - log10(s0+SmallNumber), - log10(s1+SmallNumber), - jac.nEvals(), jac.age(), m_maxAge); - writelog(m_buf); + writelog("\n{:d} {:9.5f} {:9.5f} {:9.5f} {:9.5f} {:9.5f} {:4d} {:d}/{:d}", + m, damp, fbound, log10(ss+SmallNumber), + log10(s0+SmallNumber), log10(s1+SmallNumber), + jac.nEvals(), jac.age(), m_maxAge); } // if the norm of s1 is less than the norm of s0, then @@ -355,16 +345,13 @@ int MultiNewton::solve(doublereal* x0, doublereal* x1, m = dampStep(&m_x[0], &m_stp[0], x1, &m_stp1[0], s1, r, jac, loglevel-1, frst); if (loglevel == 1 && m >= 0) { if (frst) { - sprintf(m_buf,"\n\n %10s %10s %5s ", - "log10(ss)","log10(s1)","N_jac"); - writelog(m_buf); - sprintf(m_buf,"\n ------------------------------------"); - writelog(m_buf); + writelog("\n\n {:>10s} {:>10s} {:>5s}", + "log10(ss)","log10(s1)","N_jac"); + writelog("\n ------------------------------------"); } doublereal ss = r.ssnorm(&m_x[0], &m_stp[0]); - sprintf(m_buf,"\n %10.4f %10.4f %d ", - log10(ss),log10(s1),jac.nEvals()); - writelog(m_buf); + writelog("\n {:10.4f} {:10.4f} {:d}", + log10(ss),log10(s1),jac.nEvals()); } frst = false; diff --git a/src/oneD/OneDim.cpp b/src/oneD/OneDim.cpp index 591aaedb6..76599ade5 100644 --- a/src/oneD/OneDim.cpp +++ b/src/oneD/OneDim.cpp @@ -94,20 +94,17 @@ MultiNewton& OneDim::newton() void OneDim::writeStats(int printTime) { saveStats(); - char buf[100]; - sprintf(buf,"\nStatistics:\n\n Grid Functions Time Jacobians Time \n"); - writelog(buf); + writelog("\nStatistics:\n\n Grid Functions Time Jacobians Time \n"); size_t n = m_gridpts.size(); for (size_t i = 0; i < n; i++) { if (printTime) { - sprintf(buf,"%5s %5i %9.4f %5i %9.4f \n", - int2str(m_gridpts[i]).c_str(), m_funcEvals[i], m_funcElapsed[i], - m_jacEvals[i], m_jacElapsed[i]); + writelog("{:5d} {:5d} {:9.4f} {:5d} {:9.4f}\n", + m_gridpts[i], m_funcEvals[i], m_funcElapsed[i], + m_jacEvals[i], m_jacElapsed[i]); } else { - sprintf(buf,"%5s %5i NA %5i NA \n", - int2str(m_gridpts[i]).c_str(), m_funcEvals[i], m_jacEvals[i]); + writelog("{:5d} {:5d} NA {:5d} NA\n", + m_gridpts[i], m_funcEvals[i], m_jacEvals[i]); } - writelog(buf); } } @@ -324,12 +321,10 @@ doublereal OneDim::timeStep(int nsteps, doublereal dt, doublereal* x, debuglog("===============================\n", loglevel); int n = 0; - char str[80]; while (n < nsteps) { if (loglevel > 0) { doublereal ss = ssnorm(x, r); - sprintf(str, " %4d %10.4g %10.4g" , n,dt,log10(ss)); - writelog(str); + writelog(" {:>4d} {:10.4g} {:10.4g}", n, dt, log10(ss)); } // set up for time stepping with stepsize dt diff --git a/src/oneD/Sim1D.cpp b/src/oneD/Sim1D.cpp index 81db189a1..55bc3dba3 100644 --- a/src/oneD/Sim1D.cpp +++ b/src/oneD/Sim1D.cpp @@ -254,7 +254,6 @@ void Sim1D::solve(int loglevel, bool refine_grid) ok = true; soln_number++; } else { - char buf[100]; debuglog(" failure. \n", loglevel); if (loglevel > 6) { save("debug_sim1d.xml", "debug", @@ -276,9 +275,8 @@ void Sim1D::solve(int loglevel, bool refine_grid) } if (loglevel == 1) { - sprintf(buf, " %10.4g %10.4g \n", dt, - log10(ssnorm(DATA_PTR(m_x), DATA_PTR(m_xnew)))); - writelog(buf); + writelog(" {:10.4g} {:10.4g}\n", dt, + log10(ssnorm(DATA_PTR(m_x), DATA_PTR(m_xnew)))); } istep++; if (istep >= m_steps.size()) { diff --git a/src/oneD/StFlow.cpp b/src/oneD/StFlow.cpp index 3a8d9a6a9..e2bd00113 100644 --- a/src/oneD/StFlow.cpp +++ b/src/oneD/StFlow.cpp @@ -8,8 +8,6 @@ #include "cantera/transport/TransportBase.h" #include "cantera/numerics/funcs.h" -#include - using namespace std; namespace Cantera @@ -486,58 +484,46 @@ void StFlow::showSolution(const doublereal* x) { size_t nn = m_nv/5; size_t i, j, n; - char buf[100]; // The mean molecular weight is needed to convert updateThermo(x, 0, m_points-1); - sprintf(buf, " Pressure: %10.4g Pa \n", m_press); - writelog(buf); + writelog(" Pressure: {:10.4g} Pa\n", m_press); for (i = 0; i < nn; i++) { writeline('-', 79, false, true); - sprintf(buf, "\n z "); - writelog(buf); + writelog("\n z "); for (n = 0; n < 5; n++) { - sprintf(buf, " %10s ",componentName(i*5 + n).c_str()); - writelog(buf); + writelog(" {:>10s} ", componentName(i*5 + n)); } writeline('-', 79, false, true); for (j = 0; j < m_points; j++) { - sprintf(buf, "\n %10.4g ",m_z[j]); - writelog(buf); + writelog("\n {:10.4g} ", m_z[j]); for (n = 0; n < 5; n++) { - sprintf(buf, " %10.4g ",component(x, i*5+n,j)); - writelog(buf); + writelog(" {:10.4g} ", component(x, i*5+n,j)); } } writelog("\n"); } size_t nrem = m_nv - 5*nn; writeline('-', 79, false, true); - sprintf(buf, "\n z "); - writelog(buf); + writelog("\n z "); for (n = 0; n < nrem; n++) { - sprintf(buf, " %10s ", componentName(nn*5 + n).c_str()); - writelog(buf); + writelog(" {:>10s} ", componentName(nn*5 + n)); } writeline('-', 79, false, true); for (j = 0; j < m_points; j++) { - sprintf(buf, "\n %10.4g ",m_z[j]); - writelog(buf); + writelog("\n {:10.4g} ", m_z[j]); for (n = 0; n < nrem; n++) { - sprintf(buf, " %10.4g ",component(x, nn*5+n,j)); - writelog(buf); + writelog(" {:10.4g} ", component(x, nn*5+n,j)); } } writelog("\n"); if (m_do_radiation) { writeline('-', 79, false, true); - sprintf(buf, "\n z radiative heat loss"); - writelog(buf); + writelog("\n z radiative heat loss"); writeline('-', 79, false, true); for (j = 0; j < m_points; j++) { - sprintf(buf, "\n %10.4g %10.4g", m_z[j], m_qdotRadiation[j]); - writelog(buf); + writelog("\n {:10.4g} {:10.4g}", m_z[j], m_qdotRadiation[j]); } writelog("\n"); }