From 0647823ada92e8c6fcfcec14e61864b1d6b990ab Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Sat, 17 Oct 2015 15:17:57 -0400 Subject: [PATCH] Replace DATA_PTR macro with calls to data() --- include/cantera/base/ct_defs.h | 5 -- include/cantera/numerics/ResidEval.h | 2 +- include/cantera/oneD/Sim1D.h | 8 +-- include/cantera/zeroD/ReactorBase.h | 2 +- samples/cxx/bvp/BoundaryValueProblem.h | 2 +- samples/cxx/flamespeed/flamespeed.cpp | 6 +-- src/equil/BasisOptimize.cpp | 2 +- src/equil/ChemEquil.cpp | 44 +++++++-------- src/equil/MultiPhase.cpp | 17 +++--- src/equil/MultiPhaseEquil.cpp | 30 +++++------ src/equil/vcs_MultiPhaseEquil.cpp | 2 +- src/equil/vcs_phaseStability.cpp | 2 +- src/equil/vcs_setMolesLinProg.cpp | 4 -- src/kinetics/ImplicitSurfChem.cpp | 8 +-- src/kinetics/ReactionPath.cpp | 4 +- src/kinetics/solveSP.cpp | 46 ++++++++-------- src/numerics/BandMatrix.cpp | 10 ++-- src/numerics/CVodeInt.cpp | 8 +-- src/numerics/CVodesIntegrator.cpp | 6 +-- src/numerics/SquareMatrix.cpp | 20 +++---- src/oneD/MultiJac.cpp | 2 +- src/oneD/MultiNewton.cpp | 2 +- src/oneD/OneDim.cpp | 10 ++-- src/oneD/Sim1D.cpp | 29 +++++----- src/oneD/StFlow.cpp | 33 ++++++------ src/oneD/boundaries1D.cpp | 14 ++--- src/thermo/DebyeHuckel.cpp | 8 +-- src/thermo/GibbsExcessVPSSTP.cpp | 14 ++--- src/thermo/HMWSoln.cpp | 22 ++++---- src/thermo/HMWSoln_input.cpp | 4 +- src/thermo/IdealMolalSoln.cpp | 12 ++--- src/thermo/IdealSolidSolnPhase.cpp | 9 ++-- src/thermo/IonsFromNeutralVPSSTP.cpp | 38 ++++++------- src/thermo/LatticeSolidPhase.cpp | 10 ++-- src/thermo/MaskellSolidSolnPhase.cpp | 3 +- src/thermo/MixtureFugacityTP.cpp | 16 +++--- src/thermo/MolalityVPSSTP.cpp | 10 ++-- src/thermo/PDSS_IonsFromNeutral.cpp | 20 +++---- src/thermo/RedlichKwongMFTP.cpp | 10 ++-- src/thermo/SemiconductorPhase.cpp | 2 +- src/thermo/SingleSpeciesTP.cpp | 3 +- src/thermo/SurfPhase.cpp | 13 +++-- src/thermo/ThermoPhase.cpp | 10 ++-- src/transport/DustyGasTransport.cpp | 8 +-- src/transport/GasTransport.cpp | 32 ++++++----- src/transport/HighPressureGasTransport.cpp | 2 +- src/transport/LiquidTransport.cpp | 12 ++--- src/transport/MMCollisionInt.cpp | 54 ++++++++----------- src/transport/MixTransport.cpp | 6 +-- src/transport/MultiTransport.cpp | 44 +++++++-------- src/transport/SimpleTransport.cpp | 14 ++--- src/zeroD/FlowReactor.cpp | 2 +- src/zeroD/ReactorNet.cpp | 4 +- src/zeroD/Wall.cpp | 8 +-- .../ChemEquil_ionizedGas/ionizedGasEquil.cpp | 2 +- .../VCSnonideal/NaCl_equil/nacl_equil.cpp | 4 +- .../dustyGasTransportTest.cpp | 2 +- .../mixGasTransport/mixGasTransport.cpp | 16 +++--- .../multiGasTransport/multiGasTransport.cpp | 14 ++--- test_problems/surfkin/surfdemo.cpp | 5 +- 60 files changed, 360 insertions(+), 391 deletions(-) diff --git a/include/cantera/base/ct_defs.h b/include/cantera/base/ct_defs.h index 39ef19113..af0baa1c8 100644 --- a/include/cantera/base/ct_defs.h +++ b/include/cantera/base/ct_defs.h @@ -32,11 +32,6 @@ namespace Cantera { -//! Creates a pointer to the start of the raw data for a vector -#ifndef DATA_PTR -#define DATA_PTR(vec) &vec[0] -#endif - using std::shared_ptr; using std::make_shared; diff --git a/include/cantera/numerics/ResidEval.h b/include/cantera/numerics/ResidEval.h index d59d2a3ba..08285558a 100644 --- a/include/cantera/numerics/ResidEval.h +++ b/include/cantera/numerics/ResidEval.h @@ -101,7 +101,7 @@ public: for (int i = 0; i < nn; i++) { ydot[i] = (y[i] - yold[i]) / deltaT; } - return eval(t, y, DATA_PTR(ydot), r); + return eval(t, y, ydot.data(), r); } //! Fill in the initial conditions diff --git a/include/cantera/oneD/Sim1D.h b/include/cantera/oneD/Sim1D.h index 793853d15..23ccb5fb4 100644 --- a/include/cantera/oneD/Sim1D.h +++ b/include/cantera/oneD/Sim1D.h @@ -100,7 +100,7 @@ public: void showSolution(); const doublereal* solution() { - return DATA_PTR(m_x); + return m_x.data(); } void setTimeStep(doublereal stepsize, size_t n, integer* tsteps); @@ -108,7 +108,7 @@ public: void solve(int loglevel = 0, bool refine_grid = true); void eval(doublereal rdt=-1.0, int count = 1) { - OneDim::eval(npos, DATA_PTR(m_x), DATA_PTR(m_xnew), rdt, count); + OneDim::eval(npos, m_x.data(), m_xnew.data(), rdt, count); } /// Refine the grid in all domains. @@ -140,11 +140,11 @@ public: void getInitialSoln(); void setSolution(const doublereal* soln) { - std::copy(soln, soln + m_x.size(), DATA_PTR(m_x)); + std::copy(soln, soln + m_x.size(), m_x.data()); } const doublereal* solution() const { - return DATA_PTR(m_x); + return m_x.data(); } doublereal jacobian(int i, int j); diff --git a/include/cantera/zeroD/ReactorBase.h b/include/cantera/zeroD/ReactorBase.h index 124647495..d0b53e123 100644 --- a/include/cantera/zeroD/ReactorBase.h +++ b/include/cantera/zeroD/ReactorBase.h @@ -196,7 +196,7 @@ public: //! Return the vector of species mass fractions. const doublereal* massFractions() const { - return DATA_PTR(m_state) + 2; + return m_state.data() + 2; } //! Return the mass fraction of the *k*-th species. diff --git a/samples/cxx/bvp/BoundaryValueProblem.h b/samples/cxx/bvp/BoundaryValueProblem.h index f4f6f7fbb..26e49f05f 100644 --- a/samples/cxx/bvp/BoundaryValueProblem.h +++ b/samples/cxx/bvp/BoundaryValueProblem.h @@ -74,7 +74,7 @@ public: for (iz = 0; iz < np; iz++) { z[iz] = zmin + iz*(zmax - zmin)/(np-1); } - setupGrid(np, DATA_PTR(z)); + setupGrid(np, z.data()); resize(nv, np); } diff --git a/samples/cxx/flamespeed/flamespeed.cpp b/samples/cxx/flamespeed/flamespeed.cpp index 405db1356..4bc29dc77 100644 --- a/samples/cxx/flamespeed/flamespeed.cpp +++ b/samples/cxx/flamespeed/flamespeed.cpp @@ -43,7 +43,7 @@ int flamespeed(double phi) } } - gas.setState_TPX(temp,pressure,DATA_PTR(x)); + gas.setState_TPX(temp,pressure,x.data()); doublereal rho_in=gas.density(); vector_fp yin(nsp); @@ -95,7 +95,7 @@ int flamespeed(double phi) Inlet1D inlet; - inlet.setMoleFractions(DATA_PTR(x)); + inlet.setMoleFractions(x.data()); doublereal mdot=uin*rho_in; inlet.setMdot(mdot); inlet.setTemperature(temp); @@ -145,7 +145,7 @@ int flamespeed(double phi) flame.setInitialGuess(gas.speciesName(i),locs,value); } - inlet.setMoleFractions(DATA_PTR(x)); + inlet.setMoleFractions(x.data()); inlet.setMdot(mdot); inlet.setTemperature(temp); diff --git a/src/equil/BasisOptimize.cpp b/src/equil/BasisOptimize.cpp index 777bd30ec..dca5e883e 100644 --- a/src/equil/BasisOptimize.cpp +++ b/src/equil/BasisOptimize.cpp @@ -117,7 +117,7 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, * Create an array of mole numbers */ vector_fp molNum(nspecies,0.0); - mphase->getMoles(DATA_PTR(molNum)); + mphase->getMoles(molNum.data()); /* * Other workspace diff --git a/src/equil/ChemEquil.cpp b/src/equil/ChemEquil.cpp index cdaea65c5..62ae84e58 100644 --- a/src/equil/ChemEquil.cpp +++ b/src/equil/ChemEquil.cpp @@ -152,14 +152,14 @@ void ChemEquil::setToEquilState(thermo_t& s, // Call the phase-specific method to set the phase to the // equilibrium state with the specified species chemical // potentials. - s.setToEquilState(DATA_PTR(m_mu_RT)); + s.setToEquilState(m_mu_RT.data()); update(s); } void ChemEquil::update(const thermo_t& s) { // get the mole fractions, temperature, and density - s.getMoleFractions(DATA_PTR(m_molefractions)); + s.getMoleFractions(m_molefractions.data()); m_temp = s.temperature(); m_dens = s.density(); @@ -238,12 +238,12 @@ int ChemEquil::estimateElementPotentials(thermo_t& s, vector_fp& lambda_RT, vector_fp mu_RT(m_kk, 0.0); vector_fp xMF_est(m_kk, 0.0); - s.getMoleFractions(DATA_PTR(xMF_est)); + s.getMoleFractions(xMF_est.data()); for (size_t n = 0; n < s.nSpecies(); n++) { xMF_est[n] = std::max(xMF_est[n], 1e-20); } - s.setMoleFractions(DATA_PTR(xMF_est)); - s.getMoleFractions(DATA_PTR(xMF_est)); + s.setMoleFractions(xMF_est.data()); + s.getMoleFractions(xMF_est.data()); MultiPhase mp; mp.addPhase(&s, 1.0); @@ -259,13 +259,13 @@ int ChemEquil::estimateElementPotentials(thermo_t& s, vector_fp& lambda_RT, m_component[m] = k; xMF_est[k] = std::max(xMF_est[k], 1e-8); } - s.setMoleFractions(DATA_PTR(xMF_est)); - s.getMoleFractions(DATA_PTR(xMF_est)); + s.setMoleFractions(xMF_est.data()); + s.getMoleFractions(xMF_est.data()); ElemRearrange(m_nComponents, elMolesGoal, &mp, m_orderVectorSpecies, m_orderVectorElements); - s.getChemPotentials(DATA_PTR(mu_RT)); + s.getChemPotentials(mu_RT.data()); doublereal rrt = 1.0/(GasConstant* s.temperature()); scale(mu_RT.begin(), mu_RT.end(), mu_RT.begin(), rrt); @@ -292,7 +292,7 @@ int ChemEquil::estimateElementPotentials(thermo_t& s, vector_fp& lambda_RT, b[m] = mu_RT[m_component[m]]; } - int info = solve(aa, DATA_PTR(b)); + int info = solve(aa, b.data()); if (info) { info = -2; } @@ -449,7 +449,7 @@ int ChemEquil::equilibrate(thermo_t& s, const char* XYstr, for (size_t k = 0; k < m_kk; k++) { xmm[k] = s.moleFraction(k) + 1.0E-32; } - s.setMoleFractions(DATA_PTR(xmm)); + s.setMoleFractions(xmm.data()); /* * Update the internally stored values of m_temp, @@ -540,7 +540,7 @@ int ChemEquil::equilibrate(thermo_t& s, const char* XYstr, * itself. Or else, create our own estimate. */ if (useThermoPhaseElementPotentials) { - bool haveEm = s.getElementPotentials(DATA_PTR(x)); + bool haveEm = s.getElementPotentials(x.data()); if (haveEm) { if (s.temperature() < 100.) { writelog("we are here {:g}\n", s.temperature()); @@ -709,7 +709,7 @@ int ChemEquil::equilibrate(thermo_t& s, const char* XYstr, * Solve the system */ try { - info = solve(jac, DATA_PTR(res_trial)); + info = solve(jac, res_trial.data()); } catch (CanteraError& err) { err.save(); s.restoreState(state); @@ -912,9 +912,9 @@ double ChemEquil::calcEmoles(thermo_t& s, vector_fp& x, const double& n_t, * previous solution state. */ vector_fp actCoeff(m_kk, 1.0); - s.setMoleFractions(DATA_PTR(Xmol_i_calc)); + s.setMoleFractions(Xmol_i_calc.data()); s.setPressure(pressureConst); - s.getActivityCoefficients(DATA_PTR(actCoeff)); + s.getActivityCoefficients(actCoeff.data()); for (size_t k = 0; k < m_kk; k++) { tmp = - (m_muSS_RT[k] + log(actCoeff[k])); @@ -961,7 +961,7 @@ int ChemEquil::estimateEP_Brinkley(thermo_t& s, vector_fp& x, vector_fp Xmol_i_calc(m_kk,0.0); double beta = 1.0; - s.getMoleFractions(DATA_PTR(n_i)); + s.getMoleFractions(n_i.data()); double pressureConst = s.pressure(); copy(n_i.begin(), n_i.end(), Xmol_i_calc.begin()); @@ -974,7 +974,7 @@ int ChemEquil::estimateEP_Brinkley(thermo_t& s, vector_fp& x, * at their standard states of solution at the current T and P * of the solution. */ - s.getGibbs_RT(DATA_PTR(m_muSS_RT)); + s.getGibbs_RT(m_muSS_RT.data()); vector_fp eMolesCalc(m_mm, 0.0); vector_fp eMolesFix(m_mm, 0.0); @@ -997,9 +997,9 @@ int ChemEquil::estimateEP_Brinkley(thermo_t& s, vector_fp& x, double n_t = 0.0; double sum2 = 0.0; double nAtomsMax = 1.0; - s.setMoleFractions(DATA_PTR(Xmol_i_calc)); + s.setMoleFractions(Xmol_i_calc.data()); s.setPressure(pressureConst); - s.getActivityCoefficients(DATA_PTR(actCoeff)); + s.getActivityCoefficients(actCoeff.data()); for (k = 0; k < m_kk; k++) { tmp = - (m_muSS_RT[k] + log(actCoeff[k])); sum2 = 0.0; @@ -1388,7 +1388,7 @@ int ChemEquil::estimateEP_Brinkley(thermo_t& s, vector_fp& x, } try { - solve(a1, DATA_PTR(resid)); + solve(a1, resid.data()); } catch (CanteraError& err) { err.save(); if (DEBUG_MODE_ENABLED) { @@ -1460,7 +1460,7 @@ void ChemEquil::adjustEloc(thermo_t& s, vector_fp& elMolesGoal) if (fabs(elMolesGoal[m_eloc]) > 1.0E-20) { return; } - s.getMoleFractions(DATA_PTR(m_molefractions)); + s.getMoleFractions(m_molefractions.data()); size_t k; size_t maxPosEloc = npos; size_t maxNegEloc = npos; @@ -1520,8 +1520,8 @@ void ChemEquil::adjustEloc(thermo_t& s, vector_fp& elMolesGoal) } } - s.setMoleFractions(DATA_PTR(m_molefractions)); - s.getMoleFractions(DATA_PTR(m_molefractions)); + s.setMoleFractions(m_molefractions.data()); + s.getMoleFractions(m_molefractions.data()); } } // namespace diff --git a/src/equil/MultiPhase.cpp b/src/equil/MultiPhase.cpp index 035f35424..49e9e6f67 100644 --- a/src/equil/MultiPhase.cpp +++ b/src/equil/MultiPhase.cpp @@ -223,7 +223,7 @@ ThermoPhase& MultiPhase::phase(size_t n) init(); } m_phase[n]->setTemperature(m_temp); - m_phase[n]->setMoleFractions_NoNorm(DATA_PTR(m_moleFractions) + m_spstart[n]); + m_phase[n]->setMoleFractions_NoNorm(&m_moleFractions[m_spstart[n]]); m_phase[n]->setPressure(m_press); return *m_phase[n]; } @@ -425,7 +425,7 @@ void MultiPhase::setMolesByName(const compositionMap& xMap) for (size_t k = 0; k < kk; k++) { moles[k] = std::max(getValue(xMap, speciesName(k), 0.0), 0.0); } - setMoles(DATA_PTR(moles)); + setMoles(moles.data()); } void MultiPhase::setMolesByName(const std::string& x) @@ -473,9 +473,9 @@ void MultiPhase::setMoles(const doublereal* n) if (nsp > 1) { if (phasemoles > 0.0) { p->setState_TPX(m_temp, m_press, n + loc); - p->getMoleFractions(DATA_PTR(m_moleFractions) + loc); + p->getMoleFractions(&m_moleFractions[loc]); } else { - p->getMoleFractions(DATA_PTR(m_moleFractions) + loc); + p->getMoleFractions(&m_moleFractions[loc]); } } else { m_moleFractions[loc] = 1.0; @@ -487,10 +487,10 @@ void MultiPhase::setMoles(const doublereal* n) void MultiPhase::addSpeciesMoles(const int indexS, const doublereal addedMoles) { vector_fp tmpMoles(m_nsp, 0.0); - getMoles(DATA_PTR(tmpMoles)); + getMoles(tmpMoles.data()); tmpMoles[indexS] += addedMoles; tmpMoles[indexS] = std::max(tmpMoles[indexS], 0.0); - setMoles(DATA_PTR(tmpMoles)); + setMoles(tmpMoles.data()); } void MultiPhase::setState_TP(const doublereal T, const doublereal Pres) @@ -912,7 +912,7 @@ void MultiPhase::uploadMoleFractionsFromPhases() size_t ip, loc = 0; for (ip = 0; ip < m_np; ip++) { ThermoPhase* p = m_phase[ip]; - p->getMoleFractions(DATA_PTR(m_moleFractions) + loc); + p->getMoleFractions(&m_moleFractions[loc]); loc += p->nSpecies(); } calcElemAbundances(); @@ -923,9 +923,8 @@ void MultiPhase::updatePhases() const size_t p, nsp, loc = 0; for (p = 0; p < m_np; p++) { nsp = m_phase[p]->nSpecies(); - const doublereal* x = DATA_PTR(m_moleFractions) + loc; + m_phase[p]->setState_TPX(m_temp, m_press, &m_moleFractions[loc]); loc += nsp; - m_phase[p]->setState_TPX(m_temp, m_press, x); m_temp_OK[p] = true; if (m_temp < m_phase[p]->minTemp() || m_temp > m_phase[p]->maxTemp()) { m_temp_OK[p] = false; diff --git a/src/equil/MultiPhaseEquil.cpp b/src/equil/MultiPhaseEquil.cpp index f719e54c2..adf6e8eb3 100644 --- a/src/equil/MultiPhaseEquil.cpp +++ b/src/equil/MultiPhaseEquil.cpp @@ -144,7 +144,7 @@ MultiPhaseEquil::MultiPhaseEquil(MultiPhase* mix, bool start, int loglevel) : m_ // species has precisely zero moles. vector_fp dxi(nFree(), 1.0e-20); if (!dxi.empty()) { - multiply(m_N, DATA_PTR(dxi), DATA_PTR(m_work)); + multiply(m_N, dxi.data(), m_work.data()); unsort(m_work); } @@ -193,7 +193,7 @@ void MultiPhaseEquil::updateMixMoles() for (k = 0; k < m_nsp; k++) { m_work3[m_species[k]] = m_moles[k]; } - m_mix->setMoles(DATA_PTR(m_work3)); + m_mix->setMoles(m_work3.data()); } void MultiPhaseEquil::finish() @@ -203,14 +203,14 @@ void MultiPhaseEquil::finish() for (k = 0; k < m_nsp; k++) { m_work3[m_species[k]] = (m_moles[k] > 0.0 ? m_moles[k] : 0.0); } - m_mix->setMoles(DATA_PTR(m_work3)); + m_mix->setMoles(m_work3.data()); } int MultiPhaseEquil::setInitialMoles(int loglevel) { size_t ik, j; double not_mu = 1.0e12; - m_mix->getValidChemPotentials(not_mu, DATA_PTR(m_mu), true); + m_mix->getValidChemPotentials(not_mu, m_mu.data(), true); doublereal dg_rt; int idir; double nu; @@ -460,7 +460,7 @@ doublereal MultiPhaseEquil::stepComposition(int loglevel) // compute the mole fraction changes. if (nFree()) { - multiply(m_N, DATA_PTR(m_dxi), DATA_PTR(m_work)); + multiply(m_N, m_dxi.data(), m_work.data()); } // change to sequential form @@ -520,7 +520,7 @@ doublereal MultiPhaseEquil::stepComposition(int loglevel) // current direction. If it is positive, then we have overshot // the minimum. In this case, interpolate back. doublereal not_mu = 1.0e12; - m_mix->getValidChemPotentials(not_mu, DATA_PTR(m_mu)); + m_mix->getValidChemPotentials(not_mu, m_mu.data()); doublereal grad1 = 0.0; for (k = 0; k < m_nsp; k++) { grad1 += m_work[k] * m_mu[m_species[k]]; @@ -546,7 +546,7 @@ doublereal MultiPhaseEquil::computeReactionSteps(vector_fp& dxi) dxi.resize(nFree()); computeN(); doublereal not_mu = 1.0e12; - m_mix->getValidChemPotentials(not_mu, DATA_PTR(m_mu)); + m_mix->getValidChemPotentials(not_mu, m_mu.data()); for (j = 0; j < nFree(); j++) { // get stoichiometric vector @@ -725,7 +725,7 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile) nSpecies = tref.nSpecies(); VolPM.resize(nSpecies, 0.0); tref.getMoleFractions(&mf[istart]); - tref.getPartialMolarVolumes(DATA_PTR(VolPM)); + tref.getPartialMolarVolumes(VolPM.data()); double TMolesPhase = phaseMoles(iphase); double VolPhaseVolumes = 0.0; @@ -756,11 +756,11 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile) VolPM.resize(nSpecies, 0.0); molalities.resize(nSpecies, 0.0); int actConvention = tp->activityConvention(); - tp->getActivities(DATA_PTR(activity)); - tp->getActivityCoefficients(DATA_PTR(ac)); - tp->getStandardChemPotentials(DATA_PTR(mu0)); - tp->getPartialMolarVolumes(DATA_PTR(VolPM)); - tp->getChemPotentials(DATA_PTR(mu)); + tp->getActivities(activity.data()); + tp->getActivityCoefficients(ac.data()); + tp->getStandardChemPotentials(mu0.data()); + tp->getPartialMolarVolumes(VolPM.data()); + tp->getChemPotentials(mu.data()); double VolPhaseVolumes = 0.0; for (k = 0; k < nSpecies; k++) { VolPhaseVolumes += VolPM[k] * mf[istart + k]; @@ -769,8 +769,8 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile) vol += VolPhaseVolumes; if (actConvention == 1) { MolalityVPSSTP* mTP = static_cast(tp); - mTP->getMolalities(DATA_PTR(molalities)); - tp->getChemPotentials(DATA_PTR(mu)); + mTP->getMolalities(molalities.data()); + tp->getChemPotentials(mu.data()); if (iphase == 0) { fprintf(FP," Name, Phase, PhaseMoles, Mole_Fract, " diff --git a/src/equil/vcs_MultiPhaseEquil.cpp b/src/equil/vcs_MultiPhaseEquil.cpp index 484ea8192..c1aae9224 100644 --- a/src/equil/vcs_MultiPhaseEquil.cpp +++ b/src/equil/vcs_MultiPhaseEquil.cpp @@ -1306,7 +1306,7 @@ int vcs_MultiPhaseEquil::determine_PhaseStability(int iph, double& funcStab, int * states. */ m_mix->uploadMoleFractionsFromPhases(); - m_mix->getChemPotentials(DATA_PTR(m_vprob.m_gibbsSpecies)); + m_mix->getChemPotentials(m_vprob.m_gibbsSpecies.data()); double te = tickTock.secondsWC(); if (printLvl > 0) { diff --git a/src/equil/vcs_phaseStability.cpp b/src/equil/vcs_phaseStability.cpp index b00bab5d4..f66b389bb 100644 --- a/src/equil/vcs_phaseStability.cpp +++ b/src/equil/vcs_phaseStability.cpp @@ -387,7 +387,7 @@ int VCS_SOLVE::vcs_popPhaseRxnStepSizes(const size_t iphasePop) doublereal deltaMolNumPhase = tPhaseMoles; doublereal damp = 1.0; m_deltaGRxn_tmp = m_molNumSpecies_old; - double* molNumSpecies_tmp = DATA_PTR(m_deltaGRxn_tmp); + double* molNumSpecies_tmp = m_deltaGRxn_tmp.data(); for (size_t k = 0; k < Vphase->nSpecies(); k++) { kspec = Vphase->spGlobalIndexVCS(k); diff --git a/src/equil/vcs_setMolesLinProg.cpp b/src/equil/vcs_setMolesLinProg.cpp index 49d19d879..856c6a5e7 100644 --- a/src/equil/vcs_setMolesLinProg.cpp +++ b/src/equil/vcs_setMolesLinProg.cpp @@ -38,10 +38,6 @@ int VCS_SOLVE::vcs_setMolesLinProg() plogf(" --- call setInitialMoles\n"); } - // m_mu are standard state chemical potentials - // Boolean on the end specifies standard chem potentials - // m_mix->getValidChemPotentials(not_mu, DATA_PTR(m_mu), true); - // -> This is already done coming into the routine. double dg_rt; int idir; double nu; diff --git a/src/kinetics/ImplicitSurfChem.cpp b/src/kinetics/ImplicitSurfChem.cpp index 1be0e6159..ed1685af8 100644 --- a/src/kinetics/ImplicitSurfChem.cpp +++ b/src/kinetics/ImplicitSurfChem.cpp @@ -146,7 +146,7 @@ void ImplicitSurfChem::eval(doublereal time, doublereal* y, size_t loc, kstart; for (size_t n = 0; n < m_nsurf; n++) { rs0 = 1.0/m_surf[n]->siteDensity(); - m_vecKinPtrs[n]->getNetProductionRates(DATA_PTR(m_work)); + m_vecKinPtrs[n]->getNetProductionRates(m_work.data()); kstart = m_vecKinPtrs[n]->kineticsSpeciesIndex(0,m_surfindex[n]); sum = 0.0; loc = 0; @@ -194,7 +194,7 @@ void ImplicitSurfChem::solvePseudoSteadyStateProblem(int ifuncOverride, * 1) concentrations of all species in all phases, m_concSpecies[] * 2) Temperature and pressure */ - getConcSpecies(DATA_PTR(m_concSpecies)); + getConcSpecies(m_concSpecies.data()); InterfaceKinetics* ik = m_vecKinPtrs[0]; ThermoPhase& tp = ik->thermo(0); doublereal TKelvin = tp.temperature(); @@ -225,7 +225,7 @@ void ImplicitSurfChem::solvePseudoSteadyStateProblem(int ifuncOverride, } } if (rset) { - setConcSpecies(DATA_PTR(m_concSpecies)); + setConcSpecies(m_concSpecies.data()); } m_surfSolver->m_ioflag = m_ioFlag; @@ -238,7 +238,7 @@ void ImplicitSurfChem::solvePseudoSteadyStateProblem(int ifuncOverride, if (retn != 1) { // reset the concentrations copy(m_concSpeciesSave.begin(), m_concSpeciesSave.end(), m_concSpecies.begin()); - setConcSpecies(DATA_PTR(m_concSpeciesSave)); + setConcSpecies(m_concSpeciesSave.data()); ifunc = SFLUX_INITIALIZE; retn = m_surfSolver->solveSurfProb(ifunc, time_scale, TKelvin, PGas, reltol, atol); diff --git a/src/kinetics/ReactionPath.cpp b/src/kinetics/ReactionPath.cpp index 2329a3f9f..e8602fed7 100644 --- a/src/kinetics/ReactionPath.cpp +++ b/src/kinetics/ReactionPath.cpp @@ -747,8 +747,8 @@ int ReactionPathBuilder::build(Kinetics& s, const string& element, return -1; } - s.getFwdRatesOfProgress(DATA_PTR(m_ropf)); - s.getRevRatesOfProgress(DATA_PTR(m_ropr)); + s.getFwdRatesOfProgress(m_ropf.data()); + s.getRevRatesOfProgress(m_ropr.data()); // species explicitly included or excluded vector& in_nodes = r.included(); diff --git a/src/kinetics/solveSP.cpp b/src/kinetics/solveSP.cpp index 75685b7d9..55b120958 100644 --- a/src/kinetics/solveSP.cpp +++ b/src/kinetics/solveSP.cpp @@ -160,7 +160,7 @@ int solveSP::solveSurfProb(int ifunc, doublereal time_scale, doublereal TKelvin, size_t loc = 0; for (size_t n = 0; n < m_numSurfPhases; n++) { SurfPhase* sf_ptr = m_ptrsSurfPhase[n]; - sf_ptr->getConcentrations(DATA_PTR(m_numEqn1)); + sf_ptr->getConcentrations(m_numEqn1.data()); size_t nsp = m_nSpeciesSurfPhase[n]; for (size_t k = 0; k surfacePhaseIndex(); kstart = kinPtr->kineticsSpeciesIndex(0, surfIndex); kins = kindexSP; - kinPtr->getNetProductionRates(DATA_PTR(m_netProductionRatesSave)); + kinPtr->getNetProductionRates(m_netProductionRatesSave.data()); for (k = 0; k < nsp; k++, kindexSP++) { resid[kindexSP] = (CSoln[kindexSP] - CSolnOld[kindexSP]) / deltaT @@ -481,7 +479,7 @@ void solveSP::fun_eval(doublereal* resid, const doublereal* CSoln, size_t surfIndex = kinPtr->surfacePhaseIndex(); kstart = kinPtr->kineticsSpeciesIndex(0, surfIndex); kins = kindexSP; - kinPtr->getNetProductionRates(DATA_PTR(m_netProductionRatesSave)); + kinPtr->getNetProductionRates(m_netProductionRatesSave.data()); for (k = 0; k < nsp; k++, kindexSP++) { resid[kindexSP] = - m_netProductionRatesSave[kstart + k]; } @@ -497,7 +495,7 @@ void solveSP::fun_eval(doublereal* resid, const doublereal* CSoln, if (m_bulkFunc == BULK_DEPOSITION) { kindexSP = m_numTotSurfSpecies; for (isp = 0; isp < m_numBulkPhasesSS; isp++) { - doublereal* XBlk = DATA_PTR(m_numEqn1); + doublereal* XBlk = m_numEqn1.data(); nsp = m_nSpeciesSurfPhase[isp]; size_t surfPhaseIndex = m_indexKinObjSurfPhase[isp]; InterfaceKinetics* m_kin = m_objects[isp]; @@ -562,7 +560,7 @@ void solveSP::resjac_eval(SquareMatrix& jac, cSave = CSoln[kColIndex]; dc = std::max(1.0E-10 * sd, fabs(cSave) * 1.0E-7); CSoln[kColIndex] += dc; - fun_eval(DATA_PTR(m_numEqn2), CSoln, CSolnOld, do_time, deltaT); + fun_eval(m_numEqn2.data(), CSoln, CSolnOld, do_time, deltaT); for (i = 0; i < m_neq; i++) { jac(i, kColIndex) = (m_numEqn2[i] - resid[i])/dc; } @@ -579,7 +577,7 @@ void solveSP::resjac_eval(SquareMatrix& jac, cSave = CSoln[kColIndex]; dc = std::max(1.0E-10 * sd, fabs(cSave) * 1.0E-7); CSoln[kColIndex] += dc; - fun_eval(DATA_PTR(m_numEqn2), CSoln, CSolnOld, do_time, deltaT); + fun_eval(m_numEqn2.data(), CSoln, CSolnOld, do_time, deltaT); for (i = 0; i < m_neq; i++) { jac(i, kColIndex) = (m_numEqn2[i] - resid[i])/dc; } @@ -732,7 +730,7 @@ doublereal solveSP::calc_t(doublereal netProdRateSolnSP[], size_t surfIndex = m_kin->surfacePhaseIndex(); kstart = m_kin->kineticsSpeciesIndex(0, surfIndex); ThermoPhase& THref = m_kin->thermo(surfIndex); - m_kin->getNetProductionRates(DATA_PTR(m_numEqn1)); + m_kin->getNetProductionRates(m_numEqn1.data()); sden = THref.molarDensity(); for (k = 0; k < nsp; k++, kindexSP++) { size_t kspindex = kstart + k; diff --git a/src/numerics/BandMatrix.cpp b/src/numerics/BandMatrix.cpp index b9684cbcb..f3bba7ec7 100644 --- a/src/numerics/BandMatrix.cpp +++ b/src/numerics/BandMatrix.cpp @@ -235,7 +235,7 @@ int BandMatrix::factor() int info=0; copy(data.begin(), data.end(), ludata.begin()); ct_dgbtrf(nRows(), nColumns(), nSubDiagonals(), nSuperDiagonals(), - DATA_PTR(ludata), ldim(), DATA_PTR(ipiv()), info); + ludata.data(), ldim(), ipiv().data(), info); // if info = 0, LU decomp succeeded. if (info == 0) { @@ -266,8 +266,8 @@ int BandMatrix::solve(doublereal* b, size_t nrhs, size_t ldb) } if (info == 0) { ct_dgbtrs(ctlapack::NoTranspose, nColumns(), nSubDiagonals(), - nSuperDiagonals(), nrhs, DATA_PTR(ludata), ldim(), - DATA_PTR(ipiv()), b, ldb, info); + nSuperDiagonals(), nrhs, ludata.data(), ldim(), + ipiv().data(), b, ldb, info); } // error handling @@ -331,8 +331,8 @@ doublereal BandMatrix::rcond(doublereal a1norm) size_t ldab = (2 *m_kl + m_ku + 1); int rinfo = 0; - rcond = ct_dgbcon('1', m_n, m_kl, m_ku, DATA_PTR(ludata), ldab, DATA_PTR(m_ipiv), a1norm, DATA_PTR(work_), - DATA_PTR(iwork_), rinfo); + rcond = ct_dgbcon('1', m_n, m_kl, m_ku, ludata.data(), ldab, m_ipiv.data(), a1norm, work_.data(), + iwork_.data(), rinfo); if (rinfo != 0) { if (printLevel) { writelogf("BandMatrix::rcond(): DGBCON returned INFO = %d\n", rinfo); diff --git a/src/numerics/CVodeInt.cpp b/src/numerics/CVodeInt.cpp index 55eaeddbf..1f1fc29f1 100644 --- a/src/numerics/CVodeInt.cpp +++ b/src/numerics/CVodeInt.cpp @@ -218,12 +218,12 @@ void CVodeInt::initialize(double t0, FuncEval& func) m_cvode_mem = CVodeMalloc(m_neq, cvode_rhs, m_t0, m_y, m_method, m_iter, m_itol, &m_reltol, m_abstol, m_data, NULL, 1, m_iopt, - DATA_PTR(m_ropt), NULL); + m_ropt.data(), NULL); } else { m_cvode_mem = CVodeMalloc(m_neq, cvode_rhs, m_t0, m_y, m_method, m_iter, m_itol, &m_reltol, &m_abstols, m_data, NULL, 1, m_iopt, - DATA_PTR(m_ropt), NULL); + m_ropt.data(), NULL); } if (!m_cvode_mem) { @@ -261,12 +261,12 @@ void CVodeInt::reinitialize(double t0, FuncEval& func) result = CVReInit(m_cvode_mem, cvode_rhs, m_t0, m_y, m_method, m_iter, m_itol, &m_reltol, m_abstol, m_data, NULL, 1, m_iopt, - DATA_PTR(m_ropt), NULL); + m_ropt.data(), NULL); } else { result = CVReInit(m_cvode_mem, cvode_rhs, m_t0, m_y, m_method, m_iter, m_itol, &m_reltol, &m_abstols, m_data, NULL, 1, m_iopt, - DATA_PTR(m_ropt), NULL); + m_ropt.data(), NULL); } if (result != 0) { diff --git a/src/numerics/CVodesIntegrator.cpp b/src/numerics/CVodesIntegrator.cpp index ba79eed0c..44a5bcb6c 100644 --- a/src/numerics/CVodesIntegrator.cpp +++ b/src/numerics/CVodesIntegrator.cpp @@ -70,7 +70,7 @@ extern "C" { if (d->m_pars.size() == 0) { f->eval(t, ydata, ydotdata, NULL); } else { - f->eval(t, ydata, ydotdata, DATA_PTR(d->m_pars)); + f->eval(t, ydata, ydotdata, d->m_pars.data()); } } catch (CanteraError& err) { std::cerr << err.what() << std::endl; @@ -259,7 +259,7 @@ void CVodesIntegrator::sensInit(double t0, FuncEval& func) } vector_fp atol(m_np, m_abstolsens); double rtol = m_reltolsens; - flag = CVodeSensSStolerances(m_cvode_mem, rtol, DATA_PTR(atol)); + flag = CVodeSensSStolerances(m_cvode_mem, rtol, atol.data()); } @@ -334,7 +334,7 @@ void CVodesIntegrator::initialize(double t0, FuncEval& func) } if (func.nparams() > 0) { sensInit(t0, func); - flag = CVodeSetSensParams(m_cvode_mem, DATA_PTR(m_fdata->m_pars), + flag = CVodeSetSensParams(m_cvode_mem, m_fdata->m_pars.data(), NULL, NULL); } applyOptions(); diff --git a/src/numerics/SquareMatrix.cpp b/src/numerics/SquareMatrix.cpp index 4b4688e55..36cc329ff 100644 --- a/src/numerics/SquareMatrix.cpp +++ b/src/numerics/SquareMatrix.cpp @@ -76,7 +76,7 @@ int SquareMatrix::solve(doublereal* b, size_t nrhs, size_t ldb) */ ct_dgetrs(ctlapack::NoTranspose, static_cast(nRows()), nrhs, &*begin(), static_cast(nRows()), - DATA_PTR(ipiv()), b, ldb, info); + ipiv().data(), b, ldb, info); if (info != 0) { if (m_printLevel) { writelogf("SquareMatrix::solve(): DGETRS returned INFO = %d\n", info); @@ -122,7 +122,7 @@ int SquareMatrix::factor() integer n = static_cast(nRows()); int info=0; m_factored = 1; - ct_dgetrf(n, n, &*begin(), static_cast(nRows()), DATA_PTR(ipiv()), info); + ct_dgetrf(n, n, &*begin(), static_cast(nRows()), ipiv().data(), info); if (info != 0) { if (m_printLevel) { writelogf("SquareMatrix::factor(): DGETRS returned INFO = %d\n", info); @@ -145,11 +145,11 @@ int SquareMatrix::factorQR() tau.resize(m_nrows, 0.0); work.resize(8 * m_nrows, 0.0); } - a1norm_ = ct_dlange('1', m_nrows, m_nrows, &*begin(), m_nrows, DATA_PTR(work)); + a1norm_ = ct_dlange('1', m_nrows, m_nrows, &*begin(), m_nrows, work.data()); int info = 0; m_factored = 2; size_t lwork = work.size(); - ct_dgeqrf(m_nrows, m_nrows, &*begin(), m_nrows, DATA_PTR(tau), DATA_PTR(work), lwork, info); + ct_dgeqrf(m_nrows, m_nrows, &*begin(), m_nrows, tau.data(), work.data(), lwork, info); if (info != 0) { if (m_printLevel) { writelogf("SquareMatrix::factorQR(): DGEQRF returned INFO = %d\n", info); @@ -187,8 +187,8 @@ int SquareMatrix::solveQR(doublereal* b) /* * Solve the factored system */ - ct_dormqr(ctlapack::Left, ctlapack::Transpose, m_nrows, 1, m_nrows, &*begin(), m_nrows, DATA_PTR(tau), b, m_nrows, - DATA_PTR(work), lwork, info); + ct_dormqr(ctlapack::Left, ctlapack::Transpose, m_nrows, 1, m_nrows, &*begin(), m_nrows, tau.data(), b, m_nrows, + work.data(), lwork, info); if (info != 0) { if (m_printLevel) { writelogf("SquareMatrix::solveQR(): DORMQR returned INFO = %d\n", info); @@ -230,8 +230,8 @@ doublereal SquareMatrix::rcond(doublereal anorm) } int rinfo = 0; - rcond = ct_dgecon('1', m_nrows, &*begin(), m_nrows, anorm, DATA_PTR(work), - DATA_PTR(iwork_), rinfo); + rcond = ct_dgecon('1', m_nrows, &*begin(), m_nrows, anorm, work.data(), + iwork_.data(), rinfo); if (rinfo != 0) { if (m_printLevel) { writelogf("SquareMatrix::rcond(): DGECON returned INFO = %d\n", rinfo); @@ -262,8 +262,8 @@ doublereal SquareMatrix::rcondQR() } int rinfo = 0; - rcond = ct_dtrcon(0, ctlapack::UpperTriangular, 0, m_nrows, &*begin(), m_nrows, DATA_PTR(work), - DATA_PTR(iwork_), rinfo); + rcond = ct_dtrcon(0, ctlapack::UpperTriangular, 0, m_nrows, &*begin(), m_nrows, work.data(), + iwork_.data(), rinfo); if (rinfo != 0) { if (m_printLevel) { writelogf("SquareMatrix::rcondQR(): DTRCON returned INFO = %d\n", rinfo); diff --git a/src/oneD/MultiJac.cpp b/src/oneD/MultiJac.cpp index 9c322ff39..92c1f5fc6 100644 --- a/src/oneD/MultiJac.cpp +++ b/src/oneD/MultiJac.cpp @@ -66,7 +66,7 @@ void MultiJac::eval(doublereal* x0, doublereal* resid0, doublereal rdt) rdx = 1.0/dx; // calculate perturbed residual - m_resid->eval(j, x0, DATA_PTR(m_r1), rdt, 0); + m_resid->eval(j, x0, m_r1.data(), rdt, 0); // compute nth column of Jacobian for (size_t i = j - 1; i != j+2; i++) { diff --git a/src/oneD/MultiNewton.cpp b/src/oneD/MultiNewton.cpp index 091717d06..0bc603044 100644 --- a/src/oneD/MultiNewton.cpp +++ b/src/oneD/MultiNewton.cpp @@ -328,7 +328,7 @@ int MultiNewton::solve(doublereal* x0, doublereal* x1, if (forceNewJac) { r.eval(npos, &m_x[0], &m_stp[0], 0.0, 0); jac.eval(&m_x[0], &m_stp[0], 0.0); - jac.updateTransient(rdt, DATA_PTR(r.transientMask())); + jac.updateTransient(rdt, r.transientMask().data()); forceNewJac = false; } diff --git a/src/oneD/OneDim.cpp b/src/oneD/OneDim.cpp index dec46403b..f0ad83d5a 100644 --- a/src/oneD/OneDim.cpp +++ b/src/oneD/OneDim.cpp @@ -192,7 +192,7 @@ int OneDim::solve(doublereal* x, doublereal* xnew, int loglevel) if (!m_jac_ok) { eval(npos, x, xnew, 0.0, 0); m_jac->eval(x, xnew, 0.0); - m_jac->updateTransient(m_rdt, DATA_PTR(m_mask)); + m_jac->updateTransient(m_rdt, m_mask.data()); m_jac_ok = true; } return m_newt->solve(x, xnew, *this, *m_jac, loglevel); @@ -234,12 +234,12 @@ void OneDim::eval(size_t j, double* x, double* r, doublereal rdt, int count) // iterate over the bulk domains first for (const auto& d : m_bulk) { - d->eval(j, x, r, DATA_PTR(m_mask), rdt); + d->eval(j, x, r, m_mask.data(), rdt); } // then over the connector domains for (const auto& d : m_connect) { - d->eval(j, x, r, DATA_PTR(m_mask), rdt); + d->eval(j, x, r, m_mask.data(), rdt); } // increment counter and time @@ -268,7 +268,7 @@ void OneDim::initTimeInteg(doublereal dt, doublereal* x) // if the stepsize has changed, then update the transient // part of the Jacobian if (fabs(rdt_old - m_rdt) > Tiny) { - m_jac->updateTransient(m_rdt, DATA_PTR(m_mask)); + m_jac->updateTransient(m_rdt, m_mask.data()); } // iterate over all domains, preparing each one to begin @@ -283,7 +283,7 @@ void OneDim::initTimeInteg(doublereal dt, doublereal* x) void OneDim::setSteadyMode() { m_rdt = 0.0; - m_jac->updateTransient(m_rdt, DATA_PTR(m_mask)); + m_jac->updateTransient(m_rdt, m_mask.data()); // iterate over all domains, preparing them for steady-state solution Domain1D* d = left(); diff --git a/src/oneD/Sim1D.cpp b/src/oneD/Sim1D.cpp index 5173a2bb6..e4e3c2d4b 100644 --- a/src/oneD/Sim1D.cpp +++ b/src/oneD/Sim1D.cpp @@ -23,7 +23,7 @@ Sim1D::Sim1D(vector& domains) : m_x.resize(size(), 0.0); m_xnew.resize(size(), 0.0); for (size_t n = 0; n < m_nd; n++) { - domain(n)._getInitialSoln(DATA_PTR(m_x) + start(n)); + domain(n)._getInitialSoln(&m_x[start(n)]); } // set some defaults @@ -86,7 +86,7 @@ void Sim1D::setProfile(size_t dom, size_t comp, void Sim1D::save(const std::string& fname, const std::string& id, const std::string& desc, int loglevel) { - OneDim::save(fname, id, desc, DATA_PTR(m_x), loglevel); + OneDim::save(fname, id, desc, m_x.data(), loglevel); } void Sim1D::saveResidual(const std::string& fname, const std::string& id, @@ -132,7 +132,7 @@ void Sim1D::restore(const std::string& fname, const std::string& id, m_x.resize(sz); m_xnew.resize(sz); for (size_t m = 0; m < m_nd; m++) { - domain(m).restore(*xd[m], DATA_PTR(m_x) + domain(m).loc(), loglevel); + domain(m).restore(*xd[m], &m_x[domain(m).loc()], loglevel); } resize(); finalize(); @@ -151,7 +151,7 @@ void Sim1D::showSolution(ostream& s) { for (size_t n = 0; n < m_nd; n++) { if (domain(n).domainType() != cEmptyType) { - domain(n).showSolution_s(s, DATA_PTR(m_x) + start(n)); + domain(n).showSolution_s(s, &m_x[start(n)]); } } } @@ -162,7 +162,7 @@ void Sim1D::showSolution() if (domain(n).domainType() != cEmptyType) { writelog("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "+domain(n).id() +" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n\n"); - domain(n).showSolution(DATA_PTR(m_x) + start(n)); + domain(n).showSolution(&m_x[start(n)]); } } } @@ -170,14 +170,14 @@ void Sim1D::showSolution() void Sim1D::getInitialSoln() { for (size_t n = 0; n < m_nd; n++) { - domain(n)._getInitialSoln(DATA_PTR(m_x) + start(n)); + domain(n)._getInitialSoln(&m_x[start(n)]); } } void Sim1D::finalize() { for (size_t n = 0; n < m_nd; n++) { - domain(n)._finalize(DATA_PTR(m_x) + start(n)); + domain(n)._finalize(&m_x[start(n)]); } } @@ -192,7 +192,7 @@ void Sim1D::setTimeStep(doublereal stepsize, size_t n, integer* tsteps) int Sim1D::newtonSolve(int loglevel) { - int m = OneDim::solve(DATA_PTR(m_x), DATA_PTR(m_xnew), loglevel); + int m = OneDim::solve(m_x.data(), m_xnew.data(), loglevel); if (m >= 0) { copy(m_xnew.begin(), m_xnew.end(), m_x.begin()); return 0; @@ -257,7 +257,7 @@ void Sim1D::solve(int loglevel, bool refine_grid) "After unsuccessful Newton solve"); } debuglog("Take "+int2str(nsteps)+" timesteps ", loglevel); - dt = timeStep(nsteps, dt, DATA_PTR(m_x), DATA_PTR(m_xnew), + dt = timeStep(nsteps, dt, m_x.data(), m_xnew.data(), loglevel-1); if (loglevel > 6) { save("debug_sim1d.xml", "debug", "After timestepping"); @@ -269,7 +269,7 @@ void Sim1D::solve(int loglevel, bool refine_grid) if (loglevel == 1) { writelog(" {:10.4g} {:10.4g}\n", dt, - log10(ssnorm(DATA_PTR(m_x), DATA_PTR(m_xnew)))); + log10(ssnorm(m_x.data(), m_xnew.data()))); } istep++; if (istep >= m_steps.size()) { @@ -324,8 +324,7 @@ int Sim1D::refine(int loglevel) Refiner& r = d.refiner(); // determine where new points are needed - ianalyze = r.analyze(d.grid().size(), - DATA_PTR(d.grid()), DATA_PTR(m_x) + start(n)); + ianalyze = r.analyze(d.grid().size(), d.grid().data(), &m_x[start(n)]); if (ianalyze < 0) { return ianalyze; } @@ -382,7 +381,7 @@ int Sim1D::refine(int loglevel) for (size_t n = 0; n < m_nd; n++) { Domain1D& d = domain(n); gridsize = dsize[n]; - d.setupGrid(gridsize, DATA_PTR(znew) + gridstart); + d.setupGrid(gridsize, &znew[gridstart]); gridstart += gridsize; } @@ -475,7 +474,7 @@ int Sim1D::setFixedTemperature(doublereal t) for (n = 0; n < m_nd; n++) { Domain1D& d = domain(n); gridsize = dsize[n]; - d.setupGrid(gridsize, DATA_PTR(znew) + gridstart); + d.setupGrid(gridsize, &znew[gridstart]); gridstart += gridsize; } @@ -538,6 +537,6 @@ doublereal Sim1D::jacobian(int i, int j) void Sim1D::evalSSJacobian() { - OneDim::evalSSJacobian(DATA_PTR(m_x), DATA_PTR(m_xnew)); + OneDim::evalSSJacobian(m_x.data(), m_xnew.data()); } } diff --git a/src/oneD/StFlow.cpp b/src/oneD/StFlow.cpp index 065e1adbd..43978bebe 100644 --- a/src/oneD/StFlow.cpp +++ b/src/oneD/StFlow.cpp @@ -87,7 +87,7 @@ StFlow::StFlow(IdealGasPhase* ph, size_t nsp, size_t points) : for (size_t ng = 0; ng < m_points; ng++) { gr.push_back(1.0*ng/m_points); } - setupGrid(m_points, DATA_PTR(gr)); + setupGrid(m_points, gr.data()); setID("stagnation flow"); // Find indices for radiating species @@ -191,7 +191,7 @@ void StFlow::setGasAtMidpoint(const doublereal* x, size_t j) for (size_t k = 0; k < m_nsp; k++) { m_ybar[k] = 0.5*(yyj[k] + yyjp[k]); } - m_thermo->setMassFractions_NoNorm(DATA_PTR(m_ybar)); + m_thermo->setMassFractions_NoNorm(m_ybar.data()); m_thermo->setPressure(m_press); } @@ -456,7 +456,7 @@ void StFlow::updateTransport(doublereal* x, size_t j0, size_t j1) for (size_t j = j0; j < j1; j++) { setGasAtMidpoint(x,j); m_visc[j] = (m_dovisc ? m_trans->viscosity() : 0.0); - m_trans->getMixDiffCoeffs(DATA_PTR(m_diff) + j*m_nsp); + m_trans->getMixDiffCoeffs(&m_diff[j*m_nsp]); m_tcon[j] = m_trans->thermalConductivity(); } } else if (m_transport_option == c_Multi_Transport) { @@ -651,7 +651,7 @@ void StFlow::restore(const XML_Node& dom, doublereal* soln, int loglevel) np = x.size(); debuglog("Grid contains "+int2str(np)+" points.\n", loglevel >= 2); readgrid = true; - setupGrid(np, DATA_PTR(x)); + setupGrid(np, x.data()); } } if (!readgrid) { @@ -798,31 +798,30 @@ XML_Node& StFlow::save(XML_Node& o, const doublereal* const sol) XML_Node& gv = flow.addChild("grid_data"); addFloat(flow, "pressure", m_press, "Pa", "pressure"); - addFloatArray(gv,"z",m_z.size(),DATA_PTR(m_z), + addFloatArray(gv,"z",m_z.size(), m_z.data(), "m","length"); vector_fp x(soln.nColumns()); - soln.getRow(0,DATA_PTR(x)); - addFloatArray(gv,"u",x.size(),DATA_PTR(x),"m/s","velocity"); + soln.getRow(0, x.data()); + addFloatArray(gv,"u",x.size(),x.data(),"m/s","velocity"); - soln.getRow(1,DATA_PTR(x)); - addFloatArray(gv,"V", - x.size(),DATA_PTR(x),"1/s","rate"); + soln.getRow(1, x.data()); + addFloatArray(gv,"V",x.size(),x.data(),"1/s","rate"); - soln.getRow(2,DATA_PTR(x)); - addFloatArray(gv,"T",x.size(),DATA_PTR(x),"K","temperature"); + soln.getRow(2, x.data()); + addFloatArray(gv,"T",x.size(),x.data(),"K","temperature"); - soln.getRow(3,DATA_PTR(x)); - addFloatArray(gv,"L",x.size(),DATA_PTR(x),"N/m^4"); + soln.getRow(3, x.data()); + addFloatArray(gv,"L",x.size(),x.data(),"N/m^4"); for (k = 0; k < m_nsp; k++) { - soln.getRow(4+k,DATA_PTR(x)); + soln.getRow(4+k, x.data()); addFloatArray(gv,m_thermo->speciesName(k), - x.size(),DATA_PTR(x),"","massFraction"); + x.size(),x.data(),"","massFraction"); } if (m_do_radiation) { addFloatArray(gv, "radiative_heat_loss", m_z.size(), - DATA_PTR(m_qdotRadiation), "W/m^3", "specificPower"); + m_qdotRadiation.data(), "W/m^3", "specificPower"); } vector_fp values(nPoints()); for (size_t i = 0; i < nPoints(); i++) { diff --git a/src/oneD/boundaries1D.cpp b/src/oneD/boundaries1D.cpp index 3097a3985..dd4c25606 100644 --- a/src/oneD/boundaries1D.cpp +++ b/src/oneD/boundaries1D.cpp @@ -82,7 +82,7 @@ void Inlet1D::setMoleFractions(const std::string& xin) m_xstr = xin; if (m_flow) { m_flow->phase().setMoleFractionsByName(xin); - m_flow->phase().getMassFractions(DATA_PTR(m_yin)); + m_flow->phase().getMassFractions(m_yin.data()); needJacUpdate(); } } @@ -91,7 +91,7 @@ void Inlet1D::setMoleFractions(const doublereal* xin) { if (m_flow) { m_flow->phase().setMoleFractions(xin); - m_flow->phase().getMassFractions(DATA_PTR(m_yin)); + m_flow->phase().getMassFractions(m_yin.data()); needJacUpdate(); } } @@ -486,7 +486,7 @@ void OutletRes1D::setMoleFractions(const std::string& xres) m_xstr = xres; if (m_flow) { m_flow->phase().setMoleFractionsByName(xres); - m_flow->phase().getMassFractions(DATA_PTR(m_yres)); + m_flow->phase().getMassFractions(m_yres.data()); needJacUpdate(); } } @@ -495,7 +495,7 @@ void OutletRes1D::setMoleFractions(const doublereal* xres) { if (m_flow) { m_flow->phase().setMoleFractions(xres); - m_flow->phase().getMassFractions(DATA_PTR(m_yres)); + m_flow->phase().getMassFractions(m_yres.data()); needJacUpdate(); } } @@ -757,7 +757,7 @@ void ReactingSurf1D::eval(size_t jg, doublereal* xg, doublereal* rg, sum += x[k+1]; } m_sphase->setTemperature(x[0]); - m_sphase->setCoverages(DATA_PTR(m_work)); + m_sphase->setCoverages(m_work.data()); // set the left gas state to the adjacent point @@ -775,7 +775,7 @@ void ReactingSurf1D::eval(size_t jg, doublereal* xg, doublereal* rg, m_flow_right->setGas(xg + rightloc, 0); } - m_kin->getNetProductionRates(DATA_PTR(m_work)); + m_kin->getNetProductionRates(m_work.data()); doublereal rs0 = 1.0/m_sphase->siteDensity(); size_t ioffset = m_kin->kineticsSpeciesIndex(0, m_surfindex); @@ -804,7 +804,7 @@ void ReactingSurf1D::eval(size_t jg, doublereal* xg, doublereal* rg, size_t nc; if (m_flow_left) { nc = m_flow_left->nComponents(); - const doublereal* mwleft = DATA_PTR(m_phase_left->molecularWeights()); + const vector_fp& mwleft = m_phase_left->molecularWeights(); rb =r - nc; xb = x - nc; rb[2] = xb[2] - x[0]; // specified T diff --git a/src/thermo/DebyeHuckel.cpp b/src/thermo/DebyeHuckel.cpp index a87f4452d..b8a10ec34 100644 --- a/src/thermo/DebyeHuckel.cpp +++ b/src/thermo/DebyeHuckel.cpp @@ -169,25 +169,25 @@ int DebyeHuckel::eosType() const // doublereal DebyeHuckel::enthalpy_mole() const { - getPartialMolarEnthalpies(DATA_PTR(m_tmpV)); + getPartialMolarEnthalpies(m_tmpV.data()); return mean_X(m_tmpV); } doublereal DebyeHuckel::entropy_mole() const { - getPartialMolarEntropies(DATA_PTR(m_tmpV)); + getPartialMolarEntropies(m_tmpV.data()); return mean_X(m_tmpV); } doublereal DebyeHuckel::gibbs_mole() const { - getChemPotentials(DATA_PTR(m_tmpV)); + getChemPotentials(m_tmpV.data()); return mean_X(m_tmpV); } doublereal DebyeHuckel::cp_mole() const { - getPartialMolarCp(DATA_PTR(m_tmpV)); + getPartialMolarCp(m_tmpV.data()); return mean_X(m_tmpV); } diff --git a/src/thermo/GibbsExcessVPSSTP.cpp b/src/thermo/GibbsExcessVPSSTP.cpp index 15aa05fc6..ed17f547a 100644 --- a/src/thermo/GibbsExcessVPSSTP.cpp +++ b/src/thermo/GibbsExcessVPSSTP.cpp @@ -56,31 +56,31 @@ ThermoPhase* GibbsExcessVPSSTP::duplMyselfAsThermoPhase() const void GibbsExcessVPSSTP::setMassFractions(const doublereal* const y) { Phase::setMassFractions(y); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void GibbsExcessVPSSTP::setMassFractions_NoNorm(const doublereal* const y) { Phase::setMassFractions_NoNorm(y); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void GibbsExcessVPSSTP::setMoleFractions(const doublereal* const x) { Phase::setMoleFractions(x); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void GibbsExcessVPSSTP::setMoleFractions_NoNorm(const doublereal* const x) { Phase::setMoleFractions_NoNorm(x); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void GibbsExcessVPSSTP::setConcentrations(const doublereal* const c) { Phase::setConcentrations(c); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } /* @@ -142,7 +142,7 @@ doublereal GibbsExcessVPSSTP::logStandardConc(size_t k) const void GibbsExcessVPSSTP::getActivities(doublereal* ac) const { getActivityCoefficients(ac); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); for (size_t k = 0; k < m_kk; k++) { ac[k] *= moleFractions_[k]; } @@ -201,7 +201,7 @@ void GibbsExcessVPSSTP::initThermo() { initLengths(); VPStandardStateTP::initThermo(); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void GibbsExcessVPSSTP::initLengths() diff --git a/src/thermo/HMWSoln.cpp b/src/thermo/HMWSoln.cpp index 8e58b2124..b2a3d158a 100644 --- a/src/thermo/HMWSoln.cpp +++ b/src/thermo/HMWSoln.cpp @@ -399,16 +399,16 @@ int HMWSoln::eosType() const // doublereal HMWSoln::enthalpy_mole() const { - getPartialMolarEnthalpies(DATA_PTR(m_tmpV)); - getMoleFractions(DATA_PTR(m_pp)); + getPartialMolarEnthalpies(m_tmpV.data()); + getMoleFractions(m_pp.data()); return mean_X(m_tmpV); } doublereal HMWSoln::relative_enthalpy() const { - getPartialMolarEnthalpies(DATA_PTR(m_tmpV)); + getPartialMolarEnthalpies(m_tmpV.data()); double hbar = mean_X(m_tmpV); - getEnthalpy_RT(DATA_PTR(m_gamma_tmp)); + getEnthalpy_RT(m_gamma_tmp.data()); for (size_t k = 0; k < m_kk; k++) { m_gamma_tmp[k] *= RT(); } @@ -419,7 +419,7 @@ doublereal HMWSoln::relative_enthalpy() const doublereal HMWSoln::relative_molal_enthalpy() const { double L = relative_enthalpy(); - getMoleFractions(DATA_PTR(m_tmpV)); + getMoleFractions(m_tmpV.data()); double xanion = 0.0; size_t kcation = npos; double xcation = 0.0; @@ -458,19 +458,19 @@ doublereal HMWSoln::relative_molal_enthalpy() const doublereal HMWSoln::entropy_mole() const { - getPartialMolarEntropies(DATA_PTR(m_tmpV)); + getPartialMolarEntropies(m_tmpV.data()); return mean_X(m_tmpV); } doublereal HMWSoln::gibbs_mole() const { - getChemPotentials(DATA_PTR(m_tmpV)); + getChemPotentials(m_tmpV.data()); return mean_X(m_tmpV); } doublereal HMWSoln::cp_mole() const { - getPartialMolarCp(DATA_PTR(m_tmpV)); + getPartialMolarCp(m_tmpV.data()); return mean_X(m_tmpV); } @@ -589,7 +589,7 @@ void HMWSoln::getActivityConcentrations(doublereal* c) const doublereal HMWSoln::standardConcentration(size_t k) const { - getStandardVolumes(DATA_PTR(m_tmpV)); + getStandardVolumes(m_tmpV.data()); double mvSolvent = m_tmpV[m_indexSolvent]; if (k > 0) { return m_Mnaught / mvSolvent; @@ -1268,7 +1268,7 @@ void HMWSoln::calcMolalitiesCropped() const } if (cropMethod == 1) { - double* molF = DATA_PTR(m_gamma_tmp); + double* molF = m_gamma_tmp.data(); getMoleFractions(molF); double xmolSolvent = molF[m_indexSolvent]; if (xmolSolvent >= MC_X_o_cutoff_) { @@ -1586,7 +1586,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const /* * Use the CROPPED molality of the species in solution. */ - const double* molality = DATA_PTR(m_molalitiesCropped); + const vector_fp& molality = m_molalitiesCropped; /* * These are data inputs about the Pitzer correlation. They come diff --git a/src/thermo/HMWSoln_input.cpp b/src/thermo/HMWSoln_input.cpp index 60b7c1ab7..8574e0c85 100644 --- a/src/thermo/HMWSoln_input.cpp +++ b/src/thermo/HMWSoln_input.cpp @@ -1530,7 +1530,7 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) * Lastly calculate the charge balance and then add stuff until the charges compensate */ vector_fp mf(m_kk, 0.0); - getMoleFractions(DATA_PTR(mf)); + getMoleFractions(mf.data()); bool notDone = true; while (notDone) { @@ -1585,7 +1585,7 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } } - setMoleFractions(DATA_PTR(mf)); + setMoleFractions(mf.data()); } else { notDone = false; } diff --git a/src/thermo/IdealMolalSoln.cpp b/src/thermo/IdealMolalSoln.cpp index 8db61327e..ade222512 100644 --- a/src/thermo/IdealMolalSoln.cpp +++ b/src/thermo/IdealMolalSoln.cpp @@ -135,32 +135,32 @@ ThermoPhase* IdealMolalSoln::duplMyselfAsThermoPhase() const doublereal IdealMolalSoln::enthalpy_mole() const { - getPartialMolarEnthalpies(DATA_PTR(m_tmpV)); - getMoleFractions(DATA_PTR(m_pp)); + getPartialMolarEnthalpies(m_tmpV.data()); + getMoleFractions(m_pp.data()); return mean_X(m_tmpV); } doublereal IdealMolalSoln::intEnergy_mole() const { - getPartialMolarEnthalpies(DATA_PTR(m_tmpV)); + getPartialMolarEnthalpies(m_tmpV.data()); return mean_X(m_tmpV); } doublereal IdealMolalSoln::entropy_mole() const { - getPartialMolarEntropies(DATA_PTR(m_tmpV)); + getPartialMolarEntropies(m_tmpV.data()); return mean_X(m_tmpV); } doublereal IdealMolalSoln::gibbs_mole() const { - getChemPotentials(DATA_PTR(m_tmpV)); + getChemPotentials(m_tmpV.data()); return mean_X(m_tmpV); } doublereal IdealMolalSoln::cp_mole() const { - getPartialMolarCp(DATA_PTR(m_tmpV)); + getPartialMolarCp(m_tmpV.data()); return mean_X(m_tmpV); } diff --git a/src/thermo/IdealSolidSolnPhase.cpp b/src/thermo/IdealSolidSolnPhase.cpp index abb5f505a..10471ca74 100644 --- a/src/thermo/IdealSolidSolnPhase.cpp +++ b/src/thermo/IdealSolidSolnPhase.cpp @@ -350,20 +350,18 @@ void IdealSolidSolnPhase::getPartialMolarVolumes(doublereal* vbar) const void IdealSolidSolnPhase::getPureGibbs(doublereal* gpure) const { const vector_fp& gibbsrt = gibbs_RT_ref(); - const doublereal* const gk = DATA_PTR(gibbsrt); doublereal delta_p = (m_Pcurrent - m_Pref); for (size_t k = 0; k < m_kk; k++) { - gpure[k] = RT() * gk[k] + delta_p * m_speciesMolarVolume[k]; + gpure[k] = RT() * gibbsrt[k] + delta_p * m_speciesMolarVolume[k]; } } void IdealSolidSolnPhase::getGibbs_RT(doublereal* grt) const { const vector_fp& gibbsrt = gibbs_RT_ref(); - const doublereal* const gk = DATA_PTR(gibbsrt); doublereal delta_prt = (m_Pcurrent - m_Pref)/ RT(); for (size_t k = 0; k < m_kk; k++) { - grt[k] = gk[k] + delta_prt * m_speciesMolarVolume[k]; + grt[k] = gibbsrt[k] + delta_prt * m_speciesMolarVolume[k]; } } @@ -601,8 +599,7 @@ void IdealSolidSolnPhase::_updateThermo() const /* * Update the thermodynamic functions of the reference state. */ - m_spthermo->update(tnow, DATA_PTR(m_cp0_R), DATA_PTR(m_h0_RT), - DATA_PTR(m_s0_R)); + m_spthermo->update(tnow, m_cp0_R.data(), m_h0_RT.data(), m_s0_R.data()); m_tlast = tnow; doublereal rrt = 1.0 / (GasConstant * tnow); for (size_t k = 0; k < m_kk; k++) { diff --git a/src/thermo/IonsFromNeutralVPSSTP.cpp b/src/thermo/IonsFromNeutralVPSSTP.cpp index 4654177e0..b52512825 100644 --- a/src/thermo/IonsFromNeutralVPSSTP.cpp +++ b/src/thermo/IonsFromNeutralVPSSTP.cpp @@ -246,32 +246,32 @@ int IonsFromNeutralVPSSTP::eosType() const doublereal IonsFromNeutralVPSSTP::enthalpy_mole() const { - getPartialMolarEnthalpies(DATA_PTR(m_pp)); + getPartialMolarEnthalpies(m_pp.data()); return mean_X(m_pp); } doublereal IonsFromNeutralVPSSTP::entropy_mole() const { - getPartialMolarEntropies(DATA_PTR(m_pp)); + getPartialMolarEntropies(m_pp.data()); return mean_X(m_pp); } doublereal IonsFromNeutralVPSSTP::gibbs_mole() const { - getChemPotentials(DATA_PTR(m_pp)); + getChemPotentials(m_pp.data()); return mean_X(m_pp); } doublereal IonsFromNeutralVPSSTP::cp_mole() const { - getPartialMolarCp(DATA_PTR(m_pp)); + getPartialMolarCp(m_pp.data()); return mean_X(m_pp); } doublereal IonsFromNeutralVPSSTP::cv_mole() const { // Need to revisit this, as it is wrong - getPartialMolarCp(DATA_PTR(m_pp)); + getPartialMolarCp(m_pp.data()); return mean_X(m_pp); } @@ -314,7 +314,7 @@ void IonsFromNeutralVPSSTP::getChemPotentials(doublereal* mu) const /* * Get the standard chemical potentials of netural molecules */ - neutralMoleculePhase_->getStandardChemPotentials(DATA_PTR(muNeutralMolecule_)); + neutralMoleculePhase_->getStandardChemPotentials(muNeutralMolecule_.data()); doublereal RT_ = GasConstant * temperature(); @@ -323,7 +323,7 @@ void IonsFromNeutralVPSSTP::getChemPotentials(doublereal* mu) const neutralMoleculePhase_->getChemPotentials(mu); break; case cIonSolnType_SINGLEANION: - neutralMoleculePhase_->getLnActivityCoefficients(DATA_PTR(lnActCoeff_NeutralMolecule_)); + neutralMoleculePhase_->getLnActivityCoefficients(lnActCoeff_NeutralMolecule_.data()); fact2 = 2.0 * RT_ * log(2.0); // Do the cation list @@ -473,7 +473,7 @@ void IonsFromNeutralVPSSTP::calcIonMoleFractions(doublereal* const mf) const * Download the neutral mole fraction vector into the * vector, NeutralMolecMoleFractions_[] */ - neutralMoleculePhase_->getMoleFractions(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->getMoleFractions(NeutralMolecMoleFractions_.data()); // Zero the mole fractions for (size_t k = 0; k < m_kk; k++) { @@ -676,35 +676,35 @@ void IonsFromNeutralVPSSTP::setMassFractions(const doublereal* const y) { GibbsExcessVPSSTP::setMassFractions(y); calcNeutralMoleculeMoleFractions(); - neutralMoleculePhase_->setMoleFractions(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->setMoleFractions(NeutralMolecMoleFractions_.data()); } void IonsFromNeutralVPSSTP::setMassFractions_NoNorm(const doublereal* const y) { GibbsExcessVPSSTP::setMassFractions_NoNorm(y); calcNeutralMoleculeMoleFractions(); - neutralMoleculePhase_->setMoleFractions(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->setMoleFractions(NeutralMolecMoleFractions_.data()); } void IonsFromNeutralVPSSTP::setMoleFractions(const doublereal* const x) { GibbsExcessVPSSTP::setMoleFractions(x); calcNeutralMoleculeMoleFractions(); - neutralMoleculePhase_->setMoleFractions(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->setMoleFractions(NeutralMolecMoleFractions_.data()); } void IonsFromNeutralVPSSTP::setMoleFractions_NoNorm(const doublereal* const x) { GibbsExcessVPSSTP::setMoleFractions_NoNorm(x); calcNeutralMoleculeMoleFractions(); - neutralMoleculePhase_->setMoleFractions_NoNorm(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->setMoleFractions_NoNorm(NeutralMolecMoleFractions_.data()); } void IonsFromNeutralVPSSTP::setConcentrations(const doublereal* const c) { GibbsExcessVPSSTP::setConcentrations(c); calcNeutralMoleculeMoleFractions(); - neutralMoleculePhase_->setMoleFractions(DATA_PTR(NeutralMolecMoleFractions_)); + neutralMoleculePhase_->setMoleFractions(NeutralMolecMoleFractions_.data()); } /* @@ -951,7 +951,7 @@ void IonsFromNeutralVPSSTP::s_update_lnActCoeff() const /* * Get the activity coefficiens of the neutral molecules */ - neutralMoleculePhase_->getLnActivityCoefficients(DATA_PTR(lnActCoeff_NeutralMolecule_)); + neutralMoleculePhase_->getLnActivityCoefficients(lnActCoeff_NeutralMolecule_.data()); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: @@ -1005,10 +1005,10 @@ void IonsFromNeutralVPSSTP::getdlnActCoeffds(const doublereal dTds, const double return; } - getNeutralMoleculeMoleGrads(DATA_PTR(dXds),DATA_PTR(dX_NeutralMolecule_)); + getNeutralMoleculeMoleGrads(dXds, dX_NeutralMolecule_.data()); // All mole fractions returned to normal - geThermo->getdlnActCoeffds(dTds, DATA_PTR(dX_NeutralMolecule_), DATA_PTR(dlnActCoeff_NeutralMolecule_)); + geThermo->getdlnActCoeffds(dTds, dX_NeutralMolecule_.data(), dlnActCoeff_NeutralMolecule_.data()); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: @@ -1059,7 +1059,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeffdT() const return; } - geThermo->getdlnActCoeffdT(DATA_PTR(dlnActCoeffdT_NeutralMolecule_)); + geThermo->getdlnActCoeffdT(dlnActCoeffdT_NeutralMolecule_.data()); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: @@ -1110,7 +1110,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX_diag() const return; } - geThermo->getdlnActCoeffdlnX_diag(DATA_PTR(dlnActCoeffdlnX_diag_NeutralMolecule_)); + geThermo->getdlnActCoeffdlnX_diag(dlnActCoeffdlnX_diag_NeutralMolecule_.data()); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: @@ -1161,7 +1161,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnN_diag() const return; } - geThermo->getdlnActCoeffdlnN_diag(DATA_PTR(dlnActCoeffdlnN_diag_NeutralMolecule_)); + geThermo->getdlnActCoeffdlnN_diag(dlnActCoeffdlnN_diag_NeutralMolecule_.data()); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: diff --git a/src/thermo/LatticeSolidPhase.cpp b/src/thermo/LatticeSolidPhase.cpp index 616042447..173d9bcf5 100644 --- a/src/thermo/LatticeSolidPhase.cpp +++ b/src/thermo/LatticeSolidPhase.cpp @@ -209,7 +209,7 @@ void LatticeSolidPhase::setMoleFractions(const doublereal* const x) for (size_t k = 0; k < strt; k++) { m_x[k] = x[k] / m_nlattice; } - Phase::setMoleFractions(DATA_PTR(m_x)); + Phase::setMoleFractions(m_x.data()); calcDensity(); } @@ -379,7 +379,7 @@ void LatticeSolidPhase::initThermo() } lkstart_[n+1] = loc; } - setMoleFractions(DATA_PTR(m_x)); + setMoleFractions(m_x.data()); ThermoPhase::initThermo(); } @@ -395,11 +395,11 @@ void LatticeSolidPhase::_updateThermo() const { doublereal tnow = temperature(); if (m_tlast != tnow) { - getMoleFractions(DATA_PTR(m_x)); + getMoleFractions(m_x.data()); size_t strt = 0; for (size_t n = 0; n < m_nlattice; n++) { m_lattice[n]->setTemperature(tnow); - m_lattice[n]->setMoleFractions(DATA_PTR(m_x) + strt); + m_lattice[n]->setMoleFractions(&m_x[strt]); m_lattice[n]->setPressure(m_press); strt += m_lattice[n]->nSpecies(); } @@ -419,7 +419,7 @@ void LatticeSolidPhase::setLatticeMoleFractionsByName(int nn, const std::string& loc++; } } - setMoleFractions(DATA_PTR(m_x)); + setMoleFractions(m_x.data()); } void LatticeSolidPhase::setParametersFromXML(const XML_Node& eosdata) diff --git a/src/thermo/MaskellSolidSolnPhase.cpp b/src/thermo/MaskellSolidSolnPhase.cpp index 485ad2bb5..04570292c 100644 --- a/src/thermo/MaskellSolidSolnPhase.cpp +++ b/src/thermo/MaskellSolidSolnPhase.cpp @@ -294,8 +294,7 @@ void MaskellSolidSolnPhase::_updateThermo() const */ doublereal tnow = temperature(); if (!cached.validate(tnow)) { - m_spthermo->update(tnow, DATA_PTR(m_cp0_R), DATA_PTR(m_h0_RT), - DATA_PTR(m_s0_R)); + m_spthermo->update(tnow, m_cp0_R.data(), m_h0_RT.data(), m_s0_R.data()); for (size_t k = 0; k < m_kk; k++) { m_g0_RT[k] = m_h0_RT[k] - m_s0_R[k]; } diff --git a/src/thermo/MixtureFugacityTP.cpp b/src/thermo/MixtureFugacityTP.cpp index ebc71450e..2e9b576c7 100644 --- a/src/thermo/MixtureFugacityTP.cpp +++ b/src/thermo/MixtureFugacityTP.cpp @@ -290,37 +290,37 @@ void MixtureFugacityTP::setPressure(doublereal p) void MixtureFugacityTP::setMassFractions(const doublereal* const y) { Phase::setMassFractions(y); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void MixtureFugacityTP::setMassFractions_NoNorm(const doublereal* const y) { Phase::setMassFractions_NoNorm(y); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void MixtureFugacityTP::setMoleFractions(const doublereal* const x) { Phase::setMoleFractions(x); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void MixtureFugacityTP::setMoleFractions_NoNorm(const doublereal* const x) { Phase::setMoleFractions_NoNorm(x); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void MixtureFugacityTP::setConcentrations(const doublereal* const c) { Phase::setConcentrations(c); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); } void MixtureFugacityTP::setMoleFractions_NoState(const doublereal* const x) { Phase::setMoleFractions(x); - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); updateMixingExpressions(); } @@ -341,7 +341,7 @@ void MixtureFugacityTP::setState_TP(doublereal t, doublereal pres) * Therefore, we need to do the standard state thermo calc with the * (t, pres) combo. */ - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); Phase::setTemperature(t); _updateReferenceStateThermo(); @@ -406,7 +406,7 @@ void MixtureFugacityTP::setState_TP(doublereal t, doublereal pres) void MixtureFugacityTP::setState_TR(doublereal T, doublereal rho) { - getMoleFractions(DATA_PTR(moleFractions_)); + getMoleFractions(moleFractions_.data()); Phase::setTemperature(T); _updateReferenceStateThermo(); Phase::setDensity(rho); diff --git a/src/thermo/MolalityVPSSTP.cpp b/src/thermo/MolalityVPSSTP.cpp index 93d442cd9..f5e4776e8 100644 --- a/src/thermo/MolalityVPSSTP.cpp +++ b/src/thermo/MolalityVPSSTP.cpp @@ -128,7 +128,7 @@ doublereal MolalityVPSSTP::moleFSolventMin() const void MolalityVPSSTP::calcMolalities() const { - getMoleFractions(DATA_PTR(m_molalities)); + getMoleFractions(m_molalities.data()); double xmolSolvent = std::max(m_molalities[m_indexSolvent], m_xmolSolventMIN); double denomInv = 1.0/ (m_Mnaught * xmolSolvent); for (size_t k = 0; k < m_kk; k++) { @@ -164,7 +164,7 @@ void MolalityVPSSTP::setMolalities(const doublereal* const molal) m_molalities[k] *= tmp; } } - setMoleFractions(DATA_PTR(m_molalities)); + setMoleFractions(m_molalities.data()); /* * Essentially we don't trust the input: We calculate * the molalities from the mole fractions that we @@ -184,7 +184,7 @@ void MolalityVPSSTP::setMolalitiesByName(const compositionMap& mMap) * Get a vector of mole fractions */ vector_fp mf(m_kk, 0.0); - getMoleFractions(DATA_PTR(mf)); + getMoleFractions(mf.data()); double xmolSmin = std::max(mf[m_indexSolvent], m_xmolSolventMIN); for (size_t k = 0; k < m_kk; k++) { double mol_k = getValue(mMap, speciesName(k), 0.0); @@ -239,7 +239,7 @@ void MolalityVPSSTP::setMolalitiesByName(const compositionMap& mMap) for (size_t k = 0; k < m_kk; k++) { mf[k] *= sum; } - setMoleFractions(DATA_PTR(mf)); + setMoleFractions(mf.data()); /* * After we formally set the mole fractions, we * calculate the molalities again and store it in @@ -300,7 +300,7 @@ doublereal MolalityVPSSTP::osmoticCoefficient() const * First, we calculate the activities all over again */ vector_fp act(m_kk); - getActivities(DATA_PTR(act)); + getActivities(act.data()); /* * Then, we calculate the sum of the solvent molalities */ diff --git a/src/thermo/PDSS_IonsFromNeutral.cpp b/src/thermo/PDSS_IonsFromNeutral.cpp index c1d8ca973..f4d3a5e7b 100644 --- a/src/thermo/PDSS_IonsFromNeutral.cpp +++ b/src/thermo/PDSS_IonsFromNeutral.cpp @@ -208,7 +208,7 @@ void PDSS_IonsFromNeutral::initThermo() doublereal PDSS_IonsFromNeutral::enthalpy_RT() const { - neutralMoleculePhase_->getEnthalpy_RT(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getEnthalpy_RT(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -224,7 +224,7 @@ doublereal PDSS_IonsFromNeutral::intEnergy_mole() const doublereal PDSS_IonsFromNeutral::entropy_R() const { - neutralMoleculePhase_->getEntropy_R(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getEntropy_R(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -238,7 +238,7 @@ doublereal PDSS_IonsFromNeutral::entropy_R() const doublereal PDSS_IonsFromNeutral::gibbs_RT() const { - neutralMoleculePhase_->getGibbs_RT(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getGibbs_RT(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -252,7 +252,7 @@ doublereal PDSS_IonsFromNeutral::gibbs_RT() const doublereal PDSS_IonsFromNeutral::cp_R() const { - neutralMoleculePhase_->getCp_R(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getCp_R(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -263,7 +263,7 @@ doublereal PDSS_IonsFromNeutral::cp_R() const doublereal PDSS_IonsFromNeutral::molarVolume() const { - neutralMoleculePhase_->getStandardVolumes(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getStandardVolumes(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -279,7 +279,7 @@ doublereal PDSS_IonsFromNeutral::density() const doublereal PDSS_IonsFromNeutral::gibbs_RT_ref() const { - neutralMoleculePhase_->getGibbs_RT_ref(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getGibbs_RT_ref(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -293,7 +293,7 @@ doublereal PDSS_IonsFromNeutral::gibbs_RT_ref() const doublereal PDSS_IonsFromNeutral::enthalpy_RT_ref() const { - neutralMoleculePhase_->getEnthalpy_RT_ref(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getEnthalpy_RT_ref(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -304,7 +304,7 @@ doublereal PDSS_IonsFromNeutral::enthalpy_RT_ref() const doublereal PDSS_IonsFromNeutral::entropy_R_ref() const { - neutralMoleculePhase_->getEntropy_R_ref(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getEntropy_R_ref(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -318,7 +318,7 @@ doublereal PDSS_IonsFromNeutral::entropy_R_ref() const doublereal PDSS_IonsFromNeutral::cp_R_ref() const { - neutralMoleculePhase_->getCp_R_ref(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getCp_R_ref(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; @@ -329,7 +329,7 @@ doublereal PDSS_IonsFromNeutral::cp_R_ref() const doublereal PDSS_IonsFromNeutral::molarVolume_ref() const { - neutralMoleculePhase_->getStandardVolumes_ref(DATA_PTR(tmpNM)); + neutralMoleculePhase_->getStandardVolumes_ref(tmpNM.data()); doublereal val = 0.0; for (size_t i = 0; i < numMult_; i++) { size_t jNeut = idNeutralMoleculeVec[i]; diff --git a/src/thermo/RedlichKwongMFTP.cpp b/src/thermo/RedlichKwongMFTP.cpp index f02845dfe..f9467efd5 100644 --- a/src/thermo/RedlichKwongMFTP.cpp +++ b/src/thermo/RedlichKwongMFTP.cpp @@ -194,7 +194,7 @@ void RedlichKwongMFTP::calcDensity() * Calculate the molarVolume of the solution (m**3 kmol-1) */ const doublereal* const dtmp = moleFractdivMMW(); - getPartialMolarVolumes(DATA_PTR(m_tmpV)); + getPartialMolarVolumes(m_tmpV.data()); double invDens = dot(m_tmpV.begin(), m_tmpV.end(), dtmp); /* * Set the density in the parent State object directly, @@ -242,7 +242,7 @@ void RedlichKwongMFTP::setConcentrations(const doublereal* const c) void RedlichKwongMFTP::getActivityConcentrations(doublereal* c) const { - getPartialMolarVolumes(DATA_PTR(m_partialMolarVolumes)); + getPartialMolarVolumes(m_partialMolarVolumes.data()); for (size_t k = 0; k < m_kk; k++) { c[k] = moleFraction(k) / m_partialMolarVolumes[k]; } @@ -250,7 +250,7 @@ void RedlichKwongMFTP::getActivityConcentrations(doublereal* c) const doublereal RedlichKwongMFTP::standardConcentration(size_t k) const { - getStandardVolumes(DATA_PTR(m_tmpV)); + getStandardVolumes(m_tmpV.data()); return 1.0 / m_tmpV[k]; } @@ -424,7 +424,7 @@ void RedlichKwongMFTP::getPartialMolarEntropies(doublereal* sbar) const } pressureDerivatives(); - getPartialMolarVolumes(DATA_PTR(m_partialMolarVolumes)); + getPartialMolarVolumes(m_partialMolarVolumes.data()); for (size_t k = 0; k < m_kk; k++) { sbar[k] -= -m_partialMolarVolumes[k] * dpdT_; } @@ -570,7 +570,7 @@ void RedlichKwongMFTP::setToEquilState(const doublereal* mu_RT) { double tmp, tmp2; _updateReferenceStateThermo(); - getGibbs_RT_ref(DATA_PTR(m_tmpV)); + getGibbs_RT_ref(m_tmpV.data()); /* * Within the method, we protect against inf results if the diff --git a/src/thermo/SemiconductorPhase.cpp b/src/thermo/SemiconductorPhase.cpp index 54749286f..b17ddc357 100644 --- a/src/thermo/SemiconductorPhase.cpp +++ b/src/thermo/SemiconductorPhase.cpp @@ -15,7 +15,7 @@ SemiconductorPhase::SemiconductorPhase(std::string infile, void SemiconductorPhase::getChemPotentials(doublereal* mu) const { - getActivityConcentrations(DATA_PTR(m_work)); + getActivityConcentrations(m_work.data()); mu[0] = ec() + GasConstant*temperature()*(JoyceDixon(m_work[0]/nc())); mu[1] = ev() + GasConstant*temperature()*(log(m_work[1]/nv())); } diff --git a/src/thermo/SingleSpeciesTP.cpp b/src/thermo/SingleSpeciesTP.cpp index fba5a30ce..dfc2e7aba 100644 --- a/src/thermo/SingleSpeciesTP.cpp +++ b/src/thermo/SingleSpeciesTP.cpp @@ -329,8 +329,7 @@ void SingleSpeciesTP::_updateThermo() const { doublereal tnow = temperature(); if (m_tlast != tnow) { - m_spthermo->update(tnow, DATA_PTR(m_cp0_R), DATA_PTR(m_h0_RT), - DATA_PTR(m_s0_R)); + m_spthermo->update(tnow, m_cp0_R.data(), m_h0_RT.data(), m_s0_R.data()); m_tlast = tnow; } } diff --git a/src/thermo/SurfPhase.cpp b/src/thermo/SurfPhase.cpp index e233ed898..0e8dba272 100644 --- a/src/thermo/SurfPhase.cpp +++ b/src/thermo/SurfPhase.cpp @@ -144,7 +144,7 @@ void SurfPhase::getChemPotentials(doublereal* mu) const { _updateThermo(); copy(m_mu0.begin(), m_mu0.end(), mu); - getActivityConcentrations(DATA_PTR(m_work)); + getActivityConcentrations(m_work.data()); for (size_t k = 0; k < m_kk; k++) { mu[k] += GasConstant * temperature() * (log(m_work[k]) - logStandardConc(k)); @@ -243,7 +243,7 @@ void SurfPhase::initThermo() m_work.resize(m_kk); vector_fp cov(m_kk, 0.0); cov[0] = 1.0; - setCoverages(DATA_PTR(cov)); + setCoverages(cov.data()); m_logsize.resize(m_kk); for (size_t k = 0; k < m_kk; k++) { m_logsize[k] = log(size(k)); @@ -277,7 +277,7 @@ void SurfPhase::setCoverages(const doublereal* theta) * Call the Phase:: class function * setConcentrations. */ - setConcentrations(DATA_PTR(m_work)); + setConcentrations(m_work.data()); } void SurfPhase::setCoveragesNoNorm(const doublereal* theta) @@ -289,7 +289,7 @@ void SurfPhase::setCoveragesNoNorm(const doublereal* theta) * Call the Phase:: class function * setConcentrations. */ - setConcentrations(DATA_PTR(m_work)); + setConcentrations(m_work.data()); } void SurfPhase::getCoverages(doublereal* theta) const @@ -320,15 +320,14 @@ void SurfPhase::setCoveragesByName(const compositionMap& cov) throw CanteraError("SurfPhase::setCoveragesByName", "Input coverages are all zero or negative"); } - setCoverages(DATA_PTR(cv)); + setCoverages(cv.data()); } void SurfPhase::_updateThermo(bool force) const { doublereal tnow = temperature(); if (m_tlast != tnow || force) { - m_spthermo->update(tnow, DATA_PTR(m_cp0), DATA_PTR(m_h0), - DATA_PTR(m_s0)); + m_spthermo->update(tnow, m_cp0.data(), m_h0.data(), m_s0.data()); m_tlast = tnow; for (size_t k = 0; k < m_kk; k++) { m_h0[k] *= GasConstant * tnow; diff --git a/src/thermo/ThermoPhase.cpp b/src/thermo/ThermoPhase.cpp index 294ce6d88..01da161b9 100644 --- a/src/thermo/ThermoPhase.cpp +++ b/src/thermo/ThermoPhase.cpp @@ -852,9 +852,9 @@ void ThermoPhase::getdlnActCoeffdlnN_numderiv(const size_t ld, doublereal* const * Evaluate the current base activity coefficients if necessary */ vector_fp ActCoeff_Base(m_kk); - getActivityCoefficients(DATA_PTR(ActCoeff_Base)); + getActivityCoefficients(ActCoeff_Base.data()); vector_fp Xmol_Base(m_kk); - getMoleFractions(DATA_PTR(Xmol_Base)); + getMoleFractions(Xmol_Base.data()); // Make copies of ActCoeff and Xmol_ for use in taking differences vector_fp ActCoeff(m_kk); @@ -889,8 +889,8 @@ void ThermoPhase::getdlnActCoeffdlnN_numderiv(const size_t ld, doublereal* const * Go get new values for the activity coefficients. * -> Note this calls setState_PX(); */ - setState_PX(pres, DATA_PTR(Xmol)); - getActivityCoefficients(DATA_PTR(ActCoeff)); + setState_PX(pres, Xmol.data()); + getActivityCoefficients(ActCoeff.data()); /* * Calculate the column of the matrix @@ -912,7 +912,7 @@ void ThermoPhase::getdlnActCoeffdlnN_numderiv(const size_t ld, doublereal* const * -> Just wanted to make sure that cantera is in sync * with VolPhase after this call. */ - setState_PX(pres, DATA_PTR(Xmol_Base)); + setState_PX(pres, Xmol_Base.data()); } std::string ThermoPhase::report(bool show_thermo, doublereal threshold) const diff --git a/src/transport/DustyGasTransport.cpp b/src/transport/DustyGasTransport.cpp index 60b6124d7..26f57f43a 100644 --- a/src/transport/DustyGasTransport.cpp +++ b/src/transport/DustyGasTransport.cpp @@ -104,7 +104,7 @@ void DustyGasTransport::initialize(ThermoPhase* phase, Transport* gastr) m_dk.resize(m_nsp, 0.0); m_x.resize(m_nsp, 0.0); - m_thermo->getMoleFractions(DATA_PTR(m_x)); + m_thermo->getMoleFractions(m_x.data()); // set flags all false m_knudsen_ok = false; @@ -174,8 +174,8 @@ void DustyGasTransport::getMolarFluxes(const doublereal* const state1, { doublereal conc1, conc2; // cbar will be the average concentration between the two points - doublereal* const cbar = DATA_PTR(m_spwork); - doublereal* const gradc = DATA_PTR(m_spwork2); + doublereal* const cbar = m_spwork.data(); + doublereal* const gradc = m_spwork2.data(); const doublereal t1 = state1[0]; const doublereal t2 = state2[0]; const doublereal rho1 = state1[1]; @@ -264,7 +264,7 @@ void DustyGasTransport::updateTransport_T() void DustyGasTransport::updateTransport_C() { - m_thermo->getMoleFractions(DATA_PTR(m_x)); + m_thermo->getMoleFractions(m_x.data()); // add an offset to avoid a pure species condition // (check - this may be unnecessary) diff --git a/src/transport/GasTransport.cpp b/src/transport/GasTransport.cpp index ce5485777..f8e4408fe 100644 --- a/src/transport/GasTransport.cpp +++ b/src/transport/GasTransport.cpp @@ -143,7 +143,7 @@ doublereal GasTransport::viscosity() updateViscosity_T(); } - multiply(m_phi, DATA_PTR(m_molefracs), DATA_PTR(m_spwork)); + multiply(m_phi, m_molefracs.data(), m_spwork.data()); for (size_t k = 0; k < m_nsp; k++) { vismix += m_molefracs[k] * m_visc[k]/m_spwork[k]; //denom; @@ -542,10 +542,8 @@ void GasTransport::fitCollisionIntegrals(MMCollisionInt& integrals) if (dptr == fitlist.end()) { vector_fp ca(degree+1), cb(degree+1), cc(degree+1); vector_fp co22(degree+1); - integrals.fit(degree, dstar, - DATA_PTR(ca), DATA_PTR(cb), DATA_PTR(cc)); - integrals.fit_omega22(degree, dstar, - DATA_PTR(co22)); + integrals.fit(degree, dstar, ca.data(), cb.data(), cc.data()); + integrals.fit_omega22(degree, dstar, co22.data()); m_omega22_poly.push_back(co22); m_astar_poly.push_back(ca); m_bstar_poly.push_back(cb); @@ -657,21 +655,21 @@ void GasTransport::fitProperties(MMCollisionInt& integrals) w2[n] = 1.0/(spcond[n]*spcond[n]); } } - polyfit(np, DATA_PTR(tlog), DATA_PTR(spvisc), - DATA_PTR(w), degree, ndeg, 0.0, DATA_PTR(c)); - polyfit(np, DATA_PTR(tlog), DATA_PTR(spcond), - DATA_PTR(w), degree, ndeg, 0.0, DATA_PTR(c2)); + polyfit(np, tlog.data(), spvisc.data(), + w.data(), degree, ndeg, 0.0, c.data()); + polyfit(np, tlog.data(), spcond.data(), + w.data(), degree, ndeg, 0.0, c2.data()); // evaluate max fit errors for viscosity for (size_t n = 0; n < np; n++) { double val, fit; if (m_mode == CK_Mode) { val = exp(spvisc[n]); - fit = exp(poly3(tlog[n], DATA_PTR(c))); + fit = exp(poly3(tlog[n], c.data())); } else { sqrt_T = exp(0.5*tlog[n]); val = sqrt_T * pow(spvisc[n],2); - fit = sqrt_T * pow(poly4(tlog[n], DATA_PTR(c)),2); + fit = sqrt_T * pow(poly4(tlog[n], c.data()),2); } err = fit - val; relerr = err/val; @@ -684,11 +682,11 @@ void GasTransport::fitProperties(MMCollisionInt& integrals) double val, fit; if (m_mode == CK_Mode) { val = exp(spcond[n]); - fit = exp(poly3(tlog[n], DATA_PTR(c2))); + fit = exp(poly3(tlog[n], c2.data())); } else { sqrt_T = exp(0.5*tlog[n]); val = sqrt_T * spcond[n]; - fit = sqrt_T * poly4(tlog[n], DATA_PTR(c2)); + fit = sqrt_T * poly4(tlog[n], c2.data()); } err = fit - val; relerr = err/val; @@ -758,19 +756,19 @@ void GasTransport::fitProperties(MMCollisionInt& integrals) w[n] = 1.0/(diff[n]*diff[n]); } } - polyfit(np, DATA_PTR(tlog), DATA_PTR(diff), - DATA_PTR(w), degree, ndeg, 0.0, DATA_PTR(c)); + polyfit(np, tlog.data(), diff.data(), + w.data(), degree, ndeg, 0.0, c.data()); for (size_t n = 0; n < np; n++) { double val, fit; if (m_mode == CK_Mode) { val = exp(diff[n]); - fit = exp(poly3(tlog[n], DATA_PTR(c))); + fit = exp(poly3(tlog[n], c.data())); } else { double t = exp(tlog[n]); double pre = pow(t, 1.5); val = pre * diff[n]; - fit = pre * poly4(tlog[n], DATA_PTR(c)); + fit = pre * poly4(tlog[n], c.data()); } err = fit - val; relerr = err/val; diff --git a/src/transport/HighPressureGasTransport.cpp b/src/transport/HighPressureGasTransport.cpp index 998e5165e..5dd521161 100644 --- a/src/transport/HighPressureGasTransport.cpp +++ b/src/transport/HighPressureGasTransport.cpp @@ -251,7 +251,7 @@ void HighPressureGasTransport::getMultiDiffCoeffs(const size_t ld, doublereal* c // evaluate L0000 if the temperature or concentrations have // changed since it was last evaluated. if (!m_l0000_ok) { - eval_L0000(DATA_PTR(molefracs)); + eval_L0000(molefracs.data()); } // invert L00,00 diff --git a/src/transport/LiquidTransport.cpp b/src/transport/LiquidTransport.cpp index 94b252191..1aa1d9e4c 100644 --- a/src/transport/LiquidTransport.cpp +++ b/src/transport/LiquidTransport.cpp @@ -528,7 +528,7 @@ void LiquidTransport::getBinaryDiffCoeffs(size_t ld, doublereal* d) void LiquidTransport::getMobilities(doublereal* const mobil) { - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); doublereal c1 = ElectronCharge / (Boltzmann * m_temp); for (size_t k = 0; k < m_nsp; k++) { mobil[k] = c1 * m_spwork[k]; @@ -537,7 +537,7 @@ void LiquidTransport::getMobilities(doublereal* const mobil) void LiquidTransport::getFluidMobilities(doublereal* const mobil_f) { - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); doublereal c1 = 1.0 / (GasConstant * m_temp); for (size_t k = 0; k < m_nsp; k++) { mobil_f[k] = c1 * m_spwork[k]; @@ -765,9 +765,9 @@ bool LiquidTransport::update_C() int iStateNew = m_thermo->stateMFNumber(); if (iStateNew != m_iStateMF) { qReturn = false; - m_thermo->getMassFractions(DATA_PTR(m_massfracs)); - m_thermo->getMoleFractions(DATA_PTR(m_molefracs)); - m_thermo->getConcentrations(DATA_PTR(m_concentrations)); + m_thermo->getMassFractions(m_massfracs.data()); + m_thermo->getMoleFractions(m_molefracs.data()); + m_thermo->getConcentrations(m_concentrations.data()); concTot_ = 0.0; concTot_tran_ = 0.0; for (size_t k = 0; k < m_nsp; k++) { @@ -934,7 +934,7 @@ void LiquidTransport::stefan_maxwell_solve() double T = m_thermo->temperature(); update_Grad_lnAC(); - m_thermo->getActivityCoefficients(DATA_PTR(m_actCoeff)); + m_thermo->getActivityCoefficients(m_actCoeff.data()); /* * Calculate the electrochemical potential gradient. This is the diff --git a/src/transport/MMCollisionInt.cpp b/src/transport/MMCollisionInt.cpp index 3a29a62ac..15ff98e51 100644 --- a/src/transport/MMCollisionInt.cpp +++ b/src/transport/MMCollisionInt.cpp @@ -255,7 +255,7 @@ void MMCollisionInt::init(doublereal tsmin, doublereal tsmax, int log_level) m_logTemp[i] = log(tstar[i+1]); vector_fp c(DeltaDegree+1); - rmserr = fitDelta(0, i, DeltaDegree, DATA_PTR(c)); + rmserr = fitDelta(0, i, DeltaDegree, c.data()); if (DEBUG_MODE_ENABLED && log_level > 3) { writelogf("\ndelta* fit at T* = %.6g\n", tstar[i+1]); writelog("omega22 = [" + vec2str(c) + "]\n"); @@ -263,21 +263,21 @@ void MMCollisionInt::init(doublereal tsmin, doublereal tsmax, int log_level) m_o22poly.push_back(c); e22 = std::max(e22, rmserr); - rmserr = fitDelta(1, i, DeltaDegree, DATA_PTR(c)); + rmserr = fitDelta(1, i, DeltaDegree, c.data()); m_apoly.push_back(c); if (DEBUG_MODE_ENABLED && log_level > 3) { writelog("A* = [" + vec2str(c) + "]\n"); } ea = std::max(ea, rmserr); - rmserr = fitDelta(2, i, DeltaDegree, DATA_PTR(c)); + rmserr = fitDelta(2, i, DeltaDegree, c.data()); m_bpoly.push_back(c); if (DEBUG_MODE_ENABLED && log_level > 3) { writelog("B* = [" + vec2str(c) + "]\n"); } eb = std::max(eb, rmserr); - rmserr = fitDelta(3, i, DeltaDegree, DATA_PTR(c)); + rmserr = fitDelta(3, i, DeltaDegree, c.data()); m_cpoly.push_back(c); if (DEBUG_MODE_ENABLED && log_level > 3) { writelog("C* = [" + vec2str(c) + "]\n"); @@ -316,7 +316,7 @@ doublereal MMCollisionInt::fitDelta(int table, int ntstar, int degree, doublerea return 0.0; } w[0] = -1.0; - return polyfit(8, delta, begin, DATA_PTR(w), degree, ndeg, 0.0, c); + return polyfit(8, delta, begin, w.data(), degree, ndeg, 0.0, c); } doublereal MMCollisionInt::omega22(double ts, double deltastar) @@ -337,11 +337,10 @@ doublereal MMCollisionInt::omega22(double ts, double deltastar) if (deltastar == 0.0) { values[i-i1] = omega22_table[8*i]; } else { - values[i-i1] = poly5(deltastar, DATA_PTR(m_o22poly[i])); + values[i-i1] = poly5(deltastar, m_o22poly[i].data()); } } - return quadInterp(log(ts), DATA_PTR(m_logTemp) - + i1, DATA_PTR(values)); + return quadInterp(log(ts), &m_logTemp[i1], values.data()); } doublereal MMCollisionInt::astar(double ts, double deltastar) @@ -362,11 +361,10 @@ doublereal MMCollisionInt::astar(double ts, double deltastar) if (deltastar == 0.0) { values[i-i1] = astar_table[8*(i + 1)]; } else { - values[i-i1] = poly5(deltastar, DATA_PTR(m_apoly[i])); + values[i-i1] = poly5(deltastar, m_apoly[i].data()); } } - return quadInterp(log(ts), DATA_PTR(m_logTemp) - + i1, DATA_PTR(values)); + return quadInterp(log(ts), &m_logTemp[i1], values.data()); } doublereal MMCollisionInt::bstar(double ts, double deltastar) @@ -387,11 +385,10 @@ doublereal MMCollisionInt::bstar(double ts, double deltastar) if (deltastar == 0.0) { values[i-i1] = bstar_table[8*(i + 1)]; } else { - values[i-i1] = poly5(deltastar, DATA_PTR(m_bpoly[i])); + values[i-i1] = poly5(deltastar, m_bpoly[i].data()); } } - return quadInterp(log(ts), DATA_PTR(m_logTemp) + i1, - DATA_PTR(values)); + return quadInterp(log(ts), &m_logTemp[i1], values.data()); } doublereal MMCollisionInt::cstar(double ts, double deltastar) @@ -412,11 +409,10 @@ doublereal MMCollisionInt::cstar(double ts, double deltastar) if (deltastar == 0.0) { values[i-i1] = cstar_table[8*(i + 1)]; } else { - values[i-i1] = poly5(deltastar, DATA_PTR(m_cpoly[i])); + values[i-i1] = poly5(deltastar, m_cpoly[i].data()); } } - return quadInterp(log(ts), DATA_PTR(m_logTemp) + i1, - DATA_PTR(values)); + return quadInterp(log(ts), &m_logTemp[i1], values.data()); } void MMCollisionInt::fit_omega22(int degree, doublereal deltastar, @@ -427,17 +423,16 @@ void MMCollisionInt::fit_omega22(int degree, doublereal deltastar, vector_fp values(n); doublereal rmserr; vector_fp w(n); - doublereal* logT = DATA_PTR(m_logTemp) + m_nmin; + doublereal* logT = &m_logTemp[m_nmin]; for (i = 0; i < n; i++) { if (deltastar == 0.0) { values[i] = omega22_table[8*(i + m_nmin)]; } else { - values[i] = poly5(deltastar, DATA_PTR(m_o22poly[i+m_nmin])); + values[i] = poly5(deltastar, m_o22poly[i+m_nmin].data()); } } w[0]= -1.0; - rmserr = polyfit(n, logT, DATA_PTR(values), - DATA_PTR(w), degree, ndeg, 0.0, o22); + rmserr = polyfit(n, logT, values.data(), w.data(), degree, ndeg, 0.0, o22); if (DEBUG_MODE_ENABLED && m_loglevel > 0 && rmserr > 0.01) { writelogf("Warning: RMS error = %12.6g in omega_22 fit" "with delta* = %12.6g\n", rmserr, deltastar); @@ -452,39 +447,36 @@ void MMCollisionInt::fit(int degree, doublereal deltastar, vector_fp values(n); doublereal rmserr; vector_fp w(n); - doublereal* logT = DATA_PTR(m_logTemp) + m_nmin; + doublereal* logT = &m_logTemp[m_nmin]; for (i = 0; i < n; i++) { if (deltastar == 0.0) { values[i] = astar_table[8*(i + m_nmin + 1)]; } else { - values[i] = poly5(deltastar, DATA_PTR(m_apoly[i+m_nmin])); + values[i] = poly5(deltastar, m_apoly[i+m_nmin].data()); } } w[0]= -1.0; - rmserr = polyfit(n, logT, DATA_PTR(values), - DATA_PTR(w), degree, ndeg, 0.0, a); + rmserr = polyfit(n, logT, values.data(), w.data(), degree, ndeg, 0.0, a); for (i = 0; i < n; i++) { if (deltastar == 0.0) { values[i] = bstar_table[8*(i + m_nmin + 1)]; } else { - values[i] = poly5(deltastar, DATA_PTR(m_bpoly[i+m_nmin])); + values[i] = poly5(deltastar, m_bpoly[i+m_nmin].data()); } } w[0]= -1.0; - rmserr = polyfit(n, logT, DATA_PTR(values), - DATA_PTR(w), degree, ndeg, 0.0, b); + rmserr = polyfit(n, logT, values.data(), w.data(), degree, ndeg, 0.0, b); for (i = 0; i < n; i++) { if (deltastar == 0.0) { values[i] = cstar_table[8*(i + m_nmin + 1)]; } else { - values[i] = poly5(deltastar, DATA_PTR(m_cpoly[i+m_nmin])); + values[i] = poly5(deltastar, m_cpoly[i+m_nmin].data()); } } w[0]= -1.0; - rmserr = polyfit(n, logT, DATA_PTR(values), - DATA_PTR(w), degree, ndeg, 0.0, c); + rmserr = polyfit(n, logT, values.data(), w.data(), degree, ndeg, 0.0, c); if (DEBUG_MODE_ENABLED && m_loglevel > 2) { writelogf("\nT* fit at delta* = %.6g\n", deltastar); diff --git a/src/transport/MixTransport.cpp b/src/transport/MixTransport.cpp index 69d0f29d5..ea537098d 100644 --- a/src/transport/MixTransport.cpp +++ b/src/transport/MixTransport.cpp @@ -62,7 +62,7 @@ void MixTransport::init(ThermoPhase* thermo, int mode, int log_level) void MixTransport::getMobilities(doublereal* const mobil) { - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); doublereal c1 = ElectronCharge / (Boltzmann * m_temp); for (size_t k = 0; k < m_nsp; k++) { mobil[k] = c1 * m_spwork[k]; @@ -101,7 +101,7 @@ void MixTransport::getSpeciesFluxes(size_t ndim, const doublereal* const grad_T, { update_T(); update_C(); - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); const vector_fp& mw = m_thermo->molecularWeights(); const doublereal* y = m_thermo->massFractions(); doublereal rhon = m_thermo->molarDensity(); @@ -144,7 +144,7 @@ void MixTransport::update_C() // fractions. m_visc_ok = false; m_condmix_ok = false; - m_thermo->getMoleFractions(DATA_PTR(m_molefracs)); + m_thermo->getMoleFractions(m_molefracs.data()); // add an offset to avoid a pure species condition for (size_t k = 0; k < m_nsp; k++) { diff --git a/src/transport/MultiTransport.cpp b/src/transport/MultiTransport.cpp index 162323382..ad566de8c 100644 --- a/src/transport/MultiTransport.cpp +++ b/src/transport/MultiTransport.cpp @@ -148,22 +148,22 @@ void MultiTransport::solveLMatrixEquation() m_Lmatrix.resize(3*m_nsp, 3*m_nsp, 0.0); //! Evaluate the upper-left block of the L matrix. - eval_L0000(DATA_PTR(m_molefracs)); - eval_L0010(DATA_PTR(m_molefracs)); + eval_L0000(m_molefracs.data()); + eval_L0010(m_molefracs.data()); eval_L0001(); eval_L1000(); - eval_L1010(DATA_PTR(m_molefracs)); - eval_L1001(DATA_PTR(m_molefracs)); + eval_L1010(m_molefracs.data()); + eval_L1001(m_molefracs.data()); eval_L0100(); eval_L0110(); - eval_L0101(DATA_PTR(m_molefracs)); + eval_L0101(m_molefracs.data()); // Solve it using GMRES or LU decomposition. The last solution // in m_a should provide a good starting guess, so convergence // should be fast. copy(m_b.begin(), m_b.end(), m_a.begin()); try { - solve(m_Lmatrix, DATA_PTR(m_a)); + solve(m_Lmatrix, m_a.data()); } catch (CanteraError& err) { err.save(); throw CanteraError("MultiTransport::solveLMatrixEquation", @@ -192,7 +192,7 @@ void MultiTransport::getSpeciesFluxes(size_t ndim, const doublereal* const grad_ } } if (addThermalDiffusion) { - getThermalDiffCoeffs(DATA_PTR(m_spwork)); + getThermalDiffCoeffs(m_spwork.data()); } const doublereal* y = m_thermo->massFractions(); @@ -277,9 +277,9 @@ void MultiTransport::getSpeciesFluxes(size_t ndim, const doublereal* const grad_ void MultiTransport::getMassFluxes(const doublereal* state1, const doublereal* state2, doublereal delta, doublereal* fluxes) { - double* x1 = DATA_PTR(m_spwork1); - double* x2 = DATA_PTR(m_spwork2); - double* x3 = DATA_PTR(m_spwork3); + double* x1 = m_spwork1.data(); + double* x2 = m_spwork2.data(); + double* x3 = m_spwork3.data(); size_t n, nsp = m_thermo->nSpecies(); m_thermo->restoreState(nsp+2, state1); double p1 = m_thermo->pressure(); @@ -298,7 +298,7 @@ void MultiTransport::getMassFluxes(const doublereal* state1, const doublereal* s x3[n] = 0.5*(x1[n] + x2[n]); } m_thermo->setState_TPX(t, p, x3); - m_thermo->getMoleFractions(DATA_PTR(m_molefracs)); + m_thermo->getMoleFractions(m_molefracs.data()); // update the binary diffusion coefficients if necessary update_T(); @@ -309,7 +309,7 @@ void MultiTransport::getMassFluxes(const doublereal* state1, const doublereal* s bool addThermalDiffusion = false; if (state1[0] != state2[0]) { addThermalDiffusion = true; - getThermalDiffCoeffs(DATA_PTR(m_spwork)); + getThermalDiffCoeffs(m_spwork.data()); } const doublereal* y = m_thermo->massFractions(); @@ -396,7 +396,7 @@ void MultiTransport::getMultiDiffCoeffs(const size_t ld, doublereal* const d) // evaluate L0000 if the temperature or concentrations have // changed since it was last evaluated. if (!m_l0000_ok) { - eval_L0000(DATA_PTR(m_molefracs)); + eval_L0000(m_molefracs.data()); } // invert L00,00 @@ -436,7 +436,7 @@ void MultiTransport::update_T() void MultiTransport::update_C() { // Update the local mole fraction array - m_thermo->getMoleFractions(DATA_PTR(m_molefracs)); + m_thermo->getMoleFractions(m_molefracs.data()); for (size_t k = 0; k < m_nsp; k++) { // add an offset to avoid a pure species condition @@ -467,15 +467,15 @@ void MultiTransport::updateThermal_T() z = m_logt - m_log_eps_k(i,j); ipoly = m_poly[i][j]; if (m_mode == CK_Mode) { - m_om22(i,j) = poly6(z, DATA_PTR(m_omega22_poly[ipoly])); - m_astar(i,j) = poly6(z, DATA_PTR(m_astar_poly[ipoly])); - m_bstar(i,j) = poly6(z, DATA_PTR(m_bstar_poly[ipoly])); - m_cstar(i,j) = poly6(z, DATA_PTR(m_cstar_poly[ipoly])); + m_om22(i,j) = poly6(z, m_omega22_poly[ipoly].data()); + m_astar(i,j) = poly6(z, m_astar_poly[ipoly].data()); + m_bstar(i,j) = poly6(z, m_bstar_poly[ipoly].data()); + m_cstar(i,j) = poly6(z, m_cstar_poly[ipoly].data()); } else { - m_om22(i,j) = poly8(z, DATA_PTR(m_omega22_poly[ipoly])); - m_astar(i,j) = poly8(z, DATA_PTR(m_astar_poly[ipoly])); - m_bstar(i,j) = poly8(z, DATA_PTR(m_bstar_poly[ipoly])); - m_cstar(i,j) = poly8(z, DATA_PTR(m_cstar_poly[ipoly])); + m_om22(i,j) = poly8(z, m_omega22_poly[ipoly].data()); + m_astar(i,j) = poly8(z, m_astar_poly[ipoly].data()); + m_bstar(i,j) = poly8(z, m_bstar_poly[ipoly].data()); + m_cstar(i,j) = poly8(z, m_cstar_poly[ipoly].data()); } m_om22(j,i) = m_om22(i,j); m_astar(j,i) = m_astar(i,j); diff --git a/src/transport/SimpleTransport.cpp b/src/transport/SimpleTransport.cpp index fe7588589..cbf02289e 100644 --- a/src/transport/SimpleTransport.cpp +++ b/src/transport/SimpleTransport.cpp @@ -310,7 +310,7 @@ void SimpleTransport::getBinaryDiffCoeffs(size_t ld, doublereal* d) void SimpleTransport::getMobilities(doublereal* const mobil) { - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); doublereal c1 = ElectronCharge / (Boltzmann * m_temp); for (size_t k = 0; k < m_nsp; k++) { mobil[k] = c1 * m_spwork[k]; @@ -319,7 +319,7 @@ void SimpleTransport::getMobilities(doublereal* const mobil) void SimpleTransport::getFluidMobilities(doublereal* const mobil_f) { - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); doublereal c1 = 1.0 / (GasConstant * m_temp); for (size_t k = 0; k < m_nsp; k++) { mobil_f[k] = c1 * m_spwork[k]; @@ -394,7 +394,7 @@ void SimpleTransport::getSpeciesVdiff(size_t ndim, set_Grad_X(grad_X); const doublereal* y = m_thermo->massFractions(); const doublereal rho = m_thermo->density(); - getSpeciesFluxesExt(m_nsp, DATA_PTR(Vdiff)); + getSpeciesFluxesExt(m_nsp, Vdiff); for (size_t n = 0; n < m_nDim; n++) { for (size_t k = 0; k < m_nsp; k++) { if (y[k] > 1.0E-200) { @@ -416,7 +416,7 @@ void SimpleTransport::getSpeciesVdiffES(size_t ndim, const doublereal* grad_T, set_Grad_V(grad_Phi); const doublereal* y = m_thermo->massFractions(); const doublereal rho = m_thermo->density(); - getSpeciesFluxesExt(m_nsp, DATA_PTR(Vdiff)); + getSpeciesFluxesExt(m_nsp, Vdiff); for (size_t n = 0; n < m_nDim; n++) { for (size_t k = 0; k < m_nsp; k++) { if (y[k] > 1.0E-200) { @@ -443,7 +443,7 @@ void SimpleTransport::getSpeciesFluxesExt(size_t ldf, doublereal* fluxes) update_T(); update_C(); - getMixDiffCoeffs(DATA_PTR(m_spwork)); + getMixDiffCoeffs(m_spwork.data()); const vector_fp& mw = m_thermo->molecularWeights(); const doublereal* y = m_thermo->massFractions(); @@ -539,8 +539,8 @@ bool SimpleTransport::update_C() int iStateNew = m_thermo->stateMFNumber(); if (iStateNew != m_iStateMF) { qReturn = false; - m_thermo->getMoleFractions(DATA_PTR(m_molefracs)); - m_thermo->getConcentrations(DATA_PTR(m_concentrations)); + m_thermo->getMoleFractions(m_molefracs.data()); + m_thermo->getConcentrations(m_concentrations.data()); concTot_ = 0.0; for (size_t k = 0; k < m_nsp; k++) { m_molefracs[k] = std::max(0.0, m_molefracs[k]); diff --git a/src/zeroD/FlowReactor.cpp b/src/zeroD/FlowReactor.cpp index ed6515e5a..69790fe50 100644 --- a/src/zeroD/FlowReactor.cpp +++ b/src/zeroD/FlowReactor.cpp @@ -92,7 +92,7 @@ void FlowReactor::evalEqs(doublereal time, doublereal* y, ydot[1] = m_fctr*(m_speed0 - m_thermo->density()*m_speed/m_rho0); /* species equations */ - const doublereal* mw = DATA_PTR(m_thermo->molecularWeights()); + const vector_fp& mw = m_thermo->molecularWeights(); if (m_chem) { m_kin->getNetProductionRates(ydot+2); // "omega dot" diff --git a/src/zeroD/ReactorNet.cpp b/src/zeroD/ReactorNet.cpp index 76d0011f8..9cfdc139d 100644 --- a/src/zeroD/ReactorNet.cpp +++ b/src/zeroD/ReactorNet.cpp @@ -69,7 +69,7 @@ void ReactorNet::initialize() m_ydot.resize(m_nv,0.0); m_atol.resize(neq()); fill(m_atol.begin(), m_atol.end(), m_atols); - m_integ->setTolerances(m_rtol, neq(), DATA_PTR(m_atol)); + m_integ->setTolerances(m_rtol, neq(), m_atol.data()); m_integ->setSensitivityTolerances(m_rtolsens, m_atolsens); m_integ->setMaxStepSize(m_maxstep); m_integ->setMaxErrTestFails(m_maxErrTestFails); @@ -157,7 +157,7 @@ void ReactorNet::evalJacobian(doublereal t, doublereal* y, dy = y[n] - ysave; // calculate perturbed residual - eval(t, y, DATA_PTR(m_ydot), p); + eval(t, y, m_ydot.data(), p); // compute nth column of Jacobian for (size_t m = 0; m < m_nv; m++) { diff --git a/src/zeroD/Wall.cpp b/src/zeroD/Wall.cpp index e11656428..935c3bc45 100644 --- a/src/zeroD/Wall.cpp +++ b/src/zeroD/Wall.cpp @@ -48,7 +48,7 @@ void Wall::setKinetics(Kinetics* left, Kinetics* right) m_surf[0] = (SurfPhase*)&left->thermo(ileft); m_nsp[0] = m_surf[0]->nSpecies(); m_leftcov.resize(m_nsp[0]); - m_surf[0]->getCoverages(DATA_PTR(m_leftcov)); + m_surf[0]->getCoverages(m_leftcov.data()); } } if (right) { @@ -57,7 +57,7 @@ void Wall::setKinetics(Kinetics* left, Kinetics* right) m_surf[1] = (SurfPhase*)&right->thermo(iright); m_nsp[1] = m_surf[1]->nSpecies(); m_rightcov.resize(m_nsp[1]); - m_surf[1]->getCoverages(DATA_PTR(m_rightcov)); + m_surf[1]->getCoverages(m_rightcov.data()); } } if (ileft == npos || iright == npos) { @@ -133,9 +133,9 @@ void Wall::getCoverages(int leftright, doublereal* cov) void Wall::syncCoverages(int leftright) { if (leftright == 0) { - m_surf[0]->setCoverages(DATA_PTR(m_leftcov)); + m_surf[0]->setCoverages(m_leftcov.data()); } else { - m_surf[1]->setCoverages(DATA_PTR(m_rightcov)); + m_surf[1]->setCoverages(m_rightcov.data()); } } diff --git a/test_problems/ChemEquil_ionizedGas/ionizedGasEquil.cpp b/test_problems/ChemEquil_ionizedGas/ionizedGasEquil.cpp index 0a0650898..ca6998202 100644 --- a/test_problems/ChemEquil_ionizedGas/ionizedGasEquil.cpp +++ b/test_problems/ChemEquil_ionizedGas/ionizedGasEquil.cpp @@ -64,7 +64,7 @@ int main(int argc, char** argv) cout << "heat capacity c_p = " << gas->cp_mass() << endl; cout << "heat capacity c_v = " << gas->cv_mass() << endl << endl; - gas->getMoleFractions(DATA_PTR(Xmol)); + gas->getMoleFractions(Xmol.data()); fprintf(FF,"%10.4g, %10.4g,", tkelvin, pres); for (size_t k = 0; k < kk; k++) { if (fabs(Xmol[k]) < 1.0E-130) { diff --git a/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp b/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp index 11d52542a..8b71fa497 100644 --- a/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp +++ b/test_problems/VCSnonideal/NaCl_equil/nacl_equil.cpp @@ -91,7 +91,7 @@ int main(int argc, char** argv) vector_fp Xmol(kk, 0.0); size_t iH2OL = hmw.speciesIndex("H2O(L)"); Xmol[iH2OL] = 1.0; - hmw.setState_TPX(T, pres, DATA_PTR(Xmol)); + hmw.setState_TPX(T, pres, Xmol.data()); ThermoPhase* gas = newPhase("gas.xml"); @@ -102,7 +102,7 @@ int main(int argc, char** argv) } size_t iN2 = gas->speciesIndex("N2"); Xmol[iN2] = 1.0; - gas->setState_TPX(T, pres, DATA_PTR(Xmol)); + gas->setState_TPX(T, pres, Xmol.data()); StoichSubstanceSSTP ss("NaCl_Solid.xml", ""); diff --git a/test_problems/dustyGasTransport/dustyGasTransportTest.cpp b/test_problems/dustyGasTransport/dustyGasTransportTest.cpp index c559731c5..c96730497 100644 --- a/test_problems/dustyGasTransport/dustyGasTransportTest.cpp +++ b/test_problems/dustyGasTransport/dustyGasTransportTest.cpp @@ -28,7 +28,7 @@ int main(int argc, char** argv) tranDusty->setMeanPoreRadius(1.5E-7); tranDusty->setMeanParticleDiameter(1.5E-6); - tranDusty->getMultiDiffCoeffs(nsp, DATA_PTR(multiD)); + tranDusty->getMultiDiffCoeffs(nsp, multiD.data()); printf("MultiDiffusion coefficients: \n"); for (size_t i = 0; i < nsp; i++) { for (size_t j = 0; j < nsp; j++) { diff --git a/test_problems/mixGasTransport/mixGasTransport.cpp b/test_problems/mixGasTransport/mixGasTransport.cpp index 6b5e4d87e..58230b734 100644 --- a/test_problems/mixGasTransport/mixGasTransport.cpp +++ b/test_problems/mixGasTransport/mixGasTransport.cpp @@ -131,11 +131,11 @@ int main(int argc, char** argv) int log_level = 0; Transport* tran = newTransportMgr("Mix", &g, log_level=0); MixTransport* tranMix = dynamic_cast(tran); - g.setState_TPX(1500.0, pres, DATA_PTR(Xset)); + g.setState_TPX(1500.0, pres, Xset.data()); vector_fp mixDiffs(nsp, 0.0); - tranMix->getMixDiffCoeffs(DATA_PTR(mixDiffs)); + tranMix->getMixDiffCoeffs(mixDiffs.data()); printf(" Dump of the mixture Diffusivities:\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -144,7 +144,7 @@ int main(int argc, char** argv) vector_fp specVisc(nsp, 0.0); - tranMix->getSpeciesViscosities(DATA_PTR(specVisc)); + tranMix->getSpeciesViscosities(specVisc.data()); printf(" Dump of the species viscosities:\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -152,7 +152,7 @@ int main(int argc, char** argv) } vector_fp thermDiff(nsp, 0.0); - tranMix->getThermalDiffCoeffs(DATA_PTR(thermDiff)); + tranMix->getThermalDiffCoeffs(thermDiff.data()); printf(" Dump of the Thermal Diffusivities :\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -162,13 +162,13 @@ int main(int argc, char** argv) printf("Viscosity and thermal Cond vs. T\n"); for (size_t k = 0; k < 10; k++) { T1 = 400. + 100. * k; - g.setState_TPX(T1, pres, DATA_PTR(Xset)); + g.setState_TPX(T1, pres, Xset.data()); double visc = tran->viscosity(); double cond = tran->thermalConductivity(); printf(" %13.4g %13.4g %13.4g\n", T1, visc, cond); } - g.setState_TPX(T1, pres, DATA_PTR(Xset)); + g.setState_TPX(T1, pres, Xset.data()); Array2D Bdiff(nsp, nsp, 0.0); printf("Binary Diffusion Coefficients H2 vs species\n"); @@ -182,7 +182,7 @@ int main(int argc, char** argv) vector_fp specMob(nsp, 0.0); - tranMix->getMobilities(DATA_PTR(specMob)); + tranMix->getMobilities(specMob.data()); printf(" Dump of the species mobilities:\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -191,7 +191,7 @@ int main(int argc, char** argv) Array2D fluxes(nsp, 2, 0.0); - tranMix->getSpeciesFluxes(2, DATA_PTR(grad_T), nsp, + tranMix->getSpeciesFluxes(2, grad_T.data(), nsp, grad_X.ptrColumn(0), nsp, fluxes.ptrColumn(0)); printf(" Dump of the species fluxes:\n"); double sum1 = 0.0; diff --git a/test_problems/multiGasTransport/multiGasTransport.cpp b/test_problems/multiGasTransport/multiGasTransport.cpp index 3e224519c..37094db81 100644 --- a/test_problems/multiGasTransport/multiGasTransport.cpp +++ b/test_problems/multiGasTransport/multiGasTransport.cpp @@ -141,10 +141,10 @@ int main(int argc, char** argv) int log_level = 0; Transport* tran = newTransportMgr("Multi", &g, log_level=0); MultiTransport* tranMix = dynamic_cast(tran); - g.setState_TPX(1500.0, pres, DATA_PTR(Xset)); + g.setState_TPX(1500.0, pres, Xset.data()); vector_fp mixDiffs(nsp, 0.0); - tranMix->getMixDiffCoeffs(DATA_PTR(mixDiffs)); + tranMix->getMixDiffCoeffs(mixDiffs.data()); printf(" Dump of the mixture Diffusivities:\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -152,7 +152,7 @@ int main(int argc, char** argv) } vector_fp specVisc(nsp, 0.0); - tranMix->getSpeciesViscosities(DATA_PTR(specVisc)); + tranMix->getSpeciesViscosities(specVisc.data()); printf(" Dump of the species viscosities:\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -160,7 +160,7 @@ int main(int argc, char** argv) } vector_fp thermDiff(nsp, 0.0); - tranMix->getThermalDiffCoeffs(DATA_PTR(thermDiff)); + tranMix->getThermalDiffCoeffs(thermDiff.data()); printf(" Dump of the Thermal Diffusivities :\n"); for (size_t k = 0; k < nsp; k++) { string sss = g.speciesName(k); @@ -171,13 +171,13 @@ int main(int argc, char** argv) printf("Viscosity and thermal Cond vs. T\n"); for (size_t k = 0; k < 10; k++) { T1 = 400. + 100. * k; - g.setState_TPX(T1, pres, DATA_PTR(Xset)); + g.setState_TPX(T1, pres, Xset.data()); double visc = tran->viscosity(); double cond = tran->thermalConductivity(); printf(" %13g %13.4g %13.4g\n", T1, visc, cond); } - g.setState_TPX(T1, pres, DATA_PTR(Xset)); + g.setState_TPX(T1, pres, Xset.data()); Array2D Bdiff(nsp, nsp, 0.0); printf("Binary Diffusion Coefficients H2 vs species\n"); @@ -197,7 +197,7 @@ int main(int argc, char** argv) } Array2D fluxes(nsp, 2, 0.0); - tranMix->getSpeciesFluxes(2, DATA_PTR(grad_T), nsp, + tranMix->getSpeciesFluxes(2, grad_T.data(), nsp, grad_X.ptrColumn(0), nsp, fluxes.ptrColumn(0)); printf(" Dump of the species fluxes:\n"); double sum1 = 0.0; diff --git a/test_problems/surfkin/surfdemo.cpp b/test_problems/surfkin/surfdemo.cpp index 513effa59..e62c0acc0 100644 --- a/test_problems/surfkin/surfdemo.cpp +++ b/test_problems/surfkin/surfdemo.cpp @@ -20,9 +20,9 @@ int main() Interface surf("surface.xml", "surface", phases); vector_fp cov { 0.8, 0.2 }; cout.precision(4); - surf.setCoverages(DATA_PTR(cov)); + surf.setCoverages(cov.data()); vector_fp wdot(gas.nSpecies() + surf.nSpecies()); - surf.getNetProductionRates(DATA_PTR(wdot)); + surf.getNetProductionRates(wdot.data()); for (size_t k = 0; k < gas.nSpecies(); k++) { cout << gas.speciesName(k) << " " << wdot[k] << endl; } @@ -36,4 +36,3 @@ int main() } return 0; } -