Commit graph

160 commits

Author SHA1 Message Date
Ray Speth
ee736fb306 Fix potential segmentation fault and invalid read.
Cherry-pick of trunk r2676.
2014-01-23 03:06:29 +00:00
Ray Speth
9f156c04fc [Thermo] Make modification of discontinuous NASA polynomials optional
Adding the attribute allow_discontinuities="true" to a phase's
'thermo' node (CTML) or adding 'allow_discontinuous_thermo' to a
phase's 'options' argument (CTI) will disable the automatic adjustment
of the provided polynomials so that enthalpy and entropy are
continuous at the midpoint temperature.

Cherry-pick of trunk r2590.
2014-01-23 02:12:36 +00:00
Ray Speth
3f92b77f5a [Thermo] Fix printed labels in phase report when show_thermo=False 2013-12-06 23:15:11 +00:00
Ray Speth
f95bc8fb43 [Equil] Avoid floating point overflow from pressure term
Since computing the residual norm effectively requires p**2, the
correct limit to avoid an overflow is sqrt(DBL_MAX), or roughly
exp(300).

This change fixes crashes due to SIGFPE in cases where floating point
exceptions have been enabled, and also fixes a few cases where the
solver did not previously converge.
2013-09-30 01:53:54 +00:00
Ray Speth
7447c5957d [Thermo] Fix deleting objects that have manually-added species 2013-09-01 00:33:06 +00:00
Ray Speth
c76ddefa5f Fix spelling errors 2013-07-26 21:33:50 +00:00
Ray Speth
d129d74289 [Thermo] Move shared methods to SpeciesThermoInterpType base class
Almost every class derived from SpeciesThermoInterpType used the same
implementation of the minTemp, maxTemp, refPressure, and speciesIndex,
so it makes more sense to just implement these in the base class.
2013-07-23 15:30:56 +00:00
Ray Speth
0fddd6a129 [Thermo] Fix errors in setState_SPorSV
This corrects the behavior in cases where the correct temperature is below the
nominal minimum temperature for the phase.

Add test cases for this and analogous cases for the maximum temperature and
setState_HPorUV.

Fixes Issue 151.
2013-07-18 19:07:14 +00:00
Steven DeCaluwe
878abceb6a Removed 'const' declaration from satPressure function for remaining ThermoPhase class members. 2013-07-15 17:44:01 +00:00
Steven DeCaluwe
23b725d3a8 Removed 'const' declaration for function satPressure in members of the ThermoPhase class 2013-07-15 17:43:54 +00:00
Steven DeCaluwe
6321cf4c8e Removed calculatePsat from matlab toolbox, and overwrote 'satPressure' for MixtureFugacityTP
class to point to the calculatePsat function.  Removed 'const' declaration from satPressure
within the ThermoPhase class.
2013-07-15 17:43:45 +00:00
Ray Speth
19662496c3 Deprecate VPSSMgr::standardVolumes 2013-06-28 21:24:46 +00:00
Ray Speth
ee9b153efb Improve performance of reading species info from XML
Avoid an O(N) lookup for the thermo info for each species. Using an
unordered_map would be even better, but there's no portable way to do that
without Boost.
2013-06-28 21:24:42 +00:00
Ray Speth
9d2f7e0220 Deprecate report/modifyParameters methods of SpeciesThermoInterpType 2013-06-24 15:22:25 +00:00
Ray Speth
8c95ee035e Deprecate the setParameters and getParameters methods of ThermoPhase 2013-06-24 15:22:08 +00:00
Ray Speth
f7ed3c17f8 Deprecate SpeciesThermo::reportParams 2013-06-24 15:22:00 +00:00
Ray Speth
d060cba434 Fix a memory error in IdealGasPhase::cv_vib and cv_tr
The array 'c' is only long enough to hold the thermo parameters filled in
by the StatMech class, so it's necessary to make sure the type is correct
first and abort if it's not, rather than calling reportParams first and
corrupting the stack.
2013-06-24 15:21:55 +00:00
Ray Speth
a972a7f558 Deprecate class Elements 2013-06-06 15:32:56 +00:00
Ray Speth
a6614b87bb [Doxygen] Fix some incorrect/missing "@file" commands 2013-06-06 15:32:30 +00:00
Ray Speth
d253fc0d63 Eliminate redundant standard library includes 2013-06-05 17:08:13 +00:00
Ray Speth
61917052d4 Removed unnecessary use of mdp_copy_dbl_1 from ThermoPhase 2013-04-29 18:05:14 +00:00
Ray Speth
0a059d406a Eliminated unnecessary empty destructors from derived classes
See http://www.parashift.com/c++-faq-lite/virtual-dtors.html
2013-04-29 18:04:23 +00:00
Ray Speth
e8c0e96dae [Thermo] Use least squares method to compute consistent NASA coefficients
To eliminate discontinuities in Cp/R, H/RT and S/R between the high- and
low-temperature NASA polynomials, formulate and solve a linear least squares
problem for a set of 11 coefficients (3 of the original coefficients 14 being
eliminated by the continuity requirements) which minimizes the changes in the
computed properties at a set of temperatures covering the valid temperature
range.
2013-04-24 21:47:56 +00:00
Ray Speth
d8f9f97f74 Refactored class NasaThermo to remove implementations from header 2013-04-24 21:47:48 +00:00
Ray Speth
af55ec5557 [Thermo] Fixed an error in MargulesVPSSTP::s_update_dlnActCoeff_dT
This error was introduced in r1968, but it was masked by an issue with the code
used to compare test results.
2013-04-24 21:47:45 +00:00
Ray Speth
ee74c80afc Fixed a number of "shadowed variable" compiler warnings 2013-04-18 22:08:36 +00:00
Ray Speth
ae96e48b4f [Thermo] Adjust NASA polynomials to eliminate discontinuities
We expect the high- and low-temperature NASA polynomials for each species to be
continuous in a number of places, despite many frequently used thermo databases
having data that is inconsistent.

In addition to warning about discontinuities, We now modify the provided
coefficients to ensure continuity at the midpoint temperature. This resolves
numerical issues, e.g. with the algorithm used for setting the state of a
reactor network.
2013-04-18 22:07:00 +00:00
Ray Speth
548f0b1c56 Refactoring to slightly simplify NasaThermo::install 2013-04-18 22:06:55 +00:00
Ray Speth
255896715c Allow RedlichKwongMFTP objects to be constructed by newThermoPhase 2013-04-12 23:05:59 +00:00
Ray Speth
50617105b5 Removed inaccurately-named atofCheck in favor of fpValueCheck 2013-04-03 23:10:35 +00:00
Ray Speth
7b7d3ac0d4 Fixed locale-dependent processing of XML files
Floating point values are read using a std::stringstream imbued with the "C"
locale to avoid problems with using std::atof when the user's locale uses a
character other than "." as the decimal separator.

Patch provided by Phillip Berndt.

Fixes Issue 153.
2013-04-03 23:10:18 +00:00
Ray Speth
e7f580148f Cleaned up Doxygen documentation for class WaterProps and friends 2013-03-07 18:51:17 +00:00
Ray Speth
b4506cebe1 Cleaned up Doxygen documentation for class VPSSMgr and descendants 2013-03-07 18:51:11 +00:00
Ray Speth
4671f857d0 Cleaned up Doxygen documentation for class StatMech 2013-03-07 18:51:08 +00:00
Ray Speth
01b57ba821 Cleaned up Doxygen documentation for thermo factory classes 2013-03-07 18:51:04 +00:00
Ray Speth
57a9a3f458 Cleaned up Doxygen documentation for class PDSS and descendants 2013-03-04 17:31:27 +00:00
Ray Speth
3426b73b7a Cleaned up Doxygen docs for class SpeciesThermoInterpType and descendants 2013-03-04 17:31:22 +00:00
Ray Speth
c68e01d475 Cleaned up Doxygen documentation for class SpeciesThermo and descendants 2013-03-04 17:31:19 +00:00
Harry Moffat
3cc0aa1689 Fixed an overloaded operator error
Fixed a compilation error that occurred in DEBUG_MODE
2013-02-25 20:00:24 +00:00
Ray Speth
934010136d Removed unnecessary temporaries used for storing return values 2013-02-14 01:04:07 +00:00
Ray Speth
e04e59cdd3 Removed extraneous parentheses around arguments to 'return'
'return' is a keyword, not a function, so these parens are unnecessary.
2013-02-14 01:03:48 +00:00
Ray Speth
3b78634381 Removed extraneous parentheses around arguments to 'delete'.
'delete' is a keyword, not a function, so the parens are not necessary.
2013-02-14 01:03:42 +00:00
Ray Speth
6d6e237f07 Removed unnecessary checks surrounding delete operations 2013-02-14 01:03:32 +00:00
Ray Speth
4e3a79394b Eliminated some shadowing of member variables by function arguments 2013-02-14 01:03:19 +00:00
Ray Speth
70b08a6891 Eliminated some local variable shadowing 2013-02-14 01:03:13 +00:00
Ray Speth
8a17523715 Use the "charge" member function consistently to access species charges
Eliminated local alias to array of charges in some functions. Inlined the
"charge" function to mitigate any performance impact. Fixes a number of shadowed
variable warnings.
2013-02-14 01:03:09 +00:00
Ray Speth
d59cac4ca0 Cleaned up Doxygen docs for other descendants of ThermoPhase 2013-02-14 01:02:58 +00:00
Ray Speth
b15640a741 Cleaned up Doxygen documentation for class SurfPhase and descendants 2013-02-14 01:02:54 +00:00
Ray Speth
6b0a708389 Cleaned up Doxygen docs for class SingleSpeciesTP and descendants 2013-02-14 01:02:46 +00:00
Ray Speth
da33cc66c3 Cleaned up Doxygen docs for class VPStandardStateTP and descendants 2013-02-14 01:02:34 +00:00