Commit graph

939 commits

Author SHA1 Message Date
Ray Speth
b49c2e4c2d [Numerics] Use Eigen instead of internal LAPACK for DenseMatrix operations 2016-05-14 21:56:17 -04:00
Ray Speth
bf67cce25f [SCons] Make Eigen available to Cantera
Check for a system copy of Eigen, and if that is not found, install
Eigen's headers with the Cantera headers. Add the header 'eigen_dense.h'
to provide a single header to include from other locations.
2016-05-14 21:56:17 -04:00
Ray Speth
41ae065a6e Use Sundials to solve BandMatrix instead of using internal LAPACK 2016-05-14 21:56:17 -04:00
Ray Speth
efe43b389e [1D] Add callback hooks to make debugging 1D solver easier
This allows one to define functions in Python which will be called after each
successful time step or steady state solve, from which the state of the solver
can be inspected.
2016-05-14 17:24:16 -04:00
Ray Speth
11db445caf [Thermo/Doc] Explain why Phase::setMolecularWeight exists 2016-05-14 16:43:35 -04:00
Ray Speth
14b9454819 [C++] Clean up of top-level headers
These headers should only include general functionality, i.e. base classes and
factory methods. Users working directly with derived types can include the
relevant headers directly.

Deprecate some top-level headers which are not really useful.
2016-05-14 16:10:10 -04:00
Ray Speth
77e6f9c0d0 Deprecate Array2D::axpy 2016-05-10 22:21:28 -04:00
Ray Speth
46684646ee [Thermo] DebyeHuckel::_nonpolarActCoeff is a static method
Definition now corresponds to documentation
2016-05-10 22:13:43 -04:00
Ray Speth
812290dc37 [Thermo] Deprecate ThermoPhase::installSlavePhases
For the only class in which this is used (LatticeSolidPhase), all initialization
can be performed in the initThermo method.
2016-05-10 20:20:35 -04:00
Ray Speth
491816f706 [Thermo] Remove overload IdealSolidSolnPhase::logStandardConc 2016-05-10 18:33:41 -04:00
Ray Speth
8ff82c06ce [Reactor] Add componentName function to ReactorNet and Reactor classes 2016-05-09 22:42:45 -04:00
Ray Speth
cf13b318f4 [Reactor] Implement enthalpy of formation sensitivity analysis 2016-05-08 18:24:14 -04:00
Ray Speth
4eea27b0a4 Update cppformat (now fmt)
Update to current master (pre-3.0), and change remote repository to reflect name
change from cppformat to fmt. Needed to be updated now because one of the
submodules referenced in the 1.1.0 release no longer exists due to the change in
the Github organization name from cppformat to fmtlib.
2016-05-03 15:03:52 -04:00
Ray Speth
ca2a330d5f [XML] Include file name in XML-related errors
Resolves #40
2016-05-03 15:03:51 -04:00
Ray Speth
6003af01a3 [XML] Add version of XML_Node::build that takes file name directly 2016-05-03 15:03:51 -04:00
Ray Speth
c7a1a57fbd [Reactor] Eliminate re-ordering of sensitivity parameters
Passing the full parameter vector to evalEqs for each reactor and wall
eliminates the need to re-order the parameter vector. Instead, each reactor and
wall just needs to know the indices of its sensitivity parameters, which are now
returned by ReactorNet::registerSensitivityReaction.
2016-05-01 20:35:34 -04:00
Ray Speth
0e2ea0964b [Thermo] Add function 'resetHf298'
Using this instead of modifyHf298 to reset the thermo data to its original
state avoids round-off errors that otherwise make modifications to the
species thermo data irreversible.
2016-04-30 16:43:37 -04:00
Ray Speth
0f669153fb [Thermo] Remove unnecessary overrides of modifyOneHf298SS 2016-04-30 16:43:37 -04:00
Ray Speth
032bb9c363 [Reactor] Move sensitivity parameter vector into FuncEval
This eliminates the need for class FuncData, and makes it possible to
introduce sensitivity parameters which have a nominal values other than 1.0.
2016-04-19 16:08:52 -04:00
Ray Speth
51b0e46277 [Thermo] ThermoPhase::modifyOneHf298SS always invalidates cached data 2016-04-18 22:20:06 -04:00
Ray Speth
3566542c0b [Equil] Replace PropertyCalculator with simple lambdas 2016-04-18 20:29:02 -04:00
Ray Speth
f4ad150905 [1D] Sim1D::setProfile checks range of position array 2016-04-18 20:00:15 -04:00
Ray Speth
6a928b57f9 Replace getValue with std::map.at where possible
Deprecate the two-argument version of getValue, since the C++11 at method does
the same thing.
2016-04-18 19:34:40 -04:00
Ray Speth
6e3812a828 [Thermo] Remove unnecessary temporary work vectors 2016-04-18 17:52:08 -04:00
Ray Speth
9e9ae783f8 Don't use a vector where a scalar will suffice 2016-04-18 15:36:23 -04:00
Ray Speth
336271c395 [Doc] Clean up redundant "@return returns ..." 2016-04-18 14:58:15 -04:00
Ray Speth
a026c6ad8b [Thermo] Add compatibility check for phases added to MultiPhase
PureFluidPhase and WaterSSTP are not compatible with MultiPhase since they are
already multi-phase mixtures.

Resolves #306
2016-04-18 14:40:28 -04:00
Ray Speth
32b3543cbe [Thermo] Introduce Phase::compositionChanged
This function is called after any change in composition, and can be used by
phases to update quantities that are affected by the composition change, instead
of needing to overload all of the different functions which update the
composition.
2016-04-17 23:58:34 -04:00
Ray Speth
ac2361ee53 [Thermo] Deprecate IdealSolidSolnPhase::referenceConcentration 2016-04-17 22:49:28 -04:00
Ray Speth
994c9d1afb [CTML] Deprecate addInteger and CTML_Version 2016-04-16 23:55:51 -04:00
Ray Speth
56f49ef444 Miscellaneous jargon cleanup 2016-04-16 22:32:49 -04:00
Ray Speth
80fcc92129 [Thermo] Deprecated constructPhaseFile and constructPhaseXML methods
These methods were only defined for HMWSoln and IonsFromNeturalVPSSTP, and just
do the same thing as initThermoFile and importPhase (respectively).
2016-04-16 22:08:39 -04:00
Ray Speth
111b4909c9 [Thermo] Deprecate class SemiconductorPhase
Can't be constructed from ThermoFactory, and constructor from file is not
implemented. Also, the getChemPotentials method uses the m_work array, which is
never initialized because the private method initLengths() is never called.

See #267
2016-04-16 21:06:49 -04:00
Ray Speth
f583bd4530 [Doc] Convert HTML tags to Markdown in Doxygen docs 2016-04-16 20:58:38 -04:00
Ray Speth
af19481b65 [Doc] Remove some incorrect copy/pasted docstrings 2016-04-16 17:26:49 -04:00
Ray Speth
1ba5f6b879 [Kinetics] Allow adding species after reactions for homogeneous kinetics
This enables incremental mechanism construction for gas phase kinetics. For
surface kinetics, adding new species changes the kinetics species index of
existing species in other phases, so this feature is disabled.
2016-04-16 11:52:08 -04:00
Ray Speth
9c4a0baa55 [Thermo] Simplify adding species for most phase types
Where possible, extend arrays as species are added rather than requiring a
later call to initThermo(). For phases that do not require any data except
that which is included in the Species objects themselves (notably, this
includes IdealGasPhase), species can now be added dynamically without
affecting the phase state.
2016-04-15 20:56:24 -04:00
Ray Speth
1f231d1dd0 [Kinetics] Eliminate need for 'finalize' method
All reaction-sized arrays are now allocated as reactions are added, which means
that the finalize() method is unnecessary and reactions can be continuously
added, even after the Kinetics object has been used for rate calculations.
2016-04-15 17:05:10 -04:00
Ray Speth
4428a62f3c [Thermo] Add ability to modify species data for existing Phase objects 2016-04-15 15:32:38 -04:00
Ray Speth
13fa0c7a4f Add invalidateCache() function to ThermoPhase and Kinetics
This can be used to invalidate cached data after a change to underlying data
such as species thermo coefficients or reaction rate coefficients. Needs to be
user-accessible so that dependent objects can be updated manually.
2016-04-15 15:32:38 -04:00
Ray Speth
eda9fc8f23 [Equil] Add vcs_VolPhase::eos_name; deprecate string16_EOSType 2016-04-15 15:31:23 -04:00
Ray Speth
fb346d85bc [Doc] Add detailed descriptions to classes ChebyshevRate and Plog
The descriptions are essentially taken from the CTI guide (reactions.rst)
2016-04-15 12:31:19 -04:00
Ray Speth
7124385292 [Test] Make deprecation warnings fatal in test suites
This ensures that deprecated methods aren't being called anywhere in the test
suite, without having to manually scan the test output for warning messages.
2016-04-15 12:04:08 -04:00
Ray Speth
9a848fbd0e [Equil] Deprecate unused internal VCS functions 2016-04-14 23:29:33 -04:00
Ray Speth
ef441e4182 [CTML] Deprecate getFloatDefaultUnits
This function is unnecessarily complicated and rarely needed.
2016-04-14 19:41:44 -04:00
Ray Speth
bd24aeb926 [Numerics] Fix DenseMatrix::mult to work for rectangular matrices 2016-04-13 21:11:05 -04:00
Ray Speth
9ed23a57ab Move non-trivial functions out of header files 2016-04-08 19:13:09 -04:00
Ray Speth
b7f9f230a7 [Equil] Replace (vcs_)print_stringTrunc with usage of cppformat 2016-04-06 23:08:37 -04:00
Ray Speth
511a39fc73 [Equil] Standardize VCS solver to always use MKS units 2016-04-05 12:52:01 -04:00
Ray Speth
a60217cfc6 [Equil] Make better use of local variables 2016-04-05 12:52:01 -04:00