Commit graph

130 commits

Author SHA1 Message Date
Paul
c4aff04418 Updated URL in references to Cantera's license. 2019-09-23 22:02:33 -04:00
band-a-prend
1606ce1565 Remove m_iter variable and deprecate setIterator function
Remove m_iter variable and deprecate setIterator function
because only Newton (CV_NEWTON) iteration method is used.
2019-08-09 18:08:47 -04:00
band-a-prend
6a8d7f7de3 Fix building Cantera against Sundials 4.x library
The changelog of Sundials 4.0.0 states:

"With the introduction of SUNNonlinSol modules, the input parameter iter
to CVodeCreate has been removed along with the function CVodeSetIterType
and the constants CV_NEWTON and CV_FUNCTIONAL.
Similarly, the ITMETH parameter has been removed from the Fortran interface
function FCVMALLOC. Instead of specifying the nonlinear iteration type
when creating the CVODE(S) memory structure, CVODE(S) uses
the SUNNONLINSOL_NEWTON module implementation of a Newton iteration by default."

so the appropreate conditional changes are added to control
the code execution via CT_SUNDIALS_VERSION preprocessor variable
to omit the parameters of Sundials solver that are no longer required.
2019-08-09 18:08:47 -04:00
Ingmar Schoegl
bc8b4be654 [Reactor] clarify FlowDevice interface
* differentiated Valve::setValveCoeff from PressureController::setPressureCoeff
 and introduced MassFlowController::setMassFlowCoeff for consistency.
 * introduced FlowDevice::setTimeFunction and FlowDevice::setPressureFunction to
 differentiate time-dependent and pressure-dependent functions.
 * introduced arbitrary pressure dependence for PressureController
 * deprecated FlowDevice::setFunction which is replaced by time and pressure
 specific functions.
 * introduced properties Valve.valve_coeff / PressureController.pressure_coeff /
 MassFlowController.mass_flow_coeff in Cython interface and deprecated
 Valve.set_pressure_coeff / PressureController.set_pressure_coeff
 * deprecated corresponding function calls in clib interface
 * deprecate FlowDevice.setParameters (which was only used by MATLAB interface)
2019-08-05 17:01:05 -04:00
Ingmar Schoegl
d263566670 [Reactor] Deprecating magic numbers.
* add deprecation warning for int ReactorBase::type() (to be changed after Cantera 2.5)
 * introduce temporary std::string ReactorBase::typeStr() (to be renamed after Cantera 2.5)
 * deprecate all functions using the old call and introduce associated temporary functions
2019-08-01 15:37:48 -04:00
Ray Speth
a247d0f4eb [Reactor] Use correct phase state after mass flow rate evaluation
A user-defined mass flow rate function can modify the ThermoPhase object used by
a reactor, for example if it depends on calculating some property of a different
reactor. To make sure that the reactor governing equations are evaluated
correctly, the ThermoPhase state needs to be set after all user-defined
functions have been called.
2019-06-27 10:47:05 -04:00
Ingmar Schoegl
ae792dde00 implemented limited advance step 2019-06-26 13:48:01 -04:00
Ingmar Schoegl
5d62f3bacc added factories for FlowDevice and Wall objects 2019-05-28 19:21:28 -04:00
Ray Speth
b7f3ab561b Fix compiler warnings issued by Visual Studio 2015 2018-08-28 16:45:49 -04:00
Ray Speth
deeaaed03f [Reactor] Fix using pure substances near temperature limits
Fixes #475
2017-12-02 19:19:51 -05:00
Ray Speth
7673f7cb52 Remove code deprecated in Cantera 2.3.0 2017-02-12 19:22:33 -05:00
Ray Speth
50ad75f2a2 [Reactor] Make ReactorNet uncopyable 2016-11-14 20:34:45 -05:00
Ray Speth
ecb2868a18 [Reactor] Suppress recoverable errors in RHS function by default
Accumulate errors and show them if the integrator actually fails. In "verbose"
mode, the errors are shown as they occur.
2016-10-23 22:42:53 -04:00
Ray Speth
1dc0cedcd9 [Reactor] Use Boost's bracket_and_solve_root function
This algorithm is more robust than the simple Newton's method that it
replaces. Among its advantages is that it works with PureFluidPhase models.

Resolves #257
2016-10-22 16:17:57 -04:00
Ray Speth
28202f9fa2 [Reactor] Allow Reactor to function without requiring a Kinetics object 2016-10-22 15:50:01 -04:00
Ray Speth
478a62d2af [Thermo] Make tolerances used in state setters more consistent 2016-10-19 12:55:18 -04:00
Ray Speth
ae6e7fdff7 Add license/copyright info to files that were missing it 2016-10-10 22:48:23 -04:00
Ray Speth
ecbfecd7fd Replace existing copyright notices with uniform copyright/license info 2016-10-10 22:19:01 -04:00
Bryan W. Weber
c344b4c0f8
Add methods Reactor::setChemistry and chemistryEnabled
These functions mirror the setEnergy and energyEnabled methods.
The enableChemistry and disableChemistry methods are deprecated.
2016-08-12 10:54:58 -04:00
Ray Speth
7f121a9270 [Reactor] Use setCoveragesNoNorm when evaluating ReactorSurface 2016-07-28 22:38:05 -04:00
Ray Speth
0f71bbcec5 [Thermo] Replace numerical constants for ThermoPhase types with strings
Deprecate ThermoPhase::eosType and related methods
2016-07-07 21:36:11 -04:00
Ray Speth
f985169e93 Introduce basic registration capabilities for factories 2016-07-04 16:01:31 -04:00
Ray Speth
ce9a17fb76 [Reactor] Make better use of local variables 2016-06-28 16:58:51 -04:00
Ray Speth
4b8f8b692a [Reactor] Deprecate Wall-based method for adding surface chemistry
The new method using class ReactorSurface should be used instead.
2016-06-28 14:37:59 -04:00
Ray Speth
3f766370b9 [Reactor] Add ReactorSurface to simplify use of surface reactions
This separates the handling of interactions between reactors (mediated by
Wall objects) and surfaces on which surface reactions occur (handled by
ReactorSurface). This simplifies the implementation within reactor, and
reduces the complexity of user code involving surface reactions by
eliminating the need to set up a Reservoir object for the opposite side
of a Wall object that is only being used for surface reactions.
2016-06-28 14:16:18 -04:00
Ray Speth
fd4cbb8718 [Doc] Fix spelling errors 2016-06-27 14:30:49 -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
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
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
9ed23a57ab Move non-trivial functions out of header files 2016-04-08 19:13:09 -04:00
Ray Speth
0540cf26d0 Clean up Doxygen docs and comments in Reactor classes 2015-11-12 11:41:34 -05:00
Ray Speth
70fe821c19 Deprecate FuncEval::getInitialConditions and related functions 2015-11-06 14:40:48 -05:00
Thomas Fiala
16ab7dff51 [Reactor] Implement functions getState for reactors and reactor networks
These are simpler forms of getInitialConditions.
2015-11-03 14:34:28 -05:00
Ray Speth
0647823ada Replace DATA_PTR macro with calls to data() 2015-10-17 18:58:50 -04:00
Ray Speth
a945ef2c23 Make use of initializer lists where appropriate 2015-10-17 18:58:50 -04:00
Ray Speth
f9375e1a09 Use locks/mutexes from the standard library instead of Boost.Thread
This eliminates the need to link against any of the compiled Boost libraries,
and means that we can always build in thread-safe mode
2015-10-17 18:58:50 -04:00
Ray Speth
a03f370cfd Make use of emplace and emplace_back methods 2015-10-14 18:45:23 -04:00
Ray Speth
3f6d8b0aca Use cppformat instead of int2str and fp2str 2015-10-14 18:45:23 -04:00
Ray Speth
2589a27b6c Use range-based for and auto to simplify some loops 2015-10-14 18:45:23 -04:00
Ray Speth
16143b47b6 Replace most uses of sprintf with cppformat 2015-10-14 18:45:22 -04:00
Ray Speth
41527b1ea7 Rename two-argument version of writelog 'debuglog'
This is a prerequisite to allowing writelog to take an arbitrary number
of arguments.
2015-10-14 18:45:22 -04:00
Ray Speth
3d27dfa1a1 [Reactor] Eliminate unused variable ReactorNet::m_iown 2015-10-05 18:48:14 -04:00
Ray Speth
6e138d0ae4 [Reactor] Always check that input/output are finite
This causes problems to be caught early, where they can at least sometimes be
handled as recoverable intergrator errors, rather than letting NaN values
propagate through the solution.
2015-08-24 12:27:07 -04:00
Ray Speth
acdf9cf0ed Clean up interstitial whitespace
Remove extra space around operators, between words, etc.
2015-08-02 23:06:16 -04:00
Ray Speth
6a04193646 Fix un-bracketed if, for, and else statements 2015-08-02 23:06:15 -04:00
Ray Speth
e4c45b6429 General whitespace cleanup
Remove unnecessary blank lines and trailing whitespace. Replace tabs with
spaces.
2015-08-02 23:06:15 -04:00
Ray Speth
d8772f261b [Reactor] Cannot add sensitivity reactions to initialized ReactorNet
Before, the attempt to add the reaction was silently ignored. Now, this raises
an exception.
2015-07-21 14:54:13 -04:00
Ray Speth
546289f737 Remove deprecated code with functional alternatives 2015-07-13 18:59:09 -04:00
Ray Speth
d373e0751e Remove unnecessary explicit specification of namespace Cantera 2015-06-24 14:45:55 -04:00