Commit graph

688 commits

Author SHA1 Message Date
Ray Speth
2bfbd73a12 [Python] Add Reaction.__contains__ method 2016-03-28 18:03:02 -04:00
Ray Speth
233399f899 [ck2cti] Fix conversion of NASA9 thermo with only one temperature range 2016-03-28 12:48:10 -04:00
Ray Speth
92ccda85fc [1D/Examples] Use 'auto' to simplify 1D examples 2016-03-27 17:07:37 -04:00
Ray Speth
2315da5230 [1D/Test] Add more tests for counterflow premixed flames 2016-03-27 17:07:37 -04:00
Ray Speth
dfb4d62e12 [1D/Test] Add test for ImpingingJet and ReactingSurface1D 2016-03-27 17:07:37 -04:00
Ray Speth
3e371c8093 [1D] Add tests for burner stabilized flames 2016-03-27 17:07:37 -04:00
Ray Speth
522d263979 [1D/Test] Test diffusion flames where non-extinct solutions are expected
Several of the tested sets of parameters are ones where the solver would
previously only find the non-reacting solution.
2016-03-27 17:07:36 -04:00
Ray Speth
1730036976 [1D/Test] Add more cases to test FreeFlame for basic convergence
The additional test cases are selected from conditions under which the solver
would previously fail
2016-03-27 17:07:36 -04:00
Ray Speth
77c744204e [1D] Try harder to find non-extinct diffusion flames when using 'auto'
Increasing the density of grid points is more likely to lead to a non-extinct
solution, but takes longer to solve. To give good average-case performance,
first try solving on a grid with few points, then increase the number of points
until a reacting solution is found, if possible.
2016-03-27 17:07:36 -04:00
Ray Speth
b56094b183 [1D/Examples] eliminate unnecessary setting of tolerances
For most problems, these new default tolerances for both time stepping and
steady state solves are more likely to converge than tighter tolerances, but
still give well-resolved results. Tighter tolerances are required in some cases,
e.g. when evaluating sensitivity coefficients by finite difference.
2016-03-27 17:07:36 -04:00
Ray Speth
059e657fe4 [1D/Examples] Use new default values for Jacobian and time stepping settings
These values were selected for optimal performance across a large set of flames
in each configuration and using mechanisms of various sizes to give good average
performance. It should not generally be necessary for users to change these
values.
2016-03-27 17:07:36 -04:00
Ray Speth
6c466f65fa [1D] Use better guess for CounterflowDiffusionFlame initial position
The new formula is based on a set of test flames where the density ratio of the
fuel and oxidizer streams was varied by changing temperature and fuel
composition and the flame position was calculated as the centroid of the H2O
mass fraction profile.
2016-03-27 17:07:36 -04:00
Ray Speth
5e35ca5486 [1D] Allow replacing flow domain grid after creating Sim1D
This makes it possible to try solving on a different grid if the initial
solution attempt fails without needing to recreate the Sim1D object.
2016-03-27 17:07:36 -04:00
Ray Speth
77e3775c08 [1D] Provide reasonable initial grid for ImpingingJet 2016-03-27 17:07:36 -04:00
Ray Speth
85c3bf5ba6 [1D] Improve initial guess for FreeFlame velocity profile
If mdot is not specified, use the estimated mdot value when providing
the initial guess for the velocity.
2016-03-27 17:07:36 -04:00
Ray Speth
d2793c07a1 [1D/Python] Introduce 'auto' option to Sim1D.solve
Specifying this option allows the user to automatically execute the efficient
sequence of solving on the initial grid, enabling the energy equation, refining,
tightening tolerances, and enabling multicomponent transport in a single call to
Sim1D.solve.
2016-03-27 17:07:36 -04:00
Ray Speth
7d14677db2 [1D] Add tests for setting and getting tolerances 2016-03-27 17:07:36 -04:00
Ray Speth
f13e2715bb [1D] Add accessor functions for steady and relative tolerances
The existing functions for getting tolerances are difficult to use because
they return the tolerances based on the steady/unsteady mode of the solver
which the user shouldn't have to care about (and can't easily set).
2016-03-27 17:07:36 -04:00
Ray Speth
809223f670 [1D/Python] Fix range of components used when settings species tolerances
Boundaries do not necessarily have species variables, so setting species
tolerances will now raise an exception. This approach also avoids making
the assumption that the index of the first species equation is 4 in flow
domains.
2016-03-27 17:07:36 -04:00
Ray Speth
c799edff90 [Python/1D] Fix error in setting tolerances for specific components
Keyword arguments other than 'default' and 'Y' could not previously be
specified.
2016-03-27 17:07:36 -04:00
Ray Speth
011a64aaa2 [Cython] Add wrapper for SurfPhase::setCoveragesNoNorm 2016-03-27 17:07:36 -04:00
Ray Speth
8e81292558 [1D] Provide reasonable default grid for CounterflowDiffusionFlame 2016-03-27 17:07:36 -04:00
Ray Speth
87a8419380 [1D] Provide reasonable initial grid for BurnerFlame 2016-03-27 17:07:36 -04:00
Ray Speth
81074b2b4a [1D] Add function for restoring last successful steady-state solution 2016-03-27 17:07:36 -04:00
Ray Speth
29b704916c [1D] Set limit on number of timesteps without reaching steady state 2016-03-27 17:07:36 -04:00
Ray Speth
532e132788 [1D] Add accessors for solver statistics
Previously, this information was only available in the text output of the
'showStats' function.
2016-03-27 17:07:35 -04:00
Ray Speth
2d82c78c37 [1D] Retain negative species when retrieving solution state
This can be useful when debugging issues with the 1D solver.
2016-03-27 17:07:35 -04:00
Ray Speth
22537b9493 [1D] Use fixed point temperature closer to unburned gas temperature
This improves convergence in cases where the domain is too short to achieve full
oxidation and the maximum temperature within the domain is significantly lower
than the flame temperature computed from equilibrium.
2016-03-25 12:21:19 -04:00
Ray Speth
5a08cf043f [1D] Make FreeFlame mdot guess pressure dependent
This gives a better guess for both high and low pressure flames, since velocity
is roughly constant while mass flux can vary by orders of magnitude.
2016-03-25 12:21:19 -04:00
Ray Speth
832ee88692 [1D] Add ability to access last successful timestepped solution
This can be helpful when debugging 1D solver failures.
2016-03-25 12:21:19 -04:00
Ray Speth
f0a1e25cd9 [1D] Better initial grid for CounterflowPremixedFlame 2016-03-25 12:21:19 -04:00
Ray Speth
a9293c3168 [1D] Use nonzero initial guess for FreeFlame mass flow rate
This helps avoids timestepping errors in the first timestep
2016-03-25 12:21:19 -04:00
Ray Speth
de8348ecb2 [1D] Use a better default initial grid for FreeFlame
This initial grid is designed to work well with how the initial profile and
temperature fixed point are set. The only parameter that needs to be
user-specified is the width of the domain.
2016-03-25 12:21:19 -04:00
Ray Speth
7484827f2b [1D] Modify fixed temperature selection to keep grid more uniform
The previous method for setting the fixed temperature point could add a point
very close to an existing grid point, which could then make convergence on the
initial grid difficult.
2016-03-25 12:21:19 -04:00
Ray Speth
ac246a2f97 [Doc] Argument for Falloff parameters is 'params' not 'coeffs'
Resolves #327
2016-03-23 11:52:04 -04:00
imitrichev
a68cdecd94 [Test] Add test for specifying non-reactant orders in CTI files 2016-02-27 14:14:51 -05:00
imitrichev
7e71645efb [CTI/CTML] Add 'nonreactant_orders' option to allow non-reactant orders
The flag 'allow_nonreactant_orders' in class Reaction is set to 'true' when
using this option in cti/ctml.

Resolves #317
Resolves #321
2016-02-27 14:10:35 -05:00
Bryan W. Weber
58551b4813 [Doc] Cantera supports Python 3.5 2016-02-06 07:44:09 -05:00
Ray Speth
51e0c9158a [Python/1D] Generalize initial profile generation for diffusion flames
The calculation of the stoichiometric mixture composition now works for
arbitrary fuel and oxidizer mixtures, including multi-component fuels and fuels
containing oxygen. In addition, it is not necessary to specify any additional
arguments when generating the initial profile.
2016-02-02 15:03:11 -05:00
Ray Speth
e07b7b22dc [1D] Make diffusion flame profile generation work with lowercase 'o2' 2016-01-29 18:19:13 -05:00
Ray Speth
4379a076ab [Python] Print values which cause exceptions in the error message 2016-01-29 16:36:54 -05:00
Ivan Mitrichev
c3d154fd72 [ctml] fix molecular geometry (nonlin -> nonlinear)
Fix list of allowed values. Remove incorrect default value.

Resolves #316.
2016-01-29 16:30:40 -05:00
Bryan W. Weber
bff8d10609 [Matlab] Add interface to the new PureFluid property pairs 2016-01-25 13:14:50 -05:00
Bryan W. Weber
71e2101cdf [Test] Add tests for new PureFluid property pairs 2016-01-25 13:14:50 -05:00
Bryan W. Weber
4220692d0d Whitespace fixup in test_purefluid.py 2016-01-25 13:14:50 -05:00
Bryan W. Weber
49cb039536 [Cython] Add interface for new PureFluid property pairs 2016-01-25 13:07:34 -05:00
Bryan W. Weber
af81729504 [Cython] Add units to PureFluid property docstrings 2016-01-25 13:07:34 -05:00
Ray Speth
efd6d232c7 [Cython] Fix conversion of element-related strings to Python strings 2016-01-24 23:27:39 -05:00
Bryan W. Weber
c72f1b607a [Test] Add test for elements with multiple matches depending on old string splitting method 2016-01-22 18:18:43 -05:00
Bryan W. Weber
f95f118515 Make the name of an element in Python always lowercase 2016-01-22 18:18:43 -05:00