From c31e48cfb3f81c52b1380625520e4aeb9c810079 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Sun, 12 Feb 2012 02:46:57 +0000 Subject: [PATCH] Variable-size arrays are not part of the C++ standard --- src/thermo/MargulesVPSSTP.cpp | 15 +++--- src/thermo/MixedSolventElectrolyte.cpp | 15 +++--- src/thermo/PhaseCombo_Interaction.cpp | 15 +++--- src/thermo/RedlichKisterVPSSTP.cpp | 15 +++--- src/transport/LiquidTranInteraction.cpp | 72 ++++++++++++------------- src/transport/LiquidTransport.cpp | 8 +-- 6 files changed, 76 insertions(+), 64 deletions(-) diff --git a/src/thermo/MargulesVPSSTP.cpp b/src/thermo/MargulesVPSSTP.cpp index 09d7a93fa..d00483f63 100644 --- a/src/thermo/MargulesVPSSTP.cpp +++ b/src/thermo/MargulesVPSSTP.cpp @@ -404,8 +404,9 @@ void MargulesVPSSTP::getChemPotentials(doublereal* mu) const doublereal MargulesVPSSTP::enthalpy_mole() const { int kk = nSpecies(); - double hbar[kk], h = 0; - getPartialMolarEnthalpies(hbar); + double h = 0; + vector_fp hbar(kk); + getPartialMolarEnthalpies(&hbar[0]); for (int i = 0; i < kk; i++) { h += moleFractions_[i]*hbar[i]; } @@ -416,8 +417,9 @@ doublereal MargulesVPSSTP::enthalpy_mole() const doublereal MargulesVPSSTP::entropy_mole() const { int kk = nSpecies(); - double sbar[kk], s = 0; - getPartialMolarEntropies(sbar); + double s = 0; + vector_fp sbar(kk); + getPartialMolarEntropies(&sbar[0]); for (int i = 0; i < kk; i++) { s += moleFractions_[i]*sbar[i]; } @@ -428,8 +430,9 @@ doublereal MargulesVPSSTP::entropy_mole() const doublereal MargulesVPSSTP::cp_mole() const { int kk = nSpecies(); - double cpbar[kk], cp = 0; - getPartialMolarCp(cpbar); + double cp = 0; + vector_fp cpbar(kk); + getPartialMolarCp(&cpbar[0]); for (int i = 0; i < kk; i++) { cp += moleFractions_[i]*cpbar[i]; } diff --git a/src/thermo/MixedSolventElectrolyte.cpp b/src/thermo/MixedSolventElectrolyte.cpp index 0a8adc648..be81adeb4 100644 --- a/src/thermo/MixedSolventElectrolyte.cpp +++ b/src/thermo/MixedSolventElectrolyte.cpp @@ -409,8 +409,9 @@ void MixedSolventElectrolyte::getChemPotentials(doublereal* mu) const doublereal MixedSolventElectrolyte::enthalpy_mole() const { int kk = nSpecies(); - double hbar[kk], h = 0; - getPartialMolarEnthalpies(hbar); + double h = 0; + vector_fp hbar(kk); + getPartialMolarEnthalpies(&hbar[0]); for (int i = 0; i < kk; i++) { h += moleFractions_[i]*hbar[i]; } @@ -421,8 +422,9 @@ doublereal MixedSolventElectrolyte::enthalpy_mole() const doublereal MixedSolventElectrolyte::entropy_mole() const { int kk = nSpecies(); - double sbar[kk], s = 0; - getPartialMolarEntropies(sbar); + double s = 0; + vector_fp sbar(kk); + getPartialMolarEntropies(&sbar[0]); for (int i = 0; i < kk; i++) { s += moleFractions_[i]*sbar[i]; } @@ -433,8 +435,9 @@ doublereal MixedSolventElectrolyte::entropy_mole() const doublereal MixedSolventElectrolyte::cp_mole() const { int kk = nSpecies(); - double cpbar[kk], cp = 0; - getPartialMolarCp(cpbar); + double cp = 0; + vector_fp cpbar(kk); + getPartialMolarCp(&cpbar[0]); for (int i = 0; i < kk; i++) { cp += moleFractions_[i]*cpbar[i]; } diff --git a/src/thermo/PhaseCombo_Interaction.cpp b/src/thermo/PhaseCombo_Interaction.cpp index d163d1690..0a810a7f3 100644 --- a/src/thermo/PhaseCombo_Interaction.cpp +++ b/src/thermo/PhaseCombo_Interaction.cpp @@ -421,8 +421,9 @@ void PhaseCombo_Interaction::getChemPotentials(doublereal* mu) const doublereal PhaseCombo_Interaction::enthalpy_mole() const { int kk = nSpecies(); - double hbar[kk], h = 0; - getPartialMolarEnthalpies(hbar); + double h = 0; + vector_fp hbar(kk); + getPartialMolarEnthalpies(&hbar[0]); for (int i = 0; i < kk; i++) { h += moleFractions_[i]*hbar[i]; } @@ -433,8 +434,9 @@ doublereal PhaseCombo_Interaction::enthalpy_mole() const doublereal PhaseCombo_Interaction::entropy_mole() const { int kk = nSpecies(); - double sbar[kk], s = 0; - getPartialMolarEntropies(sbar); + double s = 0; + vector_fp sbar(kk); + getPartialMolarEntropies(&sbar[0]); for (int i = 0; i < kk; i++) { s += moleFractions_[i]*sbar[i]; } @@ -445,8 +447,9 @@ doublereal PhaseCombo_Interaction::entropy_mole() const doublereal PhaseCombo_Interaction::cp_mole() const { int kk = nSpecies(); - double cpbar[kk], cp = 0; - getPartialMolarCp(cpbar); + double cp = 0; + vector_fp cpbar(kk); + getPartialMolarCp(&cpbar[0]); for (int i = 0; i < kk; i++) { cp += moleFractions_[i]*cpbar[i]; } diff --git a/src/thermo/RedlichKisterVPSSTP.cpp b/src/thermo/RedlichKisterVPSSTP.cpp index 3ee78e006..47eb22494 100644 --- a/src/thermo/RedlichKisterVPSSTP.cpp +++ b/src/thermo/RedlichKisterVPSSTP.cpp @@ -410,8 +410,9 @@ void RedlichKisterVPSSTP::getChemPotentials(doublereal* mu) const doublereal RedlichKisterVPSSTP::enthalpy_mole() const { int kk = nSpecies(); - double hbar[kk], h = 0; - getPartialMolarEnthalpies(hbar); + double h = 0; + vector_fp hbar(kk); + getPartialMolarEnthalpies(&hbar[0]); for (int i = 0; i < kk; i++) { h += moleFractions_[i]*hbar[i]; } @@ -422,8 +423,9 @@ doublereal RedlichKisterVPSSTP::enthalpy_mole() const doublereal RedlichKisterVPSSTP::entropy_mole() const { int kk = nSpecies(); - double sbar[kk], s = 0; - getPartialMolarEntropies(sbar); + double s = 0; + vector_fp sbar(kk); + getPartialMolarEntropies(&sbar[0]); for (int i = 0; i < kk; i++) { s += moleFractions_[i]*sbar[i]; } @@ -434,8 +436,9 @@ doublereal RedlichKisterVPSSTP::entropy_mole() const doublereal RedlichKisterVPSSTP::cp_mole() const { int kk = nSpecies(); - double cpbar[kk], cp = 0; - getPartialMolarCp(cpbar); + double cp = 0; + vector_fp cpbar(kk); + getPartialMolarCp(&cpbar[0]); for (int i = 0; i < kk; i++) { cp += moleFractions_[i]*cpbar[i]; } diff --git a/src/transport/LiquidTranInteraction.cpp b/src/transport/LiquidTranInteraction.cpp index 9cb540b7c..cb0b33f49 100644 --- a/src/transport/LiquidTranInteraction.cpp +++ b/src/transport/LiquidTranInteraction.cpp @@ -259,8 +259,8 @@ doublereal LTI_Solvent::getMixTransProp(doublereal* speciesValues, doublereal* s int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0.0; @@ -307,8 +307,8 @@ doublereal LTI_Solvent::getMixTransProp(std::vector LTPptrs) int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0.0; @@ -345,8 +345,8 @@ doublereal LTI_MoleFracs::getMixTransProp(doublereal* speciesValues, doublereal* int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -380,8 +380,8 @@ doublereal LTI_MoleFracs::getMixTransProp(std::vector LTPptrs) int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -409,8 +409,8 @@ doublereal LTI_MassFracs::getMixTransProp(doublereal* speciesValues, doublereal* int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal massfracs[nsp]; - m_thermo->getMassFractions(massfracs); + vector_fp massfracs(nsp); + m_thermo->getMassFractions(&massfracs[0]); doublereal value = 0; @@ -444,8 +444,8 @@ doublereal LTI_MassFracs::getMixTransProp(std::vector LTPptrs) int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal massfracs[nsp]; - m_thermo->getMassFractions(massfracs); + vector_fp massfracs(nsp); + m_thermo->getMassFractions(&massfracs[0]); doublereal value = 0; @@ -476,8 +476,8 @@ doublereal LTI_Log_MoleFracs::getMixTransProp(doublereal* speciesValues, doubler int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); @@ -516,8 +516,8 @@ doublereal LTI_Log_MoleFracs::getMixTransProp(std::vector LTPptrs) int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -572,8 +572,8 @@ doublereal LTI_Pairwise_Interaction::getMixTransProp(doublereal* speciesValues, { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -587,8 +587,8 @@ doublereal LTI_Pairwise_Interaction::getMixTransProp(std::vector LT { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -602,8 +602,8 @@ void LTI_Pairwise_Interaction::getMatrixTransProp(DenseMatrix& mat, doublereal* int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); mat.resize(nsp, nsp, 0.0); for (int i = 0; i < nsp; i++) @@ -665,8 +665,8 @@ doublereal LTI_StefanMaxwell_PPN::getMixTransProp(doublereal* speciesValues, dou { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -680,8 +680,8 @@ doublereal LTI_StefanMaxwell_PPN::getMixTransProp(std::vector LTPpt { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -701,8 +701,8 @@ void LTI_StefanMaxwell_PPN::getMatrixTransProp(DenseMatrix& mat, doublereal* spe throw CanteraError("LTI_StefanMaxwell_PPN::getMatrixTransProp","Function may only be called with a 3-ion system"); } doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); vector_fp neut_molefracs; ions_thermo->getNeutralMolecMoleFractions(neut_molefracs); vector cation; @@ -776,8 +776,8 @@ doublereal LTI_StokesEinstein::getMixTransProp(doublereal* speciesValues, double { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -791,8 +791,8 @@ doublereal LTI_StokesEinstein::getMixTransProp(std::vector LTPptrs) { int nsp = m_thermo->nSpecies(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -843,8 +843,8 @@ doublereal LTI_MoleFracs_ExpT::getMixTransProp(doublereal* speciesValues, double int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; @@ -875,8 +875,8 @@ doublereal LTI_MoleFracs_ExpT::getMixTransProp(std::vector LTPptrs) int nsp = m_thermo->nSpecies(); doublereal temp = m_thermo->temperature(); - doublereal molefracs[nsp]; - m_thermo->getMoleFractions(molefracs); + vector_fp molefracs(nsp); + m_thermo->getMoleFractions(&molefracs[0]); doublereal value = 0; diff --git a/src/transport/LiquidTransport.cpp b/src/transport/LiquidTransport.cpp index 23ac91aed..d82ba4702 100644 --- a/src/transport/LiquidTransport.cpp +++ b/src/transport/LiquidTransport.cpp @@ -911,8 +911,8 @@ void LiquidTransport::set_Grad_X(const doublereal* const grad_X) doublereal LiquidTransport::getElectricConduct() { doublereal gradT = 0.0; - doublereal gradX[m_nDim * m_nsp]; - doublereal gradV[m_nDim]; + vector_fp gradX(m_nDim * m_nsp); + vector_fp gradV(m_nDim); for (int i = 0; i < m_nDim; i++) { for (int k = 0; k < m_nsp; k++) { gradX[ i*m_nDim + k] = 0.0; @@ -921,8 +921,8 @@ doublereal LiquidTransport::getElectricConduct() } set_Grad_T(&gradT); - set_Grad_X(gradX); - set_Grad_V(gradV); + set_Grad_X(&gradX[0]); + set_Grad_V(&gradV[0]); doublereal* fluxes = new doublereal(m_nsp * m_nDim); doublereal current;