The check was being done at a stage where the token being checked could be just
a part of a key (if the key contained a colon), where this partial key could
correspond to another valid key.
Fixes#525
If Soret diffusion and mixture-averaged transport properties are
enabled, test that an exception is thrown. Also test that
multicomponent diffusion and Soret diffusion can be enabled/disabled
in either order. Also test that the automatic flame solver
correctly disables Soret diffusion.
The user can enable Soret (thermal) diffusion or multicomponent
transport in either order, but attempts to solve flame problems with
Soret enabled and the mixture-averaged transport approximation will
result in an error
Species names starting with the short form of input file section names
(e.g. 'tran') were incorrectly identified as indicating the start of that
section if they occurred at the start of a line.
Surface reactions were not being written to the CTI file if there were no
gas-phase reactions present.
Also update the count of reactions printed in the output summary to include
surface reactions.
For burner-stabilized flames under blowoff conditions (laminar flame speed less
than burner velocity), the solver can get stuck regridding indefinitely due to
the dependence of the calculated flame speed on the grid spacing (where the
calculated flame speed is artificially high when the grid is coarse).
To obtain solutions more quickly in this case, we check to see if the flame has
moved off of the burner surface (i.e. zero temperature gradient at the burner)
and if so, jump ahead to the non-reacting solution throughout the domain.
Fixes#386
If the domain is narrow with respect to the flame width, there can be
significant temperature gradients at the boundary, which lead to either
incorrect flame speeds or solver failures.
When the 'auto' option to FreeFlame.solve is specified, the solver will now
check the gradients at the ends of the domain after each steady-state solve and
increase the width if necessary.
Fixes#385
Switch to importing the lib3to2 as a check, which is platform agnostic
and doesn't depend on how 3to2 was installed. Also, take advantage of
the fact that the 3to2 converter recurses by default to avoid spawning
a bunch of subprocesses. Finally, don't depend on the location of the
3to2 script and just use the library directly to do the conversion.
Update and make more consistent the specification of Python package
building. Since SCons can be run by Python 3 now, we cannot assume that
the Python running SCons is Python 2. This changes a bunch of
assumptions in SConstruct about where things should be built or
installed. This commit addresses those assumptions by making the options
for Python 2 and Python 3 symmetric.
Import NonIdealShockTube example from Jupyter notebook
Clean up some of the code in the aforementioned file, adding better/more
descriptive commenting, add additional analysis to compare ideal gas and real
gas implementations of the n-dodecane mechanism, and add documentation for RK
constant calculation
These tests are expected to succeed with the VCS solver. Errors that occur in
these tests should be reported as such, rather than ending up with the unrelated
errors that would be expected from the "gibbs" solver.