Skip to content

Commit 3c98504

Browse files
committed
[Equil] replace references to Phase::name by Phase::id
* reference phases using Phase::id instead * create private vcs_VolPhase::m_phaseID * vcs_VolPhase::PhaseID() replaces vcs_VolPhase::PhaseName * clarify conflation of 'phase id' in vcs_solve (which references a numeric phase number) rather than a string 'phase id' as used elsewhere * i.e. VCS_SOLVE::m_phaseNum replaces VCS_SOLVE::m_phaseID
1 parent ea65ba6 commit 3c98504

17 files changed

+139
-130
lines changed

include/cantera/equil/MultiPhase.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -670,8 +670,8 @@ inline std::ostream& operator<<(std::ostream& s, MultiPhase& x)
670670
{
671671
x.updatePhases();
672672
for (size_t ip = 0; ip < x.nPhases(); ip++) {
673-
if (x.phase(ip).name() != "") {
674-
s << "*************** " << x.phase(ip).name() << " *****************" << std::endl;
673+
if (x.phase(ip).id() != "") {
674+
s << "*************** " << x.phase(ip).id() << " *****************" << std::endl;
675675
} else {
676676
s << "*************** Phase " << ip << " *****************" << std::endl;
677677
}

include/cantera/equil/vcs_VolPhase.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ class vcs_VolPhase
9292
/*!
9393
* @param phaseNum index of the phase in the vcs problem
9494
* @param numSpecies Number of species in the phase
95-
* @param phaseName String name for the phase
95+
* @param phaseID String identifier for the phase
9696
* @param molesInert kmoles of inert in the phase (defaults to zero)
9797
*/
9898
void resize(const size_t phaseNum, const size_t numSpecies,
99-
const size_t numElem, const char* const phaseName,
99+
const size_t numElem, const char* const phaseID,
100100
const double molesInert = 0.0);
101101

102102
void elemResize(const size_t numElemConstraints);
@@ -623,10 +623,13 @@ class vcs_VolPhase
623623
size_t m_numSpecies;
624624

625625
public:
626-
//! String name for the phase
627-
std::string PhaseName;
626+
//! String identifier for the phase
627+
std::string PhaseID();
628628

629629
private:
630+
//! String identifier of the phase
631+
std::string m_phaseID;
632+
630633
//! Total moles of inert in the phase
631634
double m_totalMolesInert;
632635

include/cantera/equil/vcs_solve.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ class VCS_SOLVE
527527
* in the private data structure. All references to the species
528528
* properties must employ the ind[] index vector.
529529
* 4. Initialization of arrays to zero.
530-
* 5. Check to see if the problem is well posed (If all the element
530+
* 5. Check to see if the problem is well posed (If all the element
531531
* abundances are zero, the algorithm will fail)
532532
*
533533
* @param printLvl Print level of the routine
@@ -1354,7 +1354,7 @@ class VCS_SOLVE
13541354
vector_int m_speciesStatus;
13551355

13561356
//! Mapping from the species number to the phase number
1357-
std::vector<size_t> m_phaseID;
1357+
std::vector<size_t> m_phaseNum;
13581358

13591359
//! Boolean indicating whether a species belongs to a single-species phase
13601360
// vector<bool> can't be used here because it doesn't work with std::swap

src/equil/MultiPhase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ void MultiPhase::addPhase(ThermoPhase* p, doublereal moles)
5555

5656
if (!p->compatibleWithMultiPhase()) {
5757
throw CanteraError("MultiPhase::addPhase", "Phase '{}'' is not "
58-
"compatible with MultiPhase equilibrium solver", p->name());
58+
"compatible with MultiPhase equilibrium solver", p->id());
5959
}
6060

6161
// save the pointer to the phase object

src/equil/MultiPhaseEquil.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile)
706706
ThermoPhase& tref = m_mix->phase(iphase);
707707
ThermoPhase* tp = &tref;
708708
tp->getMoleFractions(&mf[istart]);
709-
string phaseName = tref.name();
709+
string phaseID = tref.id();
710710
double TMolesPhase = phaseMoles(iphase);
711711
size_t nSpecies = tref.nSpecies();
712712
activity.resize(nSpecies, 0.0);
@@ -733,7 +733,7 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile)
733733
tp->getChemPotentials(mu.data());
734734

735735
if (iphase == 0) {
736-
fprintf(FP," Name, Phase, PhaseMoles, Mole_Fract, "
736+
fprintf(FP," Name, PhaseID, PhaseMoles, Mole_Fract, "
737737
"Molalities, ActCoeff, Activity,"
738738
"ChemPot_SS0, ChemPot, mole_num, PMVol, Phase_Volume\n");
739739

@@ -746,15 +746,15 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile)
746746
fprintf(FP,"%12s, %11s, %11.3e, %11.3e, %11.3e, %11.3e, %11.3e,"
747747
"%11.3e, %11.3e, %11.3e, %11.3e, %11.3e\n",
748748
sName.c_str(),
749-
phaseName.c_str(), TMolesPhase,
749+
phaseID.c_str(), TMolesPhase,
750750
mf[istart + k], molalities[k], ac[k], activity[k],
751751
mu0[k]*1.0E-6, mu[k]*1.0E-6,
752752
mf[istart + k] * TMolesPhase,
753753
VolPM[k], VolPhaseVolumes);
754754
}
755755
} else {
756756
if (iphase == 0) {
757-
fprintf(FP," Name, Phase, PhaseMoles, Mole_Fract, "
757+
fprintf(FP," Name, PhaseID, PhaseMoles, Mole_Fract, "
758758
"Molalities, ActCoeff, Activity,"
759759
" ChemPotSS0, ChemPot, mole_num, PMVol, Phase_Volume\n");
760760

@@ -770,7 +770,7 @@ void MultiPhaseEquil::reportCSV(const std::string& reportFile)
770770
fprintf(FP,"%12s, %11s, %11.3e, %11.3e, %11.3e, %11.3e, %11.3e, "
771771
"%11.3e, %11.3e,% 11.3e, %11.3e, %11.3e\n",
772772
sName.c_str(),
773-
phaseName.c_str(), TMolesPhase,
773+
phaseID.c_str(), TMolesPhase,
774774
mf[istart + k], molalities[k], ac[k],
775775
activity[k], mu0[k]*1.0E-6, mu[k]*1.0E-6,
776776
mf[istart + k] * TMolesPhase,

src/equil/vcs_Gibbs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ double VCS_SOLVE::vcs_GibbsPhase(size_t iphase, const double* const w,
4242
double g = 0.0;
4343
double phaseMols = 0.0;
4444
for (size_t kspec = 0; kspec < m_numSpeciesRdc; ++kspec) {
45-
if (m_phaseID[kspec] == iphase && m_speciesUnknownType[kspec] != VCS_SPECIES_TYPE_INTERFACIALVOLTAGE) {
45+
if (m_phaseNum[kspec] == iphase && m_speciesUnknownType[kspec] != VCS_SPECIES_TYPE_INTERFACIALVOLTAGE) {
4646
g += w[kspec] * fe[kspec];
4747
phaseMols += w[kspec];
4848
}

src/equil/vcs_MultiPhaseEquil.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ int vcs_MultiPhaseEquil::equilibrate_TP(int estimateEquil,
469469
} else {
470470
plogf(" %15.3e %15.3e ", m_mix->speciesMoles(i), m_mix->moleFraction(i));
471471
if (m_mix->speciesMoles(i) <= 0.0) {
472-
size_t iph = m_vsolve.m_phaseID[i];
472+
size_t iph = m_vsolve.m_phaseNum[i];
473473
vcs_VolPhase* VPhase = m_vsolve.m_VolPhaseList[iph].get();
474474
if (VPhase->nSpecies() > 1) {
475475
plogf(" -1.000e+300\n");
@@ -533,7 +533,7 @@ void vcs_MultiPhaseEquil::reportCSV(const std::string& reportFile)
533533

534534
for (size_t iphase = 0; iphase < nphase; iphase++) {
535535
ThermoPhase& tref = m_mix->phase(iphase);
536-
string phaseName = tref.name();
536+
string phaseID = tref.id();
537537
vcs_VolPhase* volP = m_vsolve.m_VolPhaseList[iphase].get();
538538
double TMolesPhase = volP->totalMoles();
539539
size_t nSpecies = tref.nSpecies();
@@ -562,7 +562,7 @@ void vcs_MultiPhaseEquil::reportCSV(const std::string& reportFile)
562562
tref.getChemPotentials(&mu[0]);
563563

564564
if (iphase == 0) {
565-
fprintf(FP," Name, Phase, PhaseMoles, Mole_Fract, "
565+
fprintf(FP," Name, PhaseID, PhaseMoles, Mole_Fract, "
566566
"Molalities, ActCoeff, Activity,"
567567
"ChemPot_SS0, ChemPot, mole_num, PMVol, Phase_Volume\n");
568568

@@ -575,15 +575,15 @@ void vcs_MultiPhaseEquil::reportCSV(const std::string& reportFile)
575575
fprintf(FP,"%12s, %11s, %11.3e, %11.3e, %11.3e, %11.3e, %11.3e,"
576576
"%11.3e, %11.3e, %11.3e, %11.3e, %11.3e\n",
577577
sName.c_str(),
578-
phaseName.c_str(), TMolesPhase,
578+
phaseID.c_str(), TMolesPhase,
579579
tref.moleFraction(k), molalities[k], ac[k], activity[k],
580580
mu0[k]*1.0E-6, mu[k]*1.0E-6,
581581
tref.moleFraction(k) * TMolesPhase,
582582
VolPM[k], VolPhaseVolumes);
583583
}
584584
} else {
585585
if (iphase == 0) {
586-
fprintf(FP," Name, Phase, PhaseMoles, Mole_Fract, "
586+
fprintf(FP," Name, PhaseID, PhaseMoles, Mole_Fract, "
587587
"Molalities, ActCoeff, Activity,"
588588
" ChemPotSS0, ChemPot, mole_num, PMVol, Phase_Volume\n");
589589

@@ -599,7 +599,7 @@ void vcs_MultiPhaseEquil::reportCSV(const std::string& reportFile)
599599
fprintf(FP,"%12s, %11s, %11.3e, %11.3e, %11.3e, %11.3e, %11.3e, "
600600
"%11.3e, %11.3e,% 11.3e, %11.3e, %11.3e\n",
601601
sName.c_str(),
602-
phaseName.c_str(), TMolesPhase,
602+
phaseID.c_str(), TMolesPhase,
603603
tref.moleFraction(k), molalities[k], ac[k],
604604
activity[k], mu0[k]*1.0E-6, mu[k]*1.0E-6,
605605
tref.moleFraction(k) * TMolesPhase,

src/equil/vcs_VolPhase.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ vcs_VolPhase::vcs_VolPhase(VCS_SOLVE* owningSolverObject) :
2828
m_numElemConstraints(0),
2929
m_elemGlobalIndex(0),
3030
m_numSpecies(0),
31+
m_phaseID("<phase-id>"),
3132
m_totalMolesInert(0.0),
3233
m_isIdealSoln(false),
3334
m_existence(VCS_PHASE_EXIST_NO),
@@ -58,8 +59,13 @@ vcs_VolPhase::~vcs_VolPhase()
5859
}
5960
}
6061

62+
std::string vcs_VolPhase::PhaseID()
63+
{
64+
return m_phaseID;
65+
}
66+
6167
void vcs_VolPhase::resize(const size_t phaseNum, const size_t nspecies,
62-
const size_t numElem, const char* const phaseName,
68+
const size_t numElem, const char* const phaseID,
6369
const double molesInert)
6470
{
6571
AssertThrowMsg(nspecies > 0, "vcs_VolPhase::resize", "nspecies Error");
@@ -68,17 +74,17 @@ void vcs_VolPhase::resize(const size_t phaseNum, const size_t nspecies,
6874
m_phiVarIndex = npos;
6975

7076
if (phaseNum == VP_ID_) {
71-
if (strcmp(PhaseName.c_str(), phaseName)) {
77+
if (strcmp(m_phaseID.c_str(), phaseID)) {
7278
throw CanteraError("vcs_VolPhase::resize",
73-
"Strings are different: " + PhaseName + " " +
74-
phaseName + " :unknown situation");
79+
"Strings are different: " + m_phaseID + " " +
80+
phaseID + " :unknown situation");
7581
}
7682
} else {
7783
VP_ID_ = phaseNum;
78-
if (!phaseName) {
79-
PhaseName = fmt::format("Phase_{}", VP_ID_);
84+
if (!phaseID) {
85+
m_phaseID = fmt::format("Phase_{}", VP_ID_);
8086
} else {
81-
PhaseName = phaseName;
87+
m_phaseID = phaseID;
8288
}
8389
}
8490
if (nspecies > 1) {
@@ -589,7 +595,7 @@ void vcs_VolPhase::setPtrThermoPhase(ThermoPhase* tp_ptr)
589595
if (m_numSpecies != 0) {
590596
plogf("Warning Nsp != NVolSpeces: %d %d \n", nsp, m_numSpecies);
591597
}
592-
resize(VP_ID_, nsp, nelem, PhaseName.c_str());
598+
resize(VP_ID_, nsp, nelem, m_phaseID.c_str());
593599
}
594600
TP_ptr->getMoleFractions(&Xmol_[0]);
595601
creationMoleNumbers_ = Xmol_;

src/equil/vcs_elem.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ void VCS_SOLVE::vcs_elabPhase(size_t iphase, double* const elemAbundPhase)
8787
for (size_t j = 0; j < m_nelem; ++j) {
8888
elemAbundPhase[j] = 0.0;
8989
for (size_t i = 0; i < m_nsp; ++i) {
90-
if (m_speciesUnknownType[i] != VCS_SPECIES_TYPE_INTERFACIALVOLTAGE && m_phaseID[i] == iphase) {
90+
if (m_speciesUnknownType[i] != VCS_SPECIES_TYPE_INTERFACIALVOLTAGE && m_phaseNum[i] == iphase) {
9191
elemAbundPhase[j] += m_formulaMatrix(i,j) * m_molNumSpecies_old[i];
9292
}
9393
}

src/equil/vcs_inest.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ void VCS_SOLVE::vcs_inest(double* const aw, double* const sa, double* const sm,
8383
}
8484
for (size_t kspec = 0; kspec < m_numComponents; ++kspec) {
8585
if (m_speciesUnknownType[kspec] == VCS_SPECIES_TYPE_MOLNUM) {
86-
m_tPhaseMoles_new[m_phaseID[kspec]] += m_molNumSpecies_old[kspec];
86+
m_tPhaseMoles_new[m_phaseNum[kspec]] += m_molNumSpecies_old[kspec];
8787
}
8888
}
8989
double TMolesMultiphase = 0.0;
@@ -103,7 +103,7 @@ void VCS_SOLVE::vcs_inest(double* const aw, double* const sa, double* const sm,
103103
for (size_t kspec = 0; kspec < m_numComponents; ++kspec) {
104104
if (m_speciesUnknownType[kspec] == VCS_SPECIES_TYPE_MOLNUM) {
105105
if (! m_SSPhase[kspec]) {
106-
size_t iph = m_phaseID[kspec];
106+
size_t iph = m_phaseNum[kspec];
107107
m_feSpecies_new[kspec] += log(m_molNumSpecies_new[kspec] / m_tPhaseMoles_old[iph]);
108108
}
109109
} else {
@@ -140,7 +140,7 @@ void VCS_SOLVE::vcs_inest(double* const aw, double* const sa, double* const sm,
140140
// the phase exists, it stays. If it doesn't exist in the estimate, it
141141
// doesn't come into existence here.
142142
if (! m_SSPhase[kspec]) {
143-
size_t iph = m_phaseID[kspec];
143+
size_t iph = m_phaseNum[kspec];
144144
if (m_deltaGRxn_new[irxn] > xtphMax[iph]) {
145145
m_deltaGRxn_new[irxn] = 0.8 * xtphMax[iph];
146146
}

0 commit comments

Comments
 (0)