From 2589a27b6c677ecb281180c73e10ca03bc6df8d6 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Thu, 10 Sep 2015 18:22:55 -0400 Subject: [PATCH] Use range-based for and auto to simplify some loops --- include/cantera/base/Array.h | 6 +- include/cantera/base/FactoryBase.h | 7 +- include/cantera/kinetics/RxnRates.h | 3 +- include/cantera/kinetics/ThirdBodyCalc.h | 11 ++- src/base/application.cpp | 25 +++---- src/base/stringUtils.cpp | 14 ++-- src/base/xml.cpp | 26 +++---- src/clib/Cabinet.h | 3 +- src/equil/vcs_util.cpp | 5 +- src/kinetics/BulkKinetics.cpp | 12 ++-- src/kinetics/GasKinetics.cpp | 20 +++--- src/kinetics/InterfaceKinetics.cpp | 68 +++++++----------- src/kinetics/Kinetics.cpp | 88 +++++++++--------------- src/kinetics/Reaction.cpp | 86 ++++++++--------------- src/kinetics/ReactionPath.cpp | 38 ++++------ src/kinetics/RxnRates.cpp | 14 ++-- src/numerics/funcs.cpp | 3 +- src/oneD/OneDim.cpp | 9 ++- src/oneD/refine.cpp | 10 ++- src/thermo/DebyeHuckel.cpp | 24 +++---- src/thermo/GeneralSpeciesThermo.cpp | 28 ++++---- src/thermo/HMWSoln_input.cpp | 16 ++--- src/thermo/Phase.cpp | 34 ++++----- src/thermo/Species.cpp | 10 +-- src/thermo/ThermoFactory.cpp | 2 +- src/transport/GasTransport.cpp | 2 +- src/transport/TransportData.cpp | 6 +- src/transport/TransportFactory.cpp | 11 ++- src/zeroD/ReactorNet.cpp | 12 ++-- 29 files changed, 220 insertions(+), 373 deletions(-) diff --git a/include/cantera/base/Array.h b/include/cantera/base/Array.h index 1f7afa2b7..a22e2b18e 100644 --- a/include/cantera/base/Array.h +++ b/include/cantera/base/Array.h @@ -226,9 +226,9 @@ public: * */ void axpy(doublereal a, const Array2D& x, const Array2D& y) { - iterator b = begin(); - const_iterator xb = x.begin(); - const_iterator yb = y.begin(); + auto b = begin(); + auto xb = x.begin(); + auto yb = y.begin(); for (; b != end(); ++b, ++xb, ++yb) { *b = a*(*xb) + *yb; } diff --git a/include/cantera/base/FactoryBase.h b/include/cantera/base/FactoryBase.h index 4969d3d88..1a5b09e07 100644 --- a/include/cantera/base/FactoryBase.h +++ b/include/cantera/base/FactoryBase.h @@ -26,11 +26,8 @@ public: //! static function that deletes all factories //! in the internal registry maintained in a static variable static void deleteFactories() { - std::vector< FactoryBase* >::iterator iter; - for (iter = s_vFactoryRegistry.begin(); - iter != s_vFactoryRegistry.end(); - ++iter) { - (*iter)->deleteFactory(); + for (const auto& f : s_vFactoryRegistry) { + f->deleteFactory(); } s_vFactoryRegistry.clear(); } diff --git a/include/cantera/kinetics/RxnRates.h b/include/cantera/kinetics/RxnRates.h index 3a482be66..43bab4f22 100644 --- a/include/cantera/kinetics/RxnRates.h +++ b/include/cantera/kinetics/RxnRates.h @@ -190,7 +190,7 @@ public: return; } - pressureIter iter = pressures_.upper_bound(c[0]); + auto iter = pressures_.upper_bound(c[0]); AssertThrowMsg(iter != pressures_.end(), "Plog::update_C", "Pressure out of range: " + fp2str(logP_)); AssertThrowMsg(iter != pressures_.begin(), "Plog::update_C", @@ -252,7 +252,6 @@ public: protected: //! log(p) to (index range) in the rates_ vector std::map > pressures_; - typedef std::map >::iterator pressureIter; // Rate expressions which are referenced by the indices stored in pressures_ std::vector rates_; diff --git a/include/cantera/kinetics/ThirdBodyCalc.h b/include/cantera/kinetics/ThirdBodyCalc.h index 2ce6ab26d..b9874253e 100644 --- a/include/cantera/kinetics/ThirdBodyCalc.h +++ b/include/cantera/kinetics/ThirdBodyCalc.h @@ -23,13 +23,10 @@ public: m_species.push_back(std::vector()); m_eff.push_back(vector_fp()); - for (std::map::const_iterator iter = enhanced.begin(); - iter != enhanced.end(); - ++iter) - { - assert(iter->first != npos); - m_species.back().push_back(iter->first); - m_eff.back().push_back(iter->second - dflt); + for (const auto& eff : enhanced) { + assert(eff.first != npos); + m_species.back().push_back(eff.first); + m_eff.back().push_back(eff.second - dflt); } } diff --git a/src/base/application.cpp b/src/base/application.cpp index 3dc6eea70..77b1b0221 100644 --- a/src/base/application.cpp +++ b/src/base/application.cpp @@ -142,7 +142,7 @@ Application::Messages* Application::ThreadMessages::operator ->() { ScopedLock msgLock(msg_mutex); cthreadId_t curId = getThisThreadId(); - threadMsgMap_t::iterator iter = m_threadMsgMap.find(curId); + auto iter = m_threadMsgMap.find(curId); if (iter != m_threadMsgMap.end()) { return iter->second.get(); } @@ -155,7 +155,7 @@ void Application::ThreadMessages::removeThreadMessages() { ScopedLock msgLock(msg_mutex); cthreadId_t curId = getThisThreadId(); - threadMsgMap_t::iterator iter = m_threadMsgMap.find(curId); + auto iter = m_threadMsgMap.find(curId); if (iter != m_threadMsgMap.end()) { m_threadMsgMap.erase(iter); } @@ -188,11 +188,10 @@ Application* Application::Instance() Application::~Application() { - std::map >::iterator pos; - for (pos = xmlfiles.begin(); pos != xmlfiles.end(); ++pos) { - pos->second.first->unlock(); - delete pos->second.first; - pos->second.first = 0; + for (auto& f : xmlfiles) { + f.second.first->unlock(); + delete f.second.first; + f.second.first = 0; } } @@ -293,12 +292,9 @@ void Application::close_XML_File(const std::string& file) { ScopedLock xmlLock(xml_mutex); if (file == "all") { - std::map >::iterator - b = xmlfiles.begin(), - e = xmlfiles.end(); - for (; b != e; ++b) { - b->second.first->unlock(); - delete b->second.first; + for (const auto& f : xmlfiles) { + f.second.first->unlock(); + delete f.second.first; } xmlfiles.clear(); } else if (xmlfiles.find(file) != xmlfiles.end()) { @@ -469,8 +465,7 @@ void Application::addDataDirectory(const std::string& dir) string d = stripnonprint(dir); // Remove any existing entry for this directory - std::vector::iterator iter = std::find(inputDirs.begin(), - inputDirs.end(), d); + auto iter = std::find(inputDirs.begin(), inputDirs.end(), d); if (iter != inputDirs.end()) { inputDirs.erase(iter); } diff --git a/src/base/stringUtils.cpp b/src/base/stringUtils.cpp index deb080eaf..843e36d8e 100644 --- a/src/base/stringUtils.cpp +++ b/src/base/stringUtils.cpp @@ -303,11 +303,8 @@ static std::string::size_type findFirstWS(const std::string& val) { std::string::size_type ibegin = std::string::npos; int j = 0; - std::string::const_iterator i = val.begin(); - for (; i != val.end(); i++) { - char ch = *i; - int ll = (int) ch; - if (isspace(ll)) { + for (const auto& ch : val) { + if (isspace(static_cast(ch))) { ibegin = (std::string::size_type) j; break; } @@ -328,11 +325,8 @@ static std::string::size_type findFirstNotOfWS(const std::string& val) { std::string::size_type ibegin = std::string::npos; int j = 0; - std::string::const_iterator i = val.begin(); - for (; i != val.end(); i++) { - char ch = *i; - int ll = (int) ch; - if (!isspace(ll)) { + for (const auto& ch : val) { + if (!isspace(static_cast(ch))) { ibegin = (std::string::size_type) j; break; } diff --git a/src/base/xml.cpp b/src/base/xml.cpp index 29efeee48..fab9af743 100644 --- a/src/base/xml.cpp +++ b/src/base/xml.cpp @@ -429,8 +429,7 @@ XML_Node& XML_Node::addChild(const std::string& name, const doublereal value, void XML_Node::removeChild(const XML_Node* const node) { - vector::iterator i; - i = find(m_children.begin(), m_children.end(), node); + auto i = find(m_children.begin(), m_children.end(), node); m_children.erase(i); m_childindex.erase(node->name()); } @@ -792,10 +791,9 @@ void XML_Node::copyUnion(XML_Node* const node_dest) const if (m_name == "") { return; } - map::const_iterator b = m_attribs.begin(); - for (; b != m_attribs.end(); ++b) { - if (! node_dest->hasAttrib(b->first)) { - node_dest->addAttribute(b->first, b->second); + for (const auto& attr : m_attribs) { + if (!node_dest->hasAttrib(attr.first)) { + node_dest->addAttribute(attr.first, attr.second); } } const vector &vsc = node_dest->children(); @@ -840,9 +838,8 @@ void XML_Node::copy(XML_Node* const node_dest) const if (m_name == "") { return; } - map::const_iterator b = m_attribs.begin(); - for (; b != m_attribs.end(); ++b) { - node_dest->addAttribute(b->first, b->second); + for (const auto& attr : m_attribs) { + node_dest->addAttribute(attr.first, attr.second); } const vector &vsc = node_dest->children(); @@ -888,21 +885,19 @@ XML_Node& XML_Node::child(const std::string& aloc) const string::size_type iloc; string cname; string loc = aloc; - std::multimap::const_iterator i; - while (true) { iloc = loc.find('/'); if (iloc != string::npos) { cname = loc.substr(0,iloc); loc = loc.substr(iloc+1, loc.size()); - i = m_childindex.find(cname); + auto i = m_childindex.find(cname); if (i != m_childindex.end()) { return i->second->child(loc); } else { throw XML_NoChild(this, m_name, cname, lineNumber()); } } else { - i = m_childindex.find(loc); + auto i = m_childindex.find(loc); if (i != m_childindex.end()) { return *(i->second); } else { @@ -938,9 +933,8 @@ void XML_Node::write_int(std::ostream& s, int level, int numRecursivesAllowed) c } s << indent << "<" << m_name; - map::const_iterator b = m_attribs.begin(); - for (; b != m_attribs.end(); ++b) { - s << " " << b->first << "=\"" << b->second << "\""; + for (const auto& attr : m_attribs) { + s << " " << attr.first << "=\"" << attr.second << "\""; } if (m_value == "" && m_children.empty()) { s << "/>"; diff --git a/src/clib/Cabinet.h b/src/clib/Cabinet.h index c485109f3..c1cd0578c 100644 --- a/src/clib/Cabinet.h +++ b/src/clib/Cabinet.h @@ -65,7 +65,6 @@ class Cabinet { public: typedef std::vector& dataRef; - typedef typename std::vector::iterator dataIterator; /** * Destructor. Delete all objects in the list. */ @@ -165,7 +164,7 @@ public: */ static int index(const M& obj) { dataRef data = getData(); - dataIterator loc = std::find(data.begin(), data.end(), &obj); + auto loc = std::find(data.begin(), data.end(), &obj); if (loc != data.end()) { return static_cast(loc-data.begin()); } else { diff --git a/src/equil/vcs_util.cpp b/src/equil/vcs_util.cpp index 2221cf339..213f94322 100644 --- a/src/equil/vcs_util.cpp +++ b/src/equil/vcs_util.cpp @@ -27,9 +27,8 @@ double vcs_l2norm(const vector_fp vec) return 0.0; } double sum = 0.0; - vector_fp::const_iterator pos; - for (pos = vec.begin(); pos != vec.end(); ++pos) { - sum += (*pos) * (*pos); + for (const auto& val : vec) { + sum += val * val; } return std::sqrt(sum / len); } diff --git a/src/kinetics/BulkKinetics.cpp b/src/kinetics/BulkKinetics.cpp index 838999713..ecee54ddc 100644 --- a/src/kinetics/BulkKinetics.cpp +++ b/src/kinetics/BulkKinetics.cpp @@ -113,15 +113,11 @@ bool BulkKinetics::addReaction(shared_ptr r) return false; } double dn = 0.0; - for (Composition::const_iterator iter = r->products.begin(); - iter != r->products.end(); - ++iter) { - dn += iter->second; + for (const auto& sp : r->products) { + dn += sp.second; } - for (Composition::const_iterator iter = r->reactants.begin(); - iter != r->reactants.end(); - ++iter) { - dn -= iter->second; + for (const auto& sp : r->reactants) { + dn -= sp.second; } m_dn.push_back(dn); diff --git a/src/kinetics/GasKinetics.cpp b/src/kinetics/GasKinetics.cpp index 4d026d542..27cb30e95 100644 --- a/src/kinetics/GasKinetics.cpp +++ b/src/kinetics/GasKinetics.cpp @@ -285,15 +285,13 @@ void GasKinetics::addFalloffReaction(FalloffReaction& r) // install the enhanced third-body concentration calculator map efficiencies; - for (Composition::const_iterator iter = r.third_body.efficiencies.begin(); - iter != r.third_body.efficiencies.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& eff : r.third_body.efficiencies) { + size_t k = kineticsSpeciesIndex(eff.first); if (k != npos) { - efficiencies[k] = iter->second; + efficiencies[k] = eff.second; } else if (!m_skipUndeclaredThirdBodies) { throw CanteraError("GasKinetics::addTFalloffReaction", "Found " - "third-body efficiency for undefined species '" + iter->first + + "third-body efficiency for undefined species '" + eff.first + "' while adding reaction '" + r.equation() + "'"); } } @@ -311,15 +309,13 @@ void GasKinetics::addThreeBodyReaction(ThreeBodyReaction& r) { m_rates.install(nReactions()-1, r.rate); map efficiencies; - for (Composition::const_iterator iter = r.third_body.efficiencies.begin(); - iter != r.third_body.efficiencies.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& eff : r.third_body.efficiencies) { + size_t k = kineticsSpeciesIndex(eff.first); if (k != npos) { - efficiencies[k] = iter->second; + efficiencies[k] = eff.second; } else if (!m_skipUndeclaredThirdBodies) { throw CanteraError("GasKinetics::addThreeBodyReaction", "Found " - "third-body efficiency for undefined species '" + iter->first + + "third-body efficiency for undefined species '" + eff.first + "' while adding reaction '" + r.equation() + "'"); } } diff --git a/src/kinetics/InterfaceKinetics.cpp b/src/kinetics/InterfaceKinetics.cpp index 50a5d6828..0d014af11 100644 --- a/src/kinetics/InterfaceKinetics.cpp +++ b/src/kinetics/InterfaceKinetics.cpp @@ -718,10 +718,8 @@ bool InterfaceKinetics::addReaction(shared_ptr r_base) } if (!r.orders.empty()) { vector_fp orders(nTotalSpecies(), 0.0); - for (Composition::const_iterator iter = r.orders.begin(); - iter != r.orders.end(); - ++iter) { - orders[kineticsSpeciesIndex(iter->first)] = iter->second; + for (const auto& order : r.orders) { + orders[kineticsSpeciesIndex(order.first)] = order.second; } } } else { @@ -744,17 +742,13 @@ bool InterfaceKinetics::addReaction(shared_ptr r_base) m_rxnPhaseIsReactant.push_back(std::vector(nPhases(), false)); m_rxnPhaseIsProduct.push_back(std::vector(nPhases(), false)); - for (Composition::const_iterator iter = r.reactants.begin(); - iter != r.reactants.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& sp : r.reactants) { + size_t k = kineticsSpeciesIndex(sp.first); size_t p = speciesPhaseIndex(k); m_rxnPhaseIsReactant[i][p] = true; } - for (Composition::const_iterator iter = r.products.begin(); - iter != r.products.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& sp : r.products) { + size_t k = kineticsSpeciesIndex(sp.first); size_t p = speciesPhaseIndex(k); m_rxnPhaseIsProduct[i][p] = true; } @@ -795,10 +789,8 @@ SurfaceArrhenius InterfaceKinetics::buildSurfaceArrhenius( if (sticking_species == "") { // Identify the sticking species if not explicitly given bool foundStick = false; - for (Composition::const_iterator iter = r.reactants.begin(); - iter != r.reactants.end(); - ++iter) { - size_t iPhase = speciesPhaseIndex(kineticsSpeciesIndex(iter->first)); + for (const auto& sp : r.reactants) { + size_t iPhase = speciesPhaseIndex(kineticsSpeciesIndex(sp.first)); if (iPhase != iInterface) { // Non-interface species. There should be exactly one of these if (foundStick) { @@ -807,7 +799,7 @@ SurfaceArrhenius InterfaceKinetics::buildSurfaceArrhenius( "in sticking reaction: '" + r.equation() + "'"); } foundStick = true; - sticking_species = iter->first; + sticking_species = sp.first; } } if (!foundStick) { @@ -819,14 +811,12 @@ SurfaceArrhenius InterfaceKinetics::buildSurfaceArrhenius( double surface_order = 0.0; // Adjust the A-factor - for (Composition::const_iterator iter = r.reactants.begin(); - iter != r.reactants.end(); - ++iter) { - size_t iPhase = speciesPhaseIndex(kineticsSpeciesIndex(iter->first)); + for (const auto& sp : r.reactants) { + size_t iPhase = speciesPhaseIndex(kineticsSpeciesIndex(sp.first)); const ThermoPhase& p = thermo(iPhase); const ThermoPhase& surf = thermo(surfacePhaseIndex()); - size_t k = p.speciesIndex(iter->first); - if (iter->first == sticking_species) { + size_t k = p.speciesIndex(sp.first); + if (sp.first == sticking_species) { A_rate *= sqrt(GasConstant/(2*Pi*p.molecularWeight(k))); } else { // Non-sticking species. Convert from coverages used in the @@ -835,7 +825,7 @@ SurfaceArrhenius InterfaceKinetics::buildSurfaceArrhenius( // the dependence on the site density is incorporated when the // rate constant is evaluated, since we don't assume that the // site density is known at this time. - double order = getValue(r.orders, iter->first, iter->second); + double order = getValue(r.orders, sp.first, sp.second); if (&p == &surf) { A_rate *= pow(p.size(k), order); surface_order += order; @@ -852,11 +842,9 @@ SurfaceArrhenius InterfaceKinetics::buildSurfaceArrhenius( SurfaceArrhenius rate(A_rate, b_rate, r.rate.activationEnergy_R()); // Set up coverage dependencies - for (map::const_iterator iter = r.coverage_deps.begin(); - iter != r.coverage_deps.end(); - ++iter) { - size_t k = thermo(reactionPhaseIndex()).speciesIndex(iter->first); - rate.addCoverageDependence(k, iter->second.a, iter->second.m, iter->second.E); + for (const auto& sp : r.coverage_deps) { + size_t k = thermo(reactionPhaseIndex()).speciesIndex(sp.first); + rate.addCoverageDependence(k, sp.second.a, sp.second.m, sp.second.E); } return rate; } @@ -1028,10 +1016,8 @@ void InterfaceKinetics::determineFwdOrdersBV(ElectrochemicalReaction& r, vector_ // Start out with the full ROP orders vector. // This vector will have the BV exchange current density orders in it. fwdFullOrders.assign(nTotalSpecies(), 0.0); - for (Composition::const_iterator iter = r.orders.begin(); - iter != r.orders.end(); - ++iter) { - fwdFullOrders[kineticsSpeciesIndex(iter->first)] = iter->second; + for (const auto& order : r.orders) { + fwdFullOrders[kineticsSpeciesIndex(order.first)] = order.second; } // forward and reverse beta values @@ -1039,11 +1025,9 @@ void InterfaceKinetics::determineFwdOrdersBV(ElectrochemicalReaction& r, vector_ // Loop over the reactants doing away with the BV terms. // This should leave the reactant terms only, even if they are non-mass action. - for (Composition::const_iterator iter = r.reactants.begin(); - iter != r.reactants.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); - fwdFullOrders[k] += betaf * iter->second; + for (const auto& sp : r.reactants) { + size_t k = kineticsSpeciesIndex(sp.first); + fwdFullOrders[k] += betaf * sp.second; // just to make sure roundoff doesn't leave a term that should be zero (haven't checked this out yet) if (abs(fwdFullOrders[k]) < 0.00001) { fwdFullOrders[k] = 0.0; @@ -1052,11 +1036,9 @@ void InterfaceKinetics::determineFwdOrdersBV(ElectrochemicalReaction& r, vector_ // Loop over the products doing away with the BV terms. // This should leave the reactant terms only, even if they are non-mass action. - for (Composition::const_iterator iter = r.products.begin(); - iter != r.products.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); - fwdFullOrders[k] -= betaf * iter->second; + for (const auto& sp : r.products) { + size_t k = kineticsSpeciesIndex(sp.first); + fwdFullOrders[k] -= betaf * sp.second; // just to make sure roundoff doesn't leave a term that should be zero (haven't checked this out yet) if (abs(fwdFullOrders[k]) < 0.00001) { fwdFullOrders[k] = 0.0; diff --git a/src/kinetics/Kinetics.cpp b/src/kinetics/Kinetics.cpp index 847451664..091ed2007 100644 --- a/src/kinetics/Kinetics.cpp +++ b/src/kinetics/Kinetics.cpp @@ -161,19 +161,15 @@ std::pair Kinetics::checkDuplicates(bool throw_err) const Reaction& R = *m_reactions[i]; net_stoich.push_back(std::map()); std::map& net = net_stoich.back(); - for (Composition::const_iterator iter = R.reactants.begin(); - iter != R.reactants.end(); - ++iter) { - int k = static_cast(kineticsSpeciesIndex(iter->first)); + for (const auto& sp : R.reactants) { + int k = static_cast(kineticsSpeciesIndex(sp.first)); key += k*(k+1); - net[-1 -k] -= iter->second; + net[-1 -k] -= sp.second; } - for (Composition::const_iterator iter = R.products.begin(); - iter != R.products.end(); - ++iter) { - int k = static_cast(kineticsSpeciesIndex(iter->first)); + for (const auto& sp : R.products) { + int k = static_cast(kineticsSpeciesIndex(sp.first)); key += k*(k+1); - net[1+k] += iter->second; + net[1+k] += sp.second; } // Compare this reaction to others with similar participants @@ -241,7 +237,7 @@ std::pair Kinetics::checkDuplicates(bool throw_err) const double Kinetics::checkDuplicateStoich(std::map& r1, std::map& r2) const { - map::const_iterator b = r1.begin(), e = r1.end(); + auto b = r1.begin(), e = r1.end(); int k1 = b->first; // check for duplicate written in the same direction doublereal ratio = 0.0; @@ -282,23 +278,19 @@ void Kinetics::checkReactionBalance(const Reaction& R) { Composition balr, balp; // iterate over the products - for (Composition::const_iterator iter = R.products.begin(); - iter != R.products.end(); - ++iter) { - const ThermoPhase& ph = speciesPhase(iter->first); - size_t k = ph.speciesIndex(iter->first); - double stoich = iter->second; + for (const auto& sp : R.products) { + const ThermoPhase& ph = speciesPhase(sp.first); + size_t k = ph.speciesIndex(sp.first); + double stoich = sp.second; for (size_t m = 0; m < ph.nElements(); m++) { balr[ph.elementName(m)] = 0.0; // so that balr contains all species balp[ph.elementName(m)] += stoich*ph.nAtoms(k,m); } } - for (Composition::const_iterator iter = R.reactants.begin(); - iter != R.reactants.end(); - ++iter) { - const ThermoPhase& ph = speciesPhase(iter->first); - size_t k = ph.speciesIndex(iter->first); - double stoich = iter->second; + for (const auto& sp : R.reactants) { + const ThermoPhase& ph = speciesPhase(sp.first); + size_t k = ph.speciesIndex(sp.first); + double stoich = sp.second; for (size_t m = 0; m < ph.nElements(); m++) { balr[ph.elementName(m)] += stoich*ph.nAtoms(k,m); } @@ -306,10 +298,8 @@ void Kinetics::checkReactionBalance(const Reaction& R) string msg; bool ok = true; - for (Composition::iterator iter = balr.begin(); - iter != balr.end(); - ++iter) { - const string& elem = iter->first; + for (const auto& el : balr) { + const string& elem = el.first; double elemsum = balr[elem] + balp[elem]; double elemdiff = fabs(balp[elem] - balr[elem]); if (elemsum > 0.0 && elemdiff/elemsum > 1e-4) { @@ -552,29 +542,25 @@ bool Kinetics::addReaction(shared_ptr r) } // Check for undeclared species - for (Composition::const_iterator iter = r->reactants.begin(); - iter != r->reactants.end(); - ++iter) { - if (kineticsSpeciesIndex(iter->first) == npos) { + for (const auto& sp : r->reactants) { + if (kineticsSpeciesIndex(sp.first) == npos) { if (m_skipUndeclaredSpecies) { return false; } else { throw CanteraError("Kinetics::addReaction", "Reaction '" + r->equation() + "' contains the undeclared species '" + - iter->first + "'"); + sp.first + "'"); } } } - for (Composition::const_iterator iter = r->products.begin(); - iter != r->products.end(); - ++iter) { - if (kineticsSpeciesIndex(iter->first) == npos) { + for (const auto& sp : r->products) { + if (kineticsSpeciesIndex(sp.first) == npos) { if (m_skipUndeclaredSpecies) { return false; } else { throw CanteraError("Kinetics::addReaction", "Reaction '" + r->equation() + "' contains the undeclared species '" + - iter->first + "'"); + sp.first + "'"); } } } @@ -589,34 +575,28 @@ bool Kinetics::addReaction(shared_ptr r) // the coefficient for species rk[i] vector_fp rstoich, pstoich; - for (Composition::const_iterator iter = r->reactants.begin(); - iter != r->reactants.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& sp : r->reactants) { + size_t k = kineticsSpeciesIndex(sp.first); rk.push_back(k); - rstoich.push_back(iter->second); + rstoich.push_back(sp.second); } - for (Composition::const_iterator iter = r->products.begin(); - iter != r->products.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& sp : r->products) { + size_t k = kineticsSpeciesIndex(sp.first); pk.push_back(k); - pstoich.push_back(iter->second); + pstoich.push_back(sp.second); } // The default order for each reactant is its stoichiometric coefficient, // which can be overridden by entries in the Reaction.orders map. rorder[i] // is the order for species rk[i]. vector_fp rorder = rstoich; - for (Composition::const_iterator iter = r->orders.begin(); - iter != r->orders.end(); - ++iter) { - size_t k = kineticsSpeciesIndex(iter->first); + for (const auto& sp : r->orders) { + size_t k = kineticsSpeciesIndex(sp.first); // Find the index of species k within rk - vector::iterator rloc = std::find(rk.begin(), rk.end(), k); + auto rloc = std::find(rk.begin(), rk.end(), k); if (rloc != rk.end()) { - rorder[rloc - rk.begin()] = iter->second; + rorder[rloc - rk.begin()] = sp.second; } else { // If the reaction order involves a non-reactant species, add an // extra term to the reactants with zero stoichiometry so that the @@ -624,7 +604,7 @@ bool Kinetics::addReaction(shared_ptr r) // reaction rate. rk.push_back(k); rstoich.push_back(0.0); - rorder.push_back(iter->second); + rorder.push_back(sp.second); } } diff --git a/src/kinetics/Reaction.cpp b/src/kinetics/Reaction.cpp index 416e94f31..f8fd79988 100644 --- a/src/kinetics/Reaction.cpp +++ b/src/kinetics/Reaction.cpp @@ -35,23 +35,19 @@ Reaction::Reaction(int type, const Composition& reactants_, void Reaction::validate() { if (!allow_nonreactant_orders) { - for (Composition::iterator iter = orders.begin(); - iter != orders.end(); - ++iter) { - if (reactants.find(iter->first) == reactants.end()) { + for (const auto& order : orders) { + if (reactants.find(order.first) == reactants.end()) { throw CanteraError("Reaction::validate", "Reaction order " - "specified for non-reactant species '" + iter->first + "'"); + "specified for non-reactant species '" + order.first + "'"); } } } if (!allow_negative_orders) { - for (Composition::iterator iter = orders.begin(); - iter != orders.end(); - ++iter) { - if (iter->second < 0.0) { + for (const auto& order : orders) { + if (order.second < 0.0) { throw CanteraError("Reaction::validate", "Negative reaction " - "order specified for species '" + iter->first + "'"); + "order specified for species '" + order.first + "'"); } } } @@ -60,9 +56,7 @@ void Reaction::validate() std::string Reaction::reactantString() const { std::ostringstream result; - for (Composition::const_iterator iter = reactants.begin(); - iter != reactants.end(); - ++iter) { + for (auto iter = reactants.begin(); iter != reactants.end(); ++iter) { if (iter != reactants.begin()) { result << " + "; } @@ -77,9 +71,7 @@ std::string Reaction::reactantString() const std::string Reaction::productString() const { std::ostringstream result; - for (Composition::const_iterator iter = products.begin(); - iter != products.end(); - ++iter) { + for (auto iter = products.begin(); iter != products.end(); ++iter) { if (iter != products.begin()) { result << " + "; } @@ -487,14 +479,11 @@ void setupInterfaceReaction(InterfaceReaction& R, const XML_Node& rxn_node) R.sticking_species = arr["species"]; } std::vector cov = arr.getChildren("coverage"); - for (std::vector::iterator iter = cov.begin(); - iter != cov.end(); - ++iter) - { - CoverageDependency& cdep = R.coverage_deps[(*iter)->attrib("species")]; - cdep.a = getFloat(**iter, "a", "toSI"); - cdep.m = getFloat(**iter, "m"); - cdep.E = getFloat(**iter, "e", "actEnergy") / GasConstant; + for (const auto& node : cov) { + CoverageDependency& cdep = R.coverage_deps[node->attrib("species")]; + cdep.a = getFloat(*node, "a", "toSI"); + cdep.m = getFloat(*node, "m"); + cdep.E = getFloat(*node, "e", "actEnergy") / GasConstant; } setupElementaryReaction(R, rxn_node); } @@ -544,15 +533,11 @@ void setupElectrochemicalReaction(ElectrochemicalReaction& R, R.orders.clear(); // Reaction orders based on species stoichiometric coefficients R.allow_nonreactant_orders = true; - for (Composition::const_iterator iter = R.reactants.begin(); - iter != R.reactants.end(); - ++iter) { - R.orders[iter->first] += iter->second * (1.0 - R.beta); + for (const auto& sp : R.reactants) { + R.orders[sp.first] += sp.second * (1.0 - R.beta); } - for (Composition::const_iterator iter = R.products.begin(); - iter != R.products.end(); - ++iter) { - R.orders[iter->first] += iter->second * R.beta; + for (const auto& sp : R.products) { + R.orders[sp.first] += sp.second * R.beta; } } @@ -565,24 +550,18 @@ void setupElectrochemicalReaction(ElectrochemicalReaction& R, if (lowercase(rof_node["model"]) == "reactantorders") { R.orders = initial_orders; } else if (lowercase(rof_node["model"]) == "zeroorders") { - for (Composition::const_iterator iter = R.reactants.begin(); - iter != R.reactants.end(); - ++iter) { - R.orders[iter->first] = 0.0; + for (const auto& sp : R.reactants) { + R.orders[sp.first] = 0.0; } } else if (lowercase(rof_node["model"]) == "butlervolmerorders") { // Reaction orders based on provided reaction orders - for (Composition::const_iterator iter = R.reactants.begin(); - iter != R.reactants.end(); - ++iter) { - double c = getValue(initial_orders, iter->first, iter->second); - R.orders[iter->first] += c * (1.0 - R.beta); + for (const auto& sp : R.reactants) { + double c = getValue(initial_orders, sp.first, sp.second); + R.orders[sp.first] += c * (1.0 - R.beta); } - for (Composition::const_iterator iter = R.products.begin(); - iter != R.products.end(); - ++iter) { - double c = getValue(initial_orders, iter->first, iter->second); - R.orders[iter->first] += c * R.beta; + for (const auto& sp : R.products) { + double c = getValue(initial_orders, sp.first, sp.second); + R.orders[sp.first] += c * R.beta; } } else { throw CanteraError("setupElectrochemicalReaction", "unknown model " @@ -594,10 +573,8 @@ void setupElectrochemicalReaction(ElectrochemicalReaction& R, // Override orders based on the node if (rxn_node.hasChild("orders")) { Composition orders = parseCompString(rxn_node.child("orders").value()); - for (Composition::iterator iter = orders.begin(); - iter != orders.end(); - ++iter) { - R.orders[iter->first] = iter->second; + for (const auto& order : orders) { + R.orders[order.first] = order.second; } } } @@ -658,13 +635,8 @@ shared_ptr newReaction(const XML_Node& rxn_node) std::vector > getReactions(const XML_Node& node) { std::vector > all_reactions; - std::vector reaction_nodes = - node.child("reactionData").getChildren("reaction"); - for (std::vector::iterator iter = reaction_nodes.begin(); - iter != reaction_nodes.end(); - ++iter) - { - all_reactions.push_back(newReaction(**iter)); + for (const auto& rxnnode : node.child("reactionData").getChildren("reaction")) { + all_reactions.push_back(newReaction(*rxnnode)); } return all_reactions; } diff --git a/src/kinetics/ReactionPath.cpp b/src/kinetics/ReactionPath.cpp index 78f758dbb..2329a3f9f 100644 --- a/src/kinetics/ReactionPath.cpp +++ b/src/kinetics/ReactionPath.cpp @@ -57,13 +57,12 @@ void Path::writeLabel(ostream& s, doublereal threshold) return; } doublereal v; - map::const_iterator i = m_label.begin(); - for (; i != m_label.end(); ++i) { - v = i->second/m_total; + for (const auto& label : m_label) { + v = label.second/m_total; if (nn == 1) { - s << i->first << "\\l"; + s << label.first << "\\l"; } else if (v > threshold) { - s << i->first; + s << label.first; int percent = int(100*v + 0.5); if (percent < 100) { s << " (" << percent << "%)\\l"; @@ -101,9 +100,8 @@ ReactionPathDiagram::ReactionPathDiagram() ReactionPathDiagram::~ReactionPathDiagram() { // delete the nodes - map::const_iterator i = m_nodes.begin(); - for (; i != m_nodes.end(); ++i) { - delete i->second; + for (const auto& node : m_nodes) { + delete node.second; } // delete the paths @@ -117,27 +115,22 @@ vector_int ReactionPathDiagram::reactions() { size_t i, npaths = nPaths(); doublereal flmax = 0.0, flxratio; - Path* p; for (i = 0; i < npaths; i++) { - p = path(i); + Path* p = path(i); flmax = std::max(p->flow(), flmax); } m_rxns.clear(); for (i = 0; i < npaths; i++) { - p = path(i); - const Path::rxn_path_map& rxns = p->reactionMap(); - Path::rxn_path_map::const_iterator m = rxns.begin(); - for (; m != rxns.end(); ++m) { - flxratio = m->second/flmax; + for (const auto& rxn : path(i)->reactionMap()) { + flxratio = rxn.second/flmax; if (flxratio > threshold) { - m_rxns[m->first] = 1; + m_rxns[rxn.first] = 1; } } } vector_int r; - map::const_iterator begin = m_rxns.begin(); - for (; begin != m_rxns.end(); ++begin) { - r.push_back(int(begin->first)); + for (const auto& rxn : m_rxns) { + r.push_back(int(rxn.first)); } return r; } @@ -375,10 +368,9 @@ void ReactionPathDiagram::exportToDot(ostream& s) } } s.precision(2); - map::const_iterator b = m_nodes.begin(); - for (; b != m_nodes.end(); ++b) { - if (b->second->visible) { - s << "s" << b->first << " [ fontname=\""+m_font+"\", label=\"" << b->second->name + for (const auto& node : m_nodes) { + if (node.second->visible) { + s << "s" << node.first << " [ fontname=\""+m_font+"\", label=\"" << node.second->name << "\"];" << endl; } } diff --git a/src/kinetics/RxnRates.cpp b/src/kinetics/RxnRates.cpp index ecb0223eb..a04e7ab23 100644 --- a/src/kinetics/RxnRates.cpp +++ b/src/kinetics/RxnRates.cpp @@ -74,10 +74,8 @@ Plog::Plog(const std::multimap& rates) size_t j = 0; rates_.reserve(rates.size()); // Insert intermediate pressures - for (std::multimap::const_iterator iter = rates.begin(); - iter != rates.end(); - iter++) { - double logp = std::log(iter->first); + for (const auto& rate : rates) { + double logp = std::log(rate.first); if (pressures_.empty() || pressures_.rbegin()->first != logp) { // starting a new group pressures_[logp] = std::make_pair(j, j+1); @@ -87,7 +85,7 @@ Plog::Plog(const std::multimap& rates) } j++; - rates_.push_back(iter->second); + rates_.push_back(rate.second); } // Duplicate the first and last groups to handle P < P_0 and P > P_N @@ -98,9 +96,7 @@ Plog::Plog(const std::multimap& rates) void Plog::validate(const std::string& equation) { double T[] = {200.0, 500.0, 1000.0, 2000.0, 5000.0, 10000.0}; - for (pressureIter iter = pressures_.begin(); - iter->first < 1000; - iter++) { + for (auto iter = pressures_.begin(); iter->first < 1000; iter++) { update_C(&iter->first); for (size_t i=0; i < 6; i++) { double k = updateRC(log(T[i]), 1.0/T[i]); @@ -121,7 +117,7 @@ std::vector > Plog::rates() const { std::vector > R; // initial preincrement to skip rate for P --> 0 - for (std::map >::const_iterator iter = ++pressures_.begin(); + for (auto iter = ++pressures_.begin(); iter->first < 1000; // skip rates for (P --> infinity) ++iter) { for (size_t i = iter->second.first; diff --git a/src/numerics/funcs.cpp b/src/numerics/funcs.cpp index 2302b10f8..a228a84dd 100644 --- a/src/numerics/funcs.cpp +++ b/src/numerics/funcs.cpp @@ -23,8 +23,7 @@ doublereal linearInterp(doublereal x, const vector_fp& xpts, if (x >= xpts.back()) { return fpts.back(); } - vector_fp::const_iterator loc = - lower_bound(xpts.begin(), xpts.end(), x); + auto loc = lower_bound(xpts.begin(), xpts.end(), x); int iloc = int(loc - xpts.begin()) - 1; doublereal ff = fpts[iloc] + (x - xpts[iloc])*(fpts[iloc + 1] diff --git a/src/oneD/OneDim.cpp b/src/oneD/OneDim.cpp index c070a8df3..5983ca476 100644 --- a/src/oneD/OneDim.cpp +++ b/src/oneD/OneDim.cpp @@ -236,16 +236,15 @@ void OneDim::eval(size_t j, double* x, double* r, doublereal rdt, int count) if (rdt < 0.0) { rdt = m_rdt; } - vector::iterator d; // iterate over the bulk domains first - for (d = m_bulk.begin(); d != m_bulk.end(); ++d) { - (*d)->eval(j, x, r, DATA_PTR(m_mask), rdt); + for (const auto& d : m_bulk) { + d->eval(j, x, r, DATA_PTR(m_mask), rdt); } // then over the connector domains - for (d = m_connect.begin(); d != m_connect.end(); ++d) { - (*d)->eval(j, x, r, DATA_PTR(m_mask), rdt); + for (const auto& d : m_connect) { + d->eval(j, x, r, DATA_PTR(m_mask), rdt); } // increment counter and time diff --git a/src/oneD/refine.cpp b/src/oneD/refine.cpp index 600daf72f..cad46fee9 100644 --- a/src/oneD/refine.cpp +++ b/src/oneD/refine.cpp @@ -213,15 +213,13 @@ void Refiner::show() writelog(string("Refining grid in ") + m_domain->id()+".\n" +" New points inserted after grid points "); - map::const_iterator b = m_loc.begin(); - for (; b != m_loc.end(); ++b) { - writelog(int2str(b->first)+" "); + for (const auto& loc : m_loc) { + writelog(int2str(loc.first)+" "); } writelog("\n"); writelog(" to resolve "); - map::const_iterator bb = m_c.begin(); - for (; bb != m_c.end(); ++bb) { - writelog(string(bb->first)+" "); + for (const auto& c : m_c) { + writelog(string(c.first)+" "); } writelog("\n"); writeline('#', 78); diff --git a/src/thermo/DebyeHuckel.cpp b/src/thermo/DebyeHuckel.cpp index 8f3311137..31beac792 100644 --- a/src/thermo/DebyeHuckel.cpp +++ b/src/thermo/DebyeHuckel.cpp @@ -846,11 +846,9 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) * lack of agreement (HKM -> may be changed in the * future). */ - for (map::const_iterator _b = m.begin(); - _b != m.end(); - ++_b) { - size_t kk = speciesIndex(_b->first); - m_Aionic[kk] = fpValue(_b->second) * Afactor; + for (const auto& b : m) { + size_t kk = speciesIndex(b.first); + m_Aionic[kk] = fpValue(b.second) * Afactor; } } } @@ -917,11 +915,9 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) XML_Node& sIsNode = acNodePtr->child("stoichIsMods"); map msIs; getMap(sIsNode, msIs); - for (map::const_iterator _b = msIs.begin(); - _b != msIs.end(); - ++_b) { - size_t kk = speciesIndex(_b->first); - double val = fpValue(_b->second); + for (const auto& b : msIs) { + size_t kk = speciesIndex(b.first); + double val = fpValue(b.second); m_speciesCharge_Stoich[kk] = val; } } @@ -971,11 +967,9 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) XML_Node& ESTNode = acNodePtr->child("electrolyteSpeciesType"); map msEST; getMap(ESTNode, msEST); - for (map::const_iterator _b = msEST.begin(); - _b != msEST.end(); - ++_b) { - size_t kk = speciesIndex(_b->first); - std::string est = _b->second; + for (const auto& b : msEST) { + size_t kk = speciesIndex(b.first); + std::string est = b.second; if ((m_electrolyteSpeciesType[kk] = interp_est(est)) == -1) { throw CanteraError("DebyeHuckel:initThermoXML", "Bad electrolyte type: " + est); diff --git a/src/thermo/GeneralSpeciesThermo.cpp b/src/thermo/GeneralSpeciesThermo.cpp index a7e9cfc8d..cb7fe6502 100644 --- a/src/thermo/GeneralSpeciesThermo.cpp +++ b/src/thermo/GeneralSpeciesThermo.cpp @@ -31,14 +31,12 @@ GeneralSpeciesThermo::GeneralSpeciesThermo(const GeneralSpeciesThermo& b) : { m_sp.clear(); // Copy SpeciesThermoInterpTypes from 'b' - for (STIT_map::const_iterator iter = b.m_sp.begin(); - iter != b.m_sp.end(); - iter++) { - for (size_t k = 0; k < iter->second.size(); k++) { - size_t i = iter->second[k].first; + for (const auto& sp : b.m_sp) { + for (size_t k = 0; k < sp.second.size(); k++) { + size_t i = sp.second[k].first; shared_ptr spec( - iter->second[k].second->duplMyselfAsSpeciesThermoInterpType()); - m_sp[iter->first].push_back(std::make_pair(i, spec)); + sp.second[k].second->duplMyselfAsSpeciesThermoInterpType()); + m_sp[sp.first].push_back(std::make_pair(i, spec)); } } } @@ -53,14 +51,12 @@ GeneralSpeciesThermo::operator=(const GeneralSpeciesThermo& b) SpeciesThermo::operator=(b); m_sp.clear(); // Copy SpeciesThermoInterpType objects from 'b' - for (STIT_map::const_iterator iter = b.m_sp.begin(); - iter != b.m_sp.end(); - iter++) { - for (size_t k = 0; k < iter->second.size(); k++) { - size_t i = iter->second[k].first; + for (const auto& sp : b.m_sp) { + for (size_t k = 0; k < sp.second.size(); k++) { + size_t i = sp.second[k].first; shared_ptr spec( - iter->second[k].second->duplMyselfAsSpeciesThermoInterpType()); - m_sp[iter->first].push_back(std::make_pair(i, spec)); + sp.second[k].second->duplMyselfAsSpeciesThermoInterpType()); + m_sp[sp.first].push_back(std::make_pair(i, spec)); } } @@ -118,8 +114,8 @@ void GeneralSpeciesThermo::update_one(size_t k, doublereal t, doublereal* cp_R, void GeneralSpeciesThermo::update(doublereal t, doublereal* cp_R, doublereal* h_RT, doublereal* s_R) const { - STIT_map::const_iterator iter = m_sp.begin(); - tpoly_map::iterator jter = m_tpoly.begin(); + auto iter = m_sp.begin(); + auto jter = m_tpoly.begin(); for (; iter != m_sp.end(); iter++, jter++) { const std::vector& species = iter->second; double* tpoly = &jter->second[0]; diff --git a/src/thermo/HMWSoln_input.cpp b/src/thermo/HMWSoln_input.cpp index 5c2bdb638..7dd6f38df 100644 --- a/src/thermo/HMWSoln_input.cpp +++ b/src/thermo/HMWSoln_input.cpp @@ -1418,12 +1418,10 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) XML_Node& sIsNode = acNodePtr->child("stoichIsMods"); map msIs; getMap(sIsNode, msIs); - for (map::const_iterator _b = msIs.begin(); - _b != msIs.end(); - ++_b) { - size_t kk = speciesIndex(_b->first); + for (const auto& b : msIs) { + size_t kk = speciesIndex(b.first); if (kk != npos) { - double val = fpValue(_b->second); + double val = fpValue(b.second); m_speciesCharge_Stoich[kk] = val; } } @@ -1508,12 +1506,10 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) XML_Node& ESTNode = acNodePtr->child("electrolyteSpeciesType"); map msEST; getMap(ESTNode, msEST); - for (map::const_iterator _b = msEST.begin(); - _b != msEST.end(); - ++_b) { - size_t kk = speciesIndex(_b->first); + for (const auto& b : msEST) { + size_t kk = speciesIndex(b.first); if (kk != npos) { - string est = _b->second; + string est = b.second; if ((m_electrolyteSpeciesType[kk] = interp_est(est)) == -1) { throw CanteraError("HMWSoln::initThermoXML", "Bad electrolyte type: " + est); diff --git a/src/thermo/Phase.cpp b/src/thermo/Phase.cpp index 00655f611..b60199d3e 100644 --- a/src/thermo/Phase.cpp +++ b/src/thermo/Phase.cpp @@ -371,14 +371,12 @@ void Phase::setMoleFractions_NoNorm(const doublereal* const x) void Phase::setMoleFractionsByName(const compositionMap& xMap) { vector_fp mf(m_kk, 0.0); - for (compositionMap::const_iterator iter = xMap.begin(); - iter != xMap.end(); - ++iter) { + for (const auto& sp : xMap) { try { - mf[getValue(m_speciesIndices, iter->first)] = iter->second; + mf[getValue(m_speciesIndices, sp.first)] = sp.second; } catch (std::out_of_range&) { throw CanteraError("Phase::setMoleFractionsByName", - "Unknown species '{}'", iter->first); + "Unknown species '{}'", sp.first); } } setMoleFractions(&mf[0]); @@ -417,14 +415,12 @@ void Phase::setMassFractions_NoNorm(const doublereal* const y) void Phase::setMassFractionsByName(const compositionMap& yMap) { vector_fp mf(m_kk, 0.0); - for (compositionMap::const_iterator iter = yMap.begin(); - iter != yMap.end(); - ++iter) { + for (const auto& sp : yMap) { try { - mf[getValue(m_speciesIndices, iter->first)] = iter->second; + mf[getValue(m_speciesIndices, sp.first)] = sp.second; } catch (std::out_of_range&) { throw CanteraError("Phase::setMassFractionsByName", - "Unknown species '{}'", iter->first); + "Unknown species '{}'", sp.first); } } setMassFractions(&mf[0]); @@ -710,9 +706,7 @@ size_t Phase::addElement(const std::string& symbol, doublereal weight, } // Check for duplicates - vector::const_iterator iter = find(m_elementNames.begin(), - m_elementNames.end(), - symbol); + auto iter = find(m_elementNames.begin(), m_elementNames.end(), symbol); if (iter != m_elementNames.end()) { size_t m = iter - m_elementNames.begin(); if (m_atomicWeights[m] != weight) { @@ -755,29 +749,27 @@ size_t Phase::addElement(const std::string& symbol, doublereal weight, bool Phase::addSpecies(shared_ptr spec) { m_species[spec->name] = spec; vector_fp comp(nElements()); - for (map::const_iterator iter = spec->composition.begin(); - iter != spec->composition.end(); - iter++) { - size_t m = elementIndex(iter->first); + for (const auto& elem : spec->composition) { + size_t m = elementIndex(elem.first); if (m == npos) { // Element doesn't exist in this phase switch (m_undefinedElementBehavior) { case UndefElement::ignore: return false; case UndefElement::add: - addElement(iter->first); + addElement(elem.first); comp.resize(nElements()); - m = elementIndex(iter->first); + m = elementIndex(elem.first); break; case UndefElement::error: default: throw CanteraError("Phase::addSpecies", "Species '{}' contains an undefined element '{}'.", - spec->name, iter->first); + spec->name, elem.first); } } - comp[m] = iter->second; + comp[m] = elem.second; } m_speciesNames.push_back(spec->name); diff --git a/src/thermo/Species.cpp b/src/thermo/Species.cpp index 713f62a16..bd78517f0 100644 --- a/src/thermo/Species.cpp +++ b/src/thermo/Species.cpp @@ -82,14 +82,8 @@ shared_ptr newSpecies(const XML_Node& species_node) std::vector > getSpecies(const XML_Node& node) { std::vector > all_species; - std::vector species_nodes = - node.child("speciesData").getChildren("species"); - - for (std::vector::iterator iter = species_nodes.begin(); - iter != species_nodes.end(); - ++iter) - { - all_species.push_back(newSpecies(**iter)); + for (const auto& spnode : node.child("speciesData").getChildren("species")) { + all_species.push_back(newSpecies(*spnode)); } return all_species; } diff --git a/src/thermo/ThermoFactory.cpp b/src/thermo/ThermoFactory.cpp index 8bfc2c527..26a428e56 100644 --- a/src/thermo/ThermoFactory.cpp +++ b/src/thermo/ThermoFactory.cpp @@ -292,7 +292,7 @@ static void formSpeciesXMLNodeList(std::vector &spDataNodeList, if (!skip) { declared[stemp] = true; // Find the species in the database by name. - std::map::iterator iter = speciesNodes.find(stemp); + auto iter = speciesNodes.find(stemp); if (iter == speciesNodes.end()) { throw CanteraError("importPhase","no data for species, \"" + stemp + "\""); diff --git a/src/transport/GasTransport.cpp b/src/transport/GasTransport.cpp index cd56de129..ce5485777 100644 --- a/src/transport/GasTransport.cpp +++ b/src/transport/GasTransport.cpp @@ -538,7 +538,7 @@ void GasTransport::fitCollisionIntegrals(MMCollisionInt& integrals) // the list of delta* values for which fits have been done. // 'find' returns a pointer to end() if not found - vector_fp::iterator dptr = find(fitlist.begin(), fitlist.end(), dstar); + auto dptr = find(fitlist.begin(), fitlist.end(), dstar); if (dptr == fitlist.end()) { vector_fp ca(degree+1), cb(degree+1), cc(degree+1); vector_fp co22(degree+1); diff --git a/src/transport/TransportData.cpp b/src/transport/TransportData.cpp index f5d671ca8..d436c7b3a 100644 --- a/src/transport/TransportData.cpp +++ b/src/transport/TransportData.cpp @@ -49,10 +49,8 @@ void GasTransportData::setCustomaryUnits( void GasTransportData::validate(const Species& sp) { double nAtoms = 0; - for (compositionMap::const_iterator iter = sp.composition.begin(); - iter != sp.composition.end(); - ++iter) { - nAtoms += iter->second; + for (const auto& elem : sp.composition) { + nAtoms += elem.second; } if (geometry == "atom") { diff --git a/src/transport/TransportFactory.cpp b/src/transport/TransportFactory.cpp index e7778c9f7..a3ae16f66 100644 --- a/src/transport/TransportFactory.cpp +++ b/src/transport/TransportFactory.cpp @@ -56,10 +56,8 @@ TransportFactory::TransportFactory() m_models["User"] = cUserTransport; m_models["HighP"] = cHighP; m_models["None"] = None; - for (map::iterator iter = m_models.begin(); - iter != m_models.end(); - iter++) { - m_modelNames[iter->second] = iter->first; + for (const auto& model : m_models) { + m_modelNames[model.second] = model.first; } m_tranPropMap["viscosity"] = TP_VISCOSITY; @@ -360,7 +358,6 @@ void TransportFactory::getLiquidSpeciesTransportData(const std::vector datatable; - std::map::iterator it; // Store the number of species in the phase size_t nsp = trParam.nsp_; @@ -464,7 +461,7 @@ void TransportFactory::getLiquidSpeciesTransportData(const std::vector::iterator it = m_LTImodelMap.find(modelName); + auto it = m_LTImodelMap.find(modelName); if (it == m_LTImodelMap.end()) { throw CanteraError("TransportFactory::getLiquidInteractionsTransportData", "Unknown compositionDependence string: " + modelName); diff --git a/src/zeroD/ReactorNet.cpp b/src/zeroD/ReactorNet.cpp index 4ec88dff3..d8a9fac91 100644 --- a/src/zeroD/ReactorNet.cpp +++ b/src/zeroD/ReactorNet.cpp @@ -47,14 +47,10 @@ void ReactorNet::initialize() r.initialize(m_time); nv = r.neq(); m_nparams.push_back(r.nSensParams()); - std::vector > sens_objs = r.getSensitivityOrder(); - for (size_t i = 0; i < sens_objs.size(); i++) { - std::map& s = m_sensOrder[sens_objs[i]]; - for (std::map::iterator iter = s.begin(); - iter != s.end(); - ++iter) { - m_sensIndex.resize(std::max(iter->second + 1, m_sensIndex.size())); - m_sensIndex[iter->second] = sensParamNumber++; + for (const auto& sens_obj : r.getSensitivityOrder()) { + for (const auto& order : m_sensOrder[sens_obj]) { + m_sensIndex.resize(std::max(order.second + 1, m_sensIndex.size())); + m_sensIndex[order.second] = sensParamNumber++; } } m_nv += nv;