Phase information and Phase calculations for vcs. More...
#include <vcs_VolPhase.h>
Phase information and Phase calculations for vcs.
Each phase in a vcs calculation has a vcs_VolPhase object associated with it. This object helps to coordinate property evaluations for species within the phase. Usually these evaluations must be carried out on a per phase basis. However, vcs frequently needs per species quantities. Therefore, we need an interface layer between vcs and Cantera's ThermoPhase.
The species stay in the same ordering within this structure. The vcs algorithm will change the ordering of species in the global species list. However, the indexing of species in this list stays the same. This structure contains structures that point to the species belonging to this phase in the global vcs species list.
This object is considered not to own the underlying Cantera ThermoPhase object for the phase.
This object contains an idea of the temperature and pressure. It checks to see if if the temperature and pressure has changed before calling underlying property evaluation routines.
The object contains values for the electric potential of a phase. It coordinates the evaluation of properties wrt when the electric potential of a phase has changed.
The object knows about the mole fractions of the phase. It controls the values of mole fractions, and coordinates the property evaluation wrt to changes in the mole fractions. It also will keep track of the likely values of mole fractions in multicomponent phases even when the phase doesn't actually exist within the thermo program.
The object knows about the total moles of a phase. It checks to see if the phase currently exists or not, and modifies its behavior accordingly.
Activity coefficients and volume calculations are lagged. They are only called when they are needed (and when the state has changed so that they need to be recalculated).
Definition at line 59 of file vcs_VolPhase.h.
Public Member Functions | |
| vcs_VolPhase (VCS_SOLVE *owningSolverObject, ThermoPhase *thermoPhase, size_t phaseNum) | |
| vcs_VolPhase (const vcs_VolPhase &b)=delete | |
| vcs_VolPhase & | operator= (const vcs_VolPhase &b)=delete |
| void | setMoleFractionsState (const double molNum, span< const double > moleFracVec, const int vcsStateStatus) |
| Set the moles and/or mole fractions within the phase. | |
| void | setMolesFromVCS (const int stateCalc, span< const double > molesSpeciesVCS={}) |
| Set the moles within the phase. | |
| void | setMolesFromVCSCheck (const int vcsStateStatus, span< const double > molesSpeciesVCS, span< const double > TPhMoles) |
| Set the moles within the phase. | |
| void | updateFromVCS_MoleNumbers (const int stateCalc) |
| Update the moles within the phase, if necessary. | |
| void | sendToVCS_ActCoeff (const int stateCalc, span< double > AC) |
| Fill in an activity coefficients vector within a VCS_SOLVE object. | |
| void | setElectricPotential (const double phi) |
| set the electric potential of the phase | |
| double | electricPotential () const |
| Returns the electric field of the phase. | |
| double | GStar_calc_one (size_t kspec) const |
| Gibbs free energy calculation for standard state of one species. | |
| double | G0_calc_one (size_t kspec) const |
| Gibbs free energy calculation at a temperature for the reference state of a species, return a value for one species. | |
| double | sendToVCS_VolPM (span< double > VolPM) const |
| Fill in the partial molar volume vector for VCS. | |
| void | sendToVCS_GStar (span< double > gstar) const |
| Fill in the standard state Gibbs free energy vector for VCS. | |
| void | setState_TP (const double temperature_Kelvin, const double pressure_PA) |
| Sets the temperature and pressure in this object and underlying ThermoPhase objects. | |
| void | sendToVCS_LnActCoeffJac (Array2D &LnACJac_VCS) |
| Downloads the ln ActCoeff Jacobian into the VCS version of the ln ActCoeff Jacobian. | |
| double | totalMoles () const |
| Return the total moles in the phase. | |
| double | molefraction (size_t kspec) const |
| Returns the mole fraction of the kspec species. | |
| void | setTotalMoles (const double totalMols) |
| Sets the total moles in the phase. | |
| void | setMolesOutOfDate (int stateCalc=-1) |
| Sets the mole flag within the object to out of date. | |
| void | setMolesCurrent (int vcsStateStatus) |
| Sets the mole flag within the object to be current. | |
| span< const double > | moleFractions () const |
| Return a const reference to the mole fractions stored in the object. | |
| double | moleFraction (size_t klocal) const |
| void | setCreationMoleNumbers (span< const double > n_k, span< const size_t > creationGlobalRxnNumbers) |
| Sets the creationMoleNum's within the phase object. | |
| span< const double > | creationMoleNumbers (span< size_t > creationGlobalRxnNumbers) const |
| Return a const reference to the creationMoleNumbers stored in the object. | |
| bool | isIdealSoln () const |
| Returns whether the phase is an ideal solution phase. | |
| size_t | phiVarIndex () const |
| Return the index of the species that represents the the voltage of the phase. | |
| void | setPhiVarIndex (size_t phiVarIndex) |
| int | exists () const |
| Retrieve the kth Species structure for the species belonging to this phase. | |
| void | setExistence (const int existence) |
| Set the existence flag in the object. | |
| size_t | spGlobalIndexVCS (const size_t spIndex) const |
| Return the Global VCS index of the kth species in the phase. | |
| void | setSpGlobalIndexVCS (const size_t spIndex, const size_t spGlobalIndex) |
| set the Global VCS index of the kth species in the phase | |
| size_t | elemGlobalIndex (const size_t e) const |
| Returns the global index of the local element index for the phase. | |
| void | setElemGlobalIndex (const size_t eLocal, const size_t eGlobal) |
| sets a local phase element to a global index value | |
| size_t | nElemConstraints () const |
| Returns the number of element constraints. | |
| string | elementName (size_t e) const |
Name of the element constraint with index e. | |
| int | elementType (const size_t e) const |
Type of the element constraint with index e. | |
| size_t | transferElementsFM (const ThermoPhase *const tPhase) |
| Transfer all of the element information from the ThermoPhase object to the vcs_VolPhase object. | |
| const Array2D & | getFormulaMatrix () const |
| Get a constant form of the Species Formula Matrix. | |
| int | speciesUnknownType (const size_t k) const |
| Returns the type of the species unknown. | |
| int | elementActive (const size_t e) const |
| size_t | nSpecies () const |
| Return the number of species in the phase. | |
| string | eos_name () const |
| Return the name corresponding to the equation of state. | |
Public Attributes | |
| size_t | VP_ID_ = npos |
| Original ID of the phase in the problem. | |
| bool | m_singleSpecies = true |
| If true, this phase consists of a single species. | |
| size_t | ChargeNeutralityElement = npos |
| This is the element number for the charge neutrality condition of the phase. | |
| int | p_activityConvention = 0 |
| Convention for the activity formulation. | |
| string | PhaseName |
| String name for the phase. | |
Private Member Functions | |
| void | elemResize (const size_t numElemConstraints) |
| void | setMoleFractions (span< const double > xmol) |
| Set the mole fractions from a conventional mole fraction vector. | |
| void | _updateActCoeff () const |
| Evaluate the activity coefficients at the current conditions. | |
| void | _updateGStar () const |
| Gibbs free energy calculation for standard states. | |
| void | _updateG0 () const |
| Gibbs free energy calculation at a temperature for the reference state of each species. | |
| void | _updateVolStar () const |
| Molar volume calculation for standard states. | |
| double | _updateVolPM () const |
| Calculate the partial molar volumes of all species and return the total volume. | |
| void | _updateLnActCoeffJac () |
| Evaluation of Activity Coefficient Jacobians. | |
| void | _updateMoleFractionDependencies () |
| Updates the mole fraction dependencies. | |
Private Attributes | |
| VCS_SOLVE * | m_owningSolverObject = nullptr |
| Backtrack value of VCS_SOLVE *. | |
| size_t | m_numElemConstraints = 0 |
| Number of element constraints within the problem. | |
| vector< string > | m_elementNames |
| vector of strings containing the element constraint names | |
| vector< int > | m_elementActive |
| boolean indicating whether an element constraint is active for the current problem | |
| vector< int > | m_elementType |
| Type of the element constraint. | |
| Array2D | m_formulaMatrix |
| Formula Matrix for the phase. | |
| vector< int > | m_speciesUnknownType |
| Type of the species unknown. | |
| vector< size_t > | m_elemGlobalIndex |
| Index of the element number in the global list of elements stored in VCS_SOLVE. | |
| size_t | m_numSpecies = 0 |
| Number of species in the phase. | |
| bool | m_isIdealSoln = false |
| Boolean indicating whether the phase is an ideal solution and therefore its molar-based activity coefficients are uniformly equal to one. | |
| int | m_existence = VCS_PHASE_EXIST_NO |
| Current state of existence: | |
| int | m_MFStartIndex = 0 |
| This is always equal to zero. | |
| vector< size_t > | IndSpecies |
| Index into the species vectors. | |
| ThermoPhase * | TP_ptr = nullptr |
| Vector of Species structures for the species belonging to this phase. | |
| double | v_totalMoles = 0.0 |
| Total mols in the phase. units are kmol. | |
| vector< double > | Xmol_ |
| Vector of the current mole fractions for species in the phase. | |
| vector< double > | creationMoleNumbers_ |
| Vector of current creationMoleNumbers_. | |
| vector< size_t > | creationGlobalRxnNumbers_ |
| Vector of creation global reaction numbers for the phase stability problem. | |
| size_t | m_phiVarIndex = npos |
| If the potential is a solution variable in VCS, it acts as a species. | |
| double | m_totalVol = 0.0 |
| Total Volume of the phase. Units are m**3. | |
| vector< double > | SS0ChemicalPotential |
| Vector of calculated SS0 chemical potentials for the current Temperature. | |
| vector< double > | StarChemicalPotential |
| Vector of calculated Star chemical potentials for the current Temperature and pressure. | |
| vector< double > | StarMolarVol |
| Vector of the Star molar Volumes of the species. units m3 / kmol. | |
| vector< double > | PartialMolarVol |
| Vector of the Partial molar Volumes of the species. units m3 / kmol. | |
| vector< double > | ActCoeff |
| Vector of calculated activity coefficients for the current state. | |
| Array2D | np_dLnActCoeffdMolNumber |
| Vector of the derivatives of the ln activity coefficient wrt to the current mole number multiplied by the current phase moles. | |
| int | m_vcsStateStatus = VCS_STATECALC_OLD |
| Status. | |
| double | m_phi = 0.0 |
| Value of the potential for the phase (Volts) | |
| bool | m_UpToDate = false |
| Boolean indicating whether the object has an up-to-date mole number vector and potential with respect to the current vcs state calc status. | |
| bool | m_UpToDate_AC = false |
| Boolean indicating whether activity coefficients are up to date. | |
| bool | m_UpToDate_VolStar = false |
| Boolean indicating whether Star volumes are up to date. | |
| bool | m_UpToDate_VolPM = false |
| Boolean indicating whether partial molar volumes are up to date. | |
| bool | m_UpToDate_GStar = false |
| Boolean indicating whether GStar is up to date. | |
| bool | m_UpToDate_G0 = false |
| Boolean indicating whether G0 is up to date. | |
| double | Temp_ = 273.15 |
| Current value of the temperature for this object, and underlying objects. | |
| double | Pres_ = OneAtm |
| Current value of the pressure for this object, and underlying objects. | |
| vcs_VolPhase | ( | VCS_SOLVE * | owningSolverObject, |
| ThermoPhase * | thermoPhase, | ||
| size_t | phaseNum | ||
| ) |
Definition at line 19 of file vcs_VolPhase.cpp.
| void setMoleFractionsState | ( | const double | molNum, |
| span< const double > | moleFracVec, | ||
| const int | vcsStateStatus | ||
| ) |
Set the moles and/or mole fractions within the phase.
| molNum | total moles in the phase |
| moleFracVec | Vector of input mole fractions |
| vcsStateStatus | Status flag for this update |
Definition at line 189 of file vcs_VolPhase.cpp.
| void setMolesFromVCS | ( | const int | stateCalc, |
| span< const double > | molesSpeciesVCS = {} |
||
| ) |
Set the moles within the phase.
This function takes as input the mole numbers in vcs format, and then updates this object with their values. This is essentially a gather routine.
| stateCalc | Flag indicating which mole numbers to update. Either VCS_STATECALC_OLD or VCS_STATECALC_NEW. |
| molesSpeciesVCS | Array of mole numbers. Note, the indices for species in this array may not be contiguous. IndSpecies[] is needed to gather the species into the local contiguous vector format. |
Definition at line 232 of file vcs_VolPhase.cpp.
| void setMolesFromVCSCheck | ( | const int | vcsStateStatus, |
| span< const double > | molesSpeciesVCS, | ||
| span< const double > | TPhMoles | ||
| ) |
Set the moles within the phase.
This function takes as input the mole numbers in vcs format, and then updates this object with their values. This is essentially a gather routine.
Additionally it checks to see that the total moles value in TPhMoles[iplace] is equal to the internally computed value. If this isn't the case, an error exit is carried out.
| vcsStateStatus | State calc value either VCS_STATECALC_OLD or VCS_STATECALC_NEW. With any other value nothing is done. |
| molesSpeciesVCS | array of mole numbers. Note, the indices for species in this array may not be contiguous. IndSpecies[] is needed to gather the species into the local contiguous vector format. |
| TPhMoles | VCS's array containing the number of moles in each phase. |
Definition at line 298 of file vcs_VolPhase.cpp.
| void updateFromVCS_MoleNumbers | ( | const int | stateCalc | ) |
Update the moles within the phase, if necessary.
This function takes as input the stateCalc value, which determines where within VCS_SOLVE to fetch the mole numbers. It then updates this object with their values. This is essentially a gather routine.
| stateCalc | State calc value either VCS_STATECALC_OLD or VCS_STATECALC_NEW. With any other value nothing is done. |
Definition at line 316 of file vcs_VolPhase.cpp.
| void sendToVCS_ActCoeff | ( | const int | stateCalc, |
| span< double > | AC | ||
| ) |
Fill in an activity coefficients vector within a VCS_SOLVE object.
This routine will calculate the activity coefficients for the current phase, and fill in the corresponding entries in the VCS activity coefficients vector.
| stateCalc | Flag indicating which mole numbers to update. Either VCS_STATECALC_OLD or VCS_STATECALC_NEW. |
| AC | vector of activity coefficients for all of the species in all of the phases in a VCS problem. Only the entries for the current phase are filled in. |
Definition at line 324 of file vcs_VolPhase.cpp.
| void setElectricPotential | ( | const double | phi | ) |
set the electric potential of the phase
| phi | electric potential (volts) |
Definition at line 359 of file vcs_VolPhase.cpp.
| double electricPotential | ( | ) | const |
Returns the electric field of the phase.
Units are potential
Definition at line 370 of file vcs_VolPhase.cpp.
| double GStar_calc_one | ( | size_t | kspec | ) | const |
Gibbs free energy calculation for standard state of one species.
Calculate the Gibbs free energies for the standard state of the kth species. The results are held internally within the object.
| kspec | Species number (within the phase) |
Definition at line 140 of file vcs_VolPhase.cpp.
| double G0_calc_one | ( | size_t | kspec | ) | const |
Gibbs free energy calculation at a temperature for the reference state of a species, return a value for one species.
| kspec | species index |
Definition at line 126 of file vcs_VolPhase.cpp.
| double sendToVCS_VolPM | ( | span< double > | VolPM | ) | const |
Fill in the partial molar volume vector for VCS.
This routine will calculate the partial molar volumes for the current phase (if needed), and fill in the corresponding entries in the VCS partial molar volumes vector.
| [out] | VolPM | vector of partial molar volumes for all of the species in all of the phases in a VCS problem. Only the entries for the current phase are filled in. |
Definition at line 336 of file vcs_VolPhase.cpp.
| void sendToVCS_GStar | ( | span< double > | gstar | ) | const |
Fill in the standard state Gibbs free energy vector for VCS.
This routine will calculate the standard state Gibbs free energies for the current phase (if needed), and fill in the corresponding entries in the VCS standard state gibbs free energy vector.
| [out] | gstar | vector of standard state Gibbs free energies for all of the species in all of the phases in a VCS problem. Only the entries for the current phase are filled in. |
Definition at line 348 of file vcs_VolPhase.cpp.
| void setState_TP | ( | const double | temperature_Kelvin, |
| const double | pressure_PA | ||
| ) |
Sets the temperature and pressure in this object and underlying ThermoPhase objects.
| temperature_Kelvin | (Kelvin) |
| pressure_PA | Pressure (MKS units - Pascal) |
Definition at line 375 of file vcs_VolPhase.cpp.
| void sendToVCS_LnActCoeffJac | ( | Array2D & | LnACJac_VCS | ) |
Downloads the ln ActCoeff Jacobian into the VCS version of the ln ActCoeff Jacobian.
This is essentially a scatter operation.
| LnACJac_VCS | Jacobian parameter The Jacobians are actually d( lnActCoeff) / d (MolNumber); dLnActCoeffdMolNumber(k,j) |
j = id of the species mole number k = id of the species activity coefficient
Definition at line 475 of file vcs_VolPhase.cpp.
| double totalMoles | ( | ) | const |
Return the total moles in the phase.
Definition at line 491 of file vcs_VolPhase.cpp.
| double molefraction | ( | size_t | kspec | ) | const |
Returns the mole fraction of the kspec species.
| kspec | Index of the species in the phase |
Definition at line 496 of file vcs_VolPhase.cpp.
| void setTotalMoles | ( | const double | totalMols | ) |
Sets the total moles in the phase.
We don't have to flag the internal state as changing here because we have just changed the total moles.
| totalMols | Total moles in the phase (kmol) |
Definition at line 521 of file vcs_VolPhase.cpp.
| void setMolesOutOfDate | ( | int | stateCalc = -1 | ) |
Sets the mole flag within the object to out of date.
This will trigger the object to go get the current mole numbers when it needs it.
Definition at line 535 of file vcs_VolPhase.cpp.
| void setMolesCurrent | ( | int | vcsStateStatus | ) |
Sets the mole flag within the object to be current.
Definition at line 543 of file vcs_VolPhase.cpp.
|
private |
Definition at line 99 of file vcs_VolPhase.cpp.
|
private |
Set the mole fractions from a conventional mole fraction vector.
| xmol | Value of the mole fractions for the species in the phase. These are contiguous. |
Definition at line 148 of file vcs_VolPhase.cpp.
| span< const double > moleFractions | ( | ) | const |
Return a const reference to the mole fractions stored in the object.
Definition at line 179 of file vcs_VolPhase.cpp.
| double moleFraction | ( | size_t | klocal | ) | const |
Definition at line 184 of file vcs_VolPhase.cpp.
| void setCreationMoleNumbers | ( | span< const double > | n_k, |
| span< const size_t > | creationGlobalRxnNumbers | ||
| ) |
Sets the creationMoleNum's within the phase object.
| n_k | Pointer to a vector of n_k's |
| creationGlobalRxnNumbers | Vector of global creation reaction numbers |
Definition at line 501 of file vcs_VolPhase.cpp.
| span< const double > creationMoleNumbers | ( | span< size_t > | creationGlobalRxnNumbers | ) | const |
Return a const reference to the creationMoleNumbers stored in the object.
Definition at line 512 of file vcs_VolPhase.cpp.
| bool isIdealSoln | ( | ) | const |
Returns whether the phase is an ideal solution phase.
Definition at line 549 of file vcs_VolPhase.cpp.
| size_t phiVarIndex | ( | ) | const |
Return the index of the species that represents the the voltage of the phase.
Definition at line 554 of file vcs_VolPhase.cpp.
| void setPhiVarIndex | ( | size_t | phiVarIndex | ) |
Definition at line 559 of file vcs_VolPhase.cpp.
| int exists | ( | ) | const |
Retrieve the kth Species structure for the species belonging to this phase.
The index into this vector is the species index within the phase.
| kindex | kth species index. int indicating whether the phase exists or not |
returns the m_existence int for the phase
Definition at line 568 of file vcs_VolPhase.cpp.
| void setExistence | ( | const int | existence | ) |
Set the existence flag in the object.
Note the total moles of the phase must have been set appropriately before calling this routine.
| existence | Phase existence flag |
Definition at line 573 of file vcs_VolPhase.cpp.
| size_t spGlobalIndexVCS | ( | const size_t | spIndex | ) | const |
Return the Global VCS index of the kth species in the phase.
| spIndex | local species index (0 to the number of species in the phase) |
Definition at line 591 of file vcs_VolPhase.cpp.
| void setSpGlobalIndexVCS | ( | const size_t | spIndex, |
| const size_t | spGlobalIndex | ||
| ) |
set the Global VCS index of the kth species in the phase
| spIndex | local species index (0 to the number of species in the phase) |
| spGlobalIndex | Global species index (across all phases) |
Definition at line 596 of file vcs_VolPhase.cpp.
| size_t elemGlobalIndex | ( | const size_t | e | ) | const |
Returns the global index of the local element index for the phase.
Definition at line 605 of file vcs_VolPhase.cpp.
| void setElemGlobalIndex | ( | const size_t | eLocal, |
| const size_t | eGlobal | ||
| ) |
sets a local phase element to a global index value
| eLocal | Local phase element index |
| eGlobal | Global phase element index |
Definition at line 611 of file vcs_VolPhase.cpp.
| size_t nElemConstraints | ( | ) | const |
Returns the number of element constraints.
Definition at line 618 of file vcs_VolPhase.cpp.
| string elementName | ( | size_t | e | ) | const |
Name of the element constraint with index e.
| e | Element index. |
Definition at line 623 of file vcs_VolPhase.cpp.
| int elementType | ( | const size_t | e | ) | const |
Type of the element constraint with index e.
| e | Element index. |
Definition at line 760 of file vcs_VolPhase.cpp.
| size_t transferElementsFM | ( | const ThermoPhase *const | tPhase | ) |
Transfer all of the element information from the ThermoPhase object to the vcs_VolPhase object.
Also decide whether we need a new charge neutrality element in the phase to enforce a charge neutrality constraint.
| tPhase | Pointer to the ThermoPhase object |
Definition at line 656 of file vcs_VolPhase.cpp.
| const Array2D & getFormulaMatrix | ( | ) | const |
Get a constant form of the Species Formula Matrix.
Returns a matrix M where M(k, e) is the entry for element e and species k.
Definition at line 765 of file vcs_VolPhase.cpp.
| int speciesUnknownType | ( | const size_t | k | ) | const |
Returns the type of the species unknown.
| k | species index |
Definition at line 770 of file vcs_VolPhase.cpp.
| int elementActive | ( | const size_t | e | ) | const |
Definition at line 775 of file vcs_VolPhase.cpp.
| size_t nSpecies | ( | ) | const |
Return the number of species in the phase.
Definition at line 780 of file vcs_VolPhase.cpp.
| string eos_name | ( | ) | const |
Return the name corresponding to the equation of state.
Definition at line 785 of file vcs_VolPhase.cpp.
|
private |
Evaluate the activity coefficients at the current conditions.
We carry out a calculation whenever m_UpToDate_AC is false. Specifically whenever a phase goes zero, we do not carry out calculations on it.
Definition at line 110 of file vcs_VolPhase.cpp.
|
private |
Gibbs free energy calculation for standard states.
Calculate the Gibbs free energies for the standard states The results are held internally within the object.
Definition at line 134 of file vcs_VolPhase.cpp.
|
private |
Gibbs free energy calculation at a temperature for the reference state of each species.
Definition at line 120 of file vcs_VolPhase.cpp.
|
private |
Molar volume calculation for standard states.
Calculate the molar volume for the standard states. The results are held internally within the object. Units are in m**3/kmol.
Definition at line 391 of file vcs_VolPhase.cpp.
|
private |
Calculate the partial molar volumes of all species and return the total volume.
Calculates these quantities internally and then stores them
Definition at line 397 of file vcs_VolPhase.cpp.
|
private |
Evaluation of Activity Coefficient Jacobians.
This is the derivative of the ln of the activity coefficient with respect to mole number of jth species. (temp, pressure, and other mole numbers held constant)
We employ a finite difference derivative approach here. Because we have to change the mole numbers, this is not a const function, even though the paradigm would say that it should be.
Definition at line 409 of file vcs_VolPhase.cpp.
|
private |
Updates the mole fraction dependencies.
Whenever the mole fractions change, this routine should be called.
Definition at line 166 of file vcs_VolPhase.cpp.
|
private |
Backtrack value of VCS_SOLVE *.
Definition at line 451 of file vcs_VolPhase.h.
| size_t VP_ID_ = npos |
Original ID of the phase in the problem.
If a non-ideal phase splits into two due to a miscibility gap, these numbers will stay the same after the split.
Definition at line 459 of file vcs_VolPhase.h.
| bool m_singleSpecies = true |
If true, this phase consists of a single species.
Definition at line 462 of file vcs_VolPhase.h.
| size_t ChargeNeutralityElement = npos |
This is the element number for the charge neutrality condition of the phase.
If it has one. If it does not have a charge neutrality constraint, then this value is equal to -1
Definition at line 470 of file vcs_VolPhase.h.
| int p_activityConvention = 0 |
Convention for the activity formulation.
Definition at line 478 of file vcs_VolPhase.h.
|
private |
Number of element constraints within the problem.
This is usually equal to the number of elements.
Definition at line 485 of file vcs_VolPhase.h.
|
private |
vector of strings containing the element constraint names
Length = nElemConstraints
Definition at line 491 of file vcs_VolPhase.h.
|
private |
boolean indicating whether an element constraint is active for the current problem
Definition at line 495 of file vcs_VolPhase.h.
|
private |
Type of the element constraint.
m_elType[j] = type of the element:
Definition at line 505 of file vcs_VolPhase.h.
|
private |
Formula Matrix for the phase.
FormulaMatrix(kspec,j) = Formula Matrix for the species Number of elements, j, in the kspec species
Definition at line 512 of file vcs_VolPhase.h.
|
private |
Type of the species unknown.
SpeciesUnknownType[k] = type of species
Definition at line 522 of file vcs_VolPhase.h.
|
private |
Index of the element number in the global list of elements stored in VCS_SOLVE.
Definition at line 525 of file vcs_VolPhase.h.
|
private |
Number of species in the phase.
Definition at line 528 of file vcs_VolPhase.h.
| string PhaseName |
String name for the phase.
Definition at line 532 of file vcs_VolPhase.h.
|
private |
Boolean indicating whether the phase is an ideal solution and therefore its molar-based activity coefficients are uniformly equal to one.
Definition at line 538 of file vcs_VolPhase.h.
|
private |
Current state of existence:
Definition at line 551 of file vcs_VolPhase.h.
|
private |
This is always equal to zero.
Am anticipating the case where the phase potential is species # 0, for multiphase phases. Right now we have the phase potential equal to 0 for single species phases, where we set by hand the mole fraction of species 0 to one.
Definition at line 561 of file vcs_VolPhase.h.
|
private |
Index into the species vectors.
Maps the phase species number into the global species number. Note, as part of the vcs algorithm, the order of the species vector is changed during the algorithm
Definition at line 569 of file vcs_VolPhase.h.
|
private |
Vector of Species structures for the species belonging to this phase.
The index into this vector is the species index within the phase. If we are using Cantera, this is the pointer to the ThermoPhase object. If not, this is null.
Definition at line 579 of file vcs_VolPhase.h.
|
private |
Total mols in the phase. units are kmol.
Definition at line 582 of file vcs_VolPhase.h.
|
private |
Vector of the current mole fractions for species in the phase.
Definition at line 585 of file vcs_VolPhase.h.
|
private |
Vector of current creationMoleNumbers_.
These are the actual unknowns in the phase stability problem
Definition at line 591 of file vcs_VolPhase.h.
|
private |
Vector of creation global reaction numbers for the phase stability problem.
The phase stability problem requires a global reaction number for each species in the phase. Usually this is the krxn = kglob - M for species in the phase that are not components. For component species, the choice of the reaction is one which maximizes the chance that the phase pops into (or remains in) existence.
The index here is the local phase species index. the value of the variable is the global vcs reaction number. Note, that the global reaction number will go out of order when the species positions are swapped. So, this number has to be recalculated.
Length = number of species in phase
Definition at line 608 of file vcs_VolPhase.h.
|
private |
If the potential is a solution variable in VCS, it acts as a species.
This is the species index in the phase for the potential
Definition at line 612 of file vcs_VolPhase.h.
|
mutableprivate |
Total Volume of the phase. Units are m**3.
Definition at line 615 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of calculated SS0 chemical potentials for the current Temperature.
Note, This is the chemical potential derived strictly from the polynomial in temperature. Pressure effects have to be added in to get to the standard state. Units are J/kmol.
Definition at line 624 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of calculated Star chemical potentials for the current Temperature and pressure.
Note, This is the chemical potential at unit activity. Thus, we can call it the standard state chemical potential as well. Units are J/kmol.
Definition at line 632 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of the Star molar Volumes of the species. units m3 / kmol.
Definition at line 635 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of the Partial molar Volumes of the species. units m3 / kmol.
Definition at line 638 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of calculated activity coefficients for the current state.
Whether or not this vector is current is determined by the bool m_UpToDate_AC.
Definition at line 645 of file vcs_VolPhase.h.
|
mutableprivate |
Vector of the derivatives of the ln activity coefficient wrt to the current mole number multiplied by the current phase moles.
np_dLnActCoeffdMolNumber(k,j);
Definition at line 654 of file vcs_VolPhase.h.
|
private |
Status.
valid values are
Definition at line 663 of file vcs_VolPhase.h.
|
private |
Value of the potential for the phase (Volts)
Definition at line 666 of file vcs_VolPhase.h.
|
private |
Boolean indicating whether the object has an up-to-date mole number vector and potential with respect to the current vcs state calc status.
Definition at line 670 of file vcs_VolPhase.h.
|
mutableprivate |
Boolean indicating whether activity coefficients are up to date.
Activity coefficients and volume calculations are lagged. They are only called when they are needed (and when the state has changed so that they need to be recalculated).
Definition at line 678 of file vcs_VolPhase.h.
|
mutableprivate |
Boolean indicating whether Star volumes are up to date.
Activity coefficients and volume calculations are lagged. They are only called when they are needed (and when the state has changed so that they need to be recalculated). Star volumes are sensitive to temperature and pressure
Definition at line 687 of file vcs_VolPhase.h.
|
mutableprivate |
Boolean indicating whether partial molar volumes are up to date.
Activity coefficients and volume calculations are lagged. They are only called when they are needed (and when the state has changed so that they need to be recalculated). partial molar volumes are sensitive to everything
Definition at line 696 of file vcs_VolPhase.h.
|
mutableprivate |
Boolean indicating whether GStar is up to date.
GStar is sensitive to the temperature and the pressure, only
Definition at line 702 of file vcs_VolPhase.h.
|
mutableprivate |
Boolean indicating whether G0 is up to date.
G0 is sensitive to the temperature and the pressure, only
Definition at line 708 of file vcs_VolPhase.h.
|
private |
Current value of the temperature for this object, and underlying objects.
Definition at line 711 of file vcs_VolPhase.h.
|
private |
Current value of the pressure for this object, and underlying objects.
Definition at line 714 of file vcs_VolPhase.h.