Commit graph

446 commits

Author SHA1 Message Date
Ray Speth
4e72cf0334 [Numerics] BandMatrix and SquareMatrix support solving multiple RHS 2014-03-24 04:02:06 +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
Ray Speth
7556b828f9 Introduce a more general method of caching results
The ValueCache class is intended to standardize the method for implementing
value caching in Cantera, and to reduce the need to introduce additional member
variables to store cached variables and the thermodynamic state at which the
cached values were computed.

The initial usage is to replace the use of the m_tlast variable in IdealGasPhase
as an example.
2014-03-18 00:48:38 +00:00
Victor Brunini
2b92ad5684 WIP on additional caching.
I'll convert this over to the new caching framework once
Ray adds it.
2014-03-17 16:03:22 +00:00
Harry Moffat
39651964a7 Added back Statmech and PecosTransport.
Rarefied gas dynamics is an import application area for Sandia, and
    it represents a potentially important development direction for Cantera.
    These classes provide inroads into that area.
2014-03-15 02:57:00 +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
Ray Speth
89eab1bb48 [Thermo] Remove redundant implementations of logStandardConc
For the cases where logStandardConc just calls standardConcentration,
rely on the default implementation in class ThermoPhase.
2014-03-13 21:35:49 +00:00
Ray Speth
2fb9ff630d Remove abandoned StatMech and PecosTransport classes 2014-03-13 21:35:11 +00:00
Victor Brunini
48ec4dc65c HMWSoln::s_update_lnMolalityActCoeff() performance improvement.
Only do the expensive update if state has changed.
2014-03-13 18:35:00 +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
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
a58fc91f01 Added back a routine that caused numerous downstream failures. 2014-03-06 04:02:01 +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
Ray Speth
a02d3193de [SCons] Remove unused 'rpfont' configuration variable 2014-02-24 03:25:25 +00:00
Ray Speth
0392147540 Fix integer sign/size warnings in XML-related functions 2014-02-21 19:08:40 +00:00
Ray Speth
2ead29097c [Thermo] Make signatures of overridden Hf298 functions consistent 2014-02-21 19:08:19 +00:00
Ray Speth
b5c5835ca9 Remove superfluous use of 'inline'
Member functions defined in the class body are always 'inline'.
2014-02-21 19:08:13 +00:00
Ray Speth
13259299ba [SCons] Correctly identify Cygwin builds
The correct preprocessor macro to use is the one provided by the
compiler, '__CYGWIN__'.
2014-02-20 03:00:52 +00:00
Ray Speth
78f6314cd9 Remove misleading reference to 'preconfig' 2014-02-13 22:26:49 +00:00
Victor Brunini
92a3d13752 Prevent hidden overloaded virtual function compiler warning. 2014-02-12 21:30:09 +00:00
Ray Speth
fb2f52b2ec General cleanup of class ThermoPhase 2014-02-06 22:59:07 +00:00
Ray Speth
14b1bf093b Remove option to disable 'h298modify_capability' at compile-time 2014-02-06 22:58:56 +00:00
Ray Speth
3015e90088 General cleanup of ctml functions 2014-02-06 22:58:49 +00:00
Victor Brunini
171681bf13 Cache result of expensive function call in HMWSoln for reuse.
Went from 440s runtime down to 65s for test case of interest.
2014-02-03 19:48:02 +00:00
Ray Speth
e59a7a7eeb [1D] Eliminate deprecated methods of Domain1D 2014-01-30 00:47:52 +00:00
Ray Speth
ff9584105b Do implicit CTI to XML conversions without generating .xml files
When instantiating a phase from a .cti file, do the conversion in memory,
without writing the XML representation to disk. This eliminates the unrequrested
XML files that Cantera normally generates, and also avoids errors when running
Cantera from a directory where the user does not have write permissons.
2014-01-30 00:47:37 +00:00
Ray Speth
aae8982924 Clean up end-of-file whitespace 2014-01-30 00:47:24 +00:00
Ray Speth
a33c57d1f1 [1D] Remove unused method 'setAdiabaticFlame' 2014-01-23 04:20:42 +00:00
Ray Speth
904459c6b8 [1D] Remove unused 'importSolution' function 2014-01-23 04:20:35 +00:00
Ray Speth
cf0ff0c6fd [1D] Move m_zfixed and m_tfixed variables from Domain1D to FreeFlame
FreeFlame is the only subclass of Domain1D where these variables are used.
2014-01-21 17:21:43 +00:00
Bryan W. Weber
4badbd1fb3 [SCons/0D] Update to enable Sundials linked with external BLAS/LAPACK.
With help from Nick Curtis and Ray Speth.
2014-01-20 15:19:53 +00:00
Victor Brunini
8c4312f31e Fix potential segmentation fault and invalid read. 2014-01-14 16:51:20 +00:00
Ray Speth
dfc542be76 Fix some issues identified by compiler warnings 2014-01-09 23:12:11 +00:00
Ray Speth
a2d26cd80a [Kinetics] Simplifiy implementation of Kinetics::nTotalSpecies 2014-01-06 18:46:19 +00:00
Ray Speth
dede8dcd42 [1D] Remove redundant Domain1D::setGrid function
This is a duplicate of Domain1D::setupGrid.
2014-01-06 18:46:09 +00:00
Ray Speth
2653c0a16b [1D] Move OneDim::needJacUpdate to the correct source file 2014-01-06 18:46:03 +00:00
Ray Speth
ff75f77add Remove unnecessary m_nchildren variable from XML_Node 2014-01-06 18:45:41 +00:00
Ray Speth
76a9c5e79c Remove unnecessary overload of XML_Node::addChild 2014-01-06 18:45:31 +00:00
Ray Speth
607955b9f2 Remove unnecessary conditional surrounding 'delete' statements 2014-01-06 18:45:19 +00:00
Harry Moffat
7e88d49734 Took out change of user NASA polynomials.
This violates basic paradigm of what the user inputs the user gets.
If this is necessary, this needs to be a cpp utility program that is run before the main simulation.
2014-01-03 20:57:40 +00:00
Ray Speth
28dbcf072e [Kinetics] Remove the deprecated 'WF93' Falloff function 2013-12-16 23:22:09 +00:00
Bryan W. Weber
fc2d7e4ce0 [Reactor] Change 'species' to 'component' in context of sensitivities
Change the variable named *species* to be named *component*. This
better matches the utility of this variable, since it can be used to
retrieve any of the state variables. Also, update the corresponding
documentation.
2013-12-16 23:22:04 +00:00
Ray Speth
e1a49487b7 [Kinetics] Remove deprecated getActivationEnergies function
Resolves Issue 147.
2013-12-16 23:21:52 +00:00
Ray Speth
28bbbf514c Remove deprecation warning about Sundials < 2.4 from CVodesIntegrator 2013-12-16 23:21:45 +00:00