Fix Redlich-Kwong equilibrium calculations #898
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes proposed in this pull request
ThermoPhase::setToEquilState
: The values passed into this function are the nondimensional (species) chemical potentials, not the element potentials. The methodChemEquil::setToEquilState
already handles calculation of the chemical potentials from the element potentials.IdealSolidSolnPhase
: The implementation ofIdealSolidSolnPhase::setToEquilState
incorrectly used the input array as the element potentials rather than the species chemical potentials. The modified implementation corresponds to that of theIdealGasPhase
class. The previous implementation seems to generally have resulted in an exception being raised, which normally results in falling back to the Gibbs solver, so this shouldn't have been producing incorrect results.RedlichKwongMFTP::setToEquilState
implementation: The inversion of setting the mole fractions based on the chemical potentials is not obvious for non-ideal phases, and the implementation here based on an ideal phase leads to incorrect equilibrium solutions.If applicable, fill in the issue number this pull request is fixing
Fixes #847.
Checklist
scons build
&scons test
) and unit tests address code coverage