Commit graph

15 commits

Author SHA1 Message Date
Ray Speth
002c158761 Cleanup include statements
Move includes from header to implementation files where possible, and remove
unnecessary includes.
2014-08-28 16:54:13 +00:00
Ray Speth
95eb7ab3ba Remove newline after '::' in member function definitions
This inconsistency makes it hard to directly search the code for a specific
member function definition.
2014-03-24 04:03:09 +00:00
Victor Brunini
a641992960 Add validate() functions to CachedValue.
To both check and update the cached state values. Reduces
a lot of code duplication in the use of CachedValues.

I'd like to make state1, state2, and stateNum private so
that they can only be accessed with one of the validate functions,
and also add some asserts to the validate functions that do not
use all of the state variables to ensure that the unused ones are
set to their default values to prevent the case where the wrong
validate() function is called and incorrectly determines that the
cached state is valid.

First pass at making the state variables private caused a test failure
for test_problems/statmech. The m_spthermo->update() call in
IdealGasPhase::_updateThermo() throws an exception for this test right
now that gets caught in equilibrate(). When using validate() the cached
state variable is updated before the m_spthermo->update() call and subsequently
it thinks that the thermo does not need to be updated, whereas when
cached.state1 is being set after the m_spthermo->update() call it does not get
set. The current blessed output for that test is just the text of the exception
that gets caught, so I suspect the test may not work as is.
2014-03-19 00:14:18 +00:00
Victor Brunini
a704df09d8 Convert recent changes to new caching method. 2014-03-18 18:52:29 +00:00
Victor Brunini
b0ecf96cb6 Trying out a cleaner way knowing when expensive state functions need to be recomputed. 2014-03-13 23:50:31 +00:00
Victor Brunini
e62ce054ce Style changes to be consistent with the rest of Cantera.
Thanks for the code review.
2014-03-13 16:49:10 +00:00
Victor Brunini
584abf0d10 Performance improvements for HMWSoln and MaskellSolidSolnPhase.
HMWSoln: avoid recomputing lambdas if ionic strength hasn't changed.

MaskellSolidSolnPhase: Avoid recomputing activity coefficients if
r and T haven't changed.
2014-03-12 20:37:04 +00:00
Ray Speth
6a51eb88dc [Thermo] Move modifyOneHf298SS and m_tlast to ThermoPhase
This eliminates many duplicate implementations of this function and
declarations of this variable.
2014-03-08 21:46:58 +00:00
Victor Brunini
ee94266939 MaskellSolidSolnPhase: throw in unimplemented functions. 2014-03-07 17:21:14 +00:00
Victor Brunini
1565bad198 MaskellSolidPhaseSoln thermo updates.
Fix sign error in chemical potentials and update
activity coefficients accordingly.

Correct implementation of getActivityConcentrations()

Additional unit tests.
2014-03-07 17:14:13 +00:00
Victor Brunini
0981391ac4 Implement and test MaskellSolidSolnPhase::getActivityCoefficients(). 2014-03-07 00:53:33 +00:00
Victor Brunini
7abb459bbe Implement MaskellSolidSolnPhase::standardConcentrations() and getActivityConcentrations() 2014-03-06 22:30:19 +00:00
Victor Brunini
5898bf025f Implement MaskellSolidSolnPhase::getPartialMolarVolumes()
User VPStandardStateVP as base class and just return
the standard state molar volumes.
2014-03-06 20:23:23 +00:00
Harry Moffat
7078ac4d18 Added constructor info to prevent segfaults
However, need to flesh the whole class out to be useful in Electrode objects.
2014-03-06 17:03:23 +00:00
Victor Brunini
93fcf181b1 Initial pass at implementing Maskell solid solution ThermoPhase.
Based on Maskell, Shaw, and Tye, Electrochimica Acta 28(2) 225-230 1983.
Includes unit tests checking calculation of the chemical potential values
and parsing of the mixing enthalpy parameter from an XML file.
2014-02-28 00:38:09 +00:00