diff --git a/Cantera/src/equil/vcs_MultiPhaseEquil.cpp b/Cantera/src/equil/vcs_MultiPhaseEquil.cpp index a7599b748..6359debf0 100644 --- a/Cantera/src/equil/vcs_MultiPhaseEquil.cpp +++ b/Cantera/src/equil/vcs_MultiPhaseEquil.cpp @@ -946,17 +946,11 @@ namespace VCSnonideal { ne++; } - - /* * Assign and malloc structures */ - VolPhase->nElemConstraints = ne; + VolPhase->elemResize(ne); - VolPhase->ElName.resize(ne); - - VolPhase->ElActive.resize(ne+1, 1); - VolPhase->m_elType.resize(ne, VCS_ELEM_TYPE_ABSPOS); if (VolPhase->ChargeNeutralityElement >= 0) { VolPhase->m_elType[VolPhase->ChargeNeutralityElement] = @@ -998,7 +992,7 @@ namespace VCSnonideal { string ename = "E"; VolPhase->ElName[ne] = ename; ne++; - VolPhase->nElemConstraints = ne; + VolPhase->elemResize(ne); } } diff --git a/Cantera/src/equil/vcs_VolPhase.cpp b/Cantera/src/equil/vcs_VolPhase.cpp index 0a1008ef2..206fe7b57 100644 --- a/Cantera/src/equil/vcs_VolPhase.cpp +++ b/Cantera/src/equil/vcs_VolPhase.cpp @@ -36,7 +36,7 @@ namespace VCSnonideal { m_singleSpecies(true), m_gasPhase(false), m_eqnState(VCS_EOS_CONSTANT), - nElemConstraints(0), + m_numElemConstraints(0), ChargeNeutralityElement(-1), m_elemGlobalIndex(0), NVolSpecies(0), @@ -98,7 +98,7 @@ namespace VCSnonideal { m_singleSpecies(b.m_singleSpecies), m_gasPhase(b.m_gasPhase), m_eqnState(b.m_eqnState), - nElemConstraints(b.nElemConstraints), + m_numElemConstraints(b.m_numElemConstraints), ChargeNeutralityElement(b.ChargeNeutralityElement), NVolSpecies(b.NVolSpecies), m_totalMolesInert(b.m_totalMolesInert), @@ -153,20 +153,20 @@ namespace VCSnonideal { m_eqnState = b.m_eqnState; NVolSpecies = b.NVolSpecies; - nElemConstraints = b.nElemConstraints; + m_numElemConstraints = b.m_numElemConstraints; ChargeNeutralityElement = b.ChargeNeutralityElement; - ElName.resize(b.nElemConstraints); - for (int e = 0; e < b.nElemConstraints; e++) { + ElName.resize(b.m_numElemConstraints); + for (int e = 0; e < b.m_numElemConstraints; e++) { ElName[e] = b.ElName[e]; } ElActive = b.ElActive; m_elType = b.m_elType; - FormulaMatrix.resize(nElemConstraints, NVolSpecies, 0.0); - for (int e = 0; e < nElemConstraints; e++) { + FormulaMatrix.resize(m_numElemConstraints, NVolSpecies, 0.0); + for (int e = 0; e < m_numElemConstraints; e++) { for (int k = 0; k < NVolSpecies; k++) { FormulaMatrix[e][k] = b.FormulaMatrix[e][k]; } @@ -242,8 +242,10 @@ namespace VCSnonideal { } /***************************************************************************/ - void vcs_VolPhase::resize(int phaseNum, int nspecies, int numElem, const char *phaseName, - double molesInert) { + void vcs_VolPhase::resize(const int phaseNum, const int nspecies, + const int numElem, const char * const phaseName, + const double molesInert) { +#ifdef DEBUG_MODE if (nspecies <= 0) { plogf("nspecies Error\n"); std::exit(-1); @@ -252,7 +254,7 @@ namespace VCSnonideal { plogf("phaseNum should be greater than 0\n"); std::exit(-1); } - +#endif setTotalMolesInert(molesInert); m_phi = 0.0; m_phiVarIndex = -1; @@ -279,7 +281,7 @@ namespace VCSnonideal { m_singleSpecies = true; } - if (NVolSpecies == nspecies && numElem == nElemConstraints) { + if (NVolSpecies == nspecies && numElem == m_numElemConstraints) { return; } @@ -289,7 +291,7 @@ namespace VCSnonideal { } - IndSpecies.resize(nspecies,-1); + IndSpecies.resize(nspecies, -1); if ((int) ListSpeciesPtr.size() >= NVolSpecies) { for (int i = 0; i < NVolSpecies; i++) { @@ -336,18 +338,14 @@ namespace VCSnonideal { ElName.resize(numElemConstraints); - ElActive.resize(numElemConstraints, 1); + ElActive.resize(numElemConstraints+1, 1); m_elType.resize(numElemConstraints, VCS_ELEM_TYPE_ABSPOS); - - FormulaMatrix.resize(numElemConstraints, NVolSpecies, 0.0); - + ElName.resize(numElemConstraints, ""); m_elemGlobalIndex.resize(numElemConstraints, -1); - - - nElemConstraints = numElemConstraints; + m_numElemConstraints = numElemConstraints; } /***************************************************************************/ @@ -1317,15 +1315,20 @@ namespace VCSnonideal { //! Returns the global index of the local element index for the phase int vcs_VolPhase::elemGlobalIndex(const int e) const { DebugAssertThrowVCS(e >= 0, " vcs_VolPhase::elemGlobalIndex") ; - DebugAssertThrowVCS(e < nElemConstraints, " vcs_VolPhase::elemGlobalIndex") ; + DebugAssertThrowVCS(e < m_numElemConstraints, " vcs_VolPhase::elemGlobalIndex") ; return m_elemGlobalIndex[e]; } //! Returns the global index of the local element index for the phase void vcs_VolPhase::setElemGlobalIndex(const int eLocal, const int eGlobal) { DebugAssertThrowVCS(eLocal >= 0, "vcs_VolPhase::setElemGlobalIndex"); - DebugAssertThrowVCS(eLocal < nElemConstraints, "vcs_VolPhase::setElemGlobalIndex"); + DebugAssertThrowVCS(eLocal < m_numElemConstraints, "vcs_VolPhase::setElemGlobalIndex"); m_elemGlobalIndex[eLocal] = eGlobal; } + + int vcs_VolPhase::nElemConstraints() const { + return m_numElemConstraints; + } + } diff --git a/Cantera/src/equil/vcs_VolPhase.h b/Cantera/src/equil/vcs_VolPhase.h index 60d5bb771..6878a6be5 100644 --- a/Cantera/src/equil/vcs_VolPhase.h +++ b/Cantera/src/equil/vcs_VolPhase.h @@ -143,8 +143,9 @@ namespace VCSnonideal { * @param phaseName String name for the phase * @param molesInert kmoles of inert in the phase (defaults to zero) */ - void resize(int phaseNum, int numSpecies, int numElem, const char *phaseName, - double molesInert = 0.0); + void resize(const int phaseNum, const int numSpecies, + const int numElem, const char * constphaseName, + const double molesInert = 0.0); void elemResize(const int numElemConstraints); @@ -477,6 +478,8 @@ namespace VCSnonideal { */ void setElemGlobalIndex(const int eLocal, const int eGlobal); + int nElemConstraints() const; + private: //! Evaluate the activity coefficients at the current conditions @@ -591,12 +594,14 @@ namespace VCSnonideal { */ int m_eqnState; + private: //! Number of element constraints within the problem /*! * This is usually equal to the number of elements. */ - int nElemConstraints; + int m_numElemConstraints; + public: //! This is the element number for the charge neutrality //! condition of the phase /*! diff --git a/Cantera/src/equil/vcs_elem_rearrange.cpp b/Cantera/src/equil/vcs_elem_rearrange.cpp index b57754829..cb3f1c296 100644 --- a/Cantera/src/equil/vcs_elem_rearrange.cpp +++ b/Cantera/src/equil/vcs_elem_rearrange.cpp @@ -237,7 +237,7 @@ namespace VCSnonideal { */ for (int iph = 0; iph < m_numPhases; iph++) { volPhase = m_VolPhaseList[iph]; - for (int e = 0; e < volPhase->nElemConstraints; e++) { + for (int e = 0; e < volPhase->nElemConstraints(); e++) { if (volPhase->elemGlobalIndex(e) == ipos) { volPhase->setElemGlobalIndex(e, jpos); } diff --git a/Cantera/src/equil/vcs_prob.cpp b/Cantera/src/equil/vcs_prob.cpp index be52be75b..3222dc1a5 100644 --- a/Cantera/src/equil/vcs_prob.cpp +++ b/Cantera/src/equil/vcs_prob.cpp @@ -361,7 +361,7 @@ namespace VCSnonideal { void VCS_PROB::addPhaseElements(vcs_VolPhase *volPhase) { int e, eVP; int foundPos = -1; - int neVP = volPhase->nElemConstraints; + int neVP = volPhase->nElemConstraints(); std::string en; std::string enVP; /* @@ -443,7 +443,7 @@ namespace VCSnonideal { exit(-1); } double *const *const fm = volPhase->FormulaMatrix.baseDataAddr(); - for (eVP = 0; eVP < volPhase->nElemConstraints; eVP++) { + for (eVP = 0; eVP < volPhase->nElemConstraints(); eVP++) { e = volPhase->elemGlobalIndex(eVP); #ifdef DEBUG_MODE if (e < 0) {