Commit graph

6547 commits

Author SHA1 Message Date
Ray Speth
04f10972c8 [Thermo] Store sub-lattices as shared_ptr in LatticeSolidPhase
Also eliminates undefined behavior associated with unchecked cast to
LatticePhase*, since, at least in the Li7Si3_ls.xml example file, the
sub-lattices can be represented as other ThermoPhase types,
e.g. StoichSubstance.
2017-07-17 23:41:44 -04:00
Ray Speth
d744bd9fb8 [Thermo] Allow instantiation of LatticePhase without XML 2017-07-17 23:41:44 -04:00
Ray Speth
6bfd82e0be [Thermo] Remove unused "vacancy species" from LatticePhase 2017-07-17 23:41:44 -04:00
Ray Speth
f3ba29f0bc [Thermo] Fix default molar volume in LatticePhase
Molar volume is the inverse of molar "site" density
2017-07-17 23:41:44 -04:00
Ray Speth
37be501a68 [Test] Modify DebyeHuckel test to utilize PDSS_Water class 2017-07-17 23:41:44 -04:00
Ray Speth
a5b0bdf695 [Python] Make activity coefficients and activities accessible 2017-07-17 23:41:44 -04:00
Ray Speth
90d18dd337 Remove some unused, inaccessible variables 2017-07-17 23:41:44 -04:00
Ray Speth
9c084d5c84 Fix compiler warnings associated with AnyMap 2017-07-17 23:41:44 -04:00
Ray Speth
f69ef44600 [Thermo] Allow instantiation of MargulesVPSSTP without XML 2017-07-17 23:41:44 -04:00
Ray Speth
4818c87344 [Thermo] Remove unused members of MargulesVPSSTP 2017-07-17 23:41:44 -04:00
Ray Speth
44b24ca873 [ctml_writer] Fix handling of third body names containing parentheses
Replace the heuristic used to remove the third body terms from the
reactant and product lists to handle species names that include
parentheses.
2017-07-12 09:16:24 -04:00
Ray Speth
6d591b82ef [ck2cti] Fix reactions with pathologically named third bodies
This changes the order in which tokens are identified to be strictly
descending in length, so that third bodies are identified correctly
even when the third body expression could potentially be interpreted
as containing a standalone species name.
2017-07-12 09:16:24 -04:00
Richard West
55a8910686 A failing unit test for chemkin files with weird names in PDep rates.
Reactions of the type
 A (+B) <=> C (+B)
ought to work, as long as they are provided a pressure-dependent rate
expression. This commit adds three examples to the test file. The first
works OK, the second two cause problems.

(For what it's worth, this currently crashes the official chemkin.
 Or at least the parentheses do; I've not tested the plus.
 Ansys have created a defect record and say they will fix the issue.)
2017-07-12 09:16:24 -04:00
Tilman Bremer
b41038f84b stylevalue 'setlinewidth' is deprecated, replaced it together with the whole style argument by 'penwidth' 2017-07-11 18:59:03 -04:00
Bryan W. Weber
35ac1acfa8 Clarify Valve coefficient vs function 2017-07-11 18:26:55 -04:00
Bryan W. Weber
fec6c34ed8 Remove more references to importPhase in Matlab docs 2017-07-11 18:26:55 -04:00
Bryan W. Weber
05809bb027 Fix small typos in docs 2017-07-11 18:26:55 -04:00
Steven DeCaluwe
04be9888ed Update importKinetics to identify unspecified electrochemical reactions
Add test coverage for beta default value for electrochem reactions
2017-07-06 18:14:09 -04:00
Bryan W. Weber
6bf74d179b
Handle bad representations of geometry flags
If geometry flags are specified rather that can't be cast to integers,
intercept the ValueError raised by Python and raise a more sensible
exception.

Fixes #446
2017-06-14 17:39:52 -04:00
Bryan W. Weber
d920f2eb2c
Switch SourceForge links to point to GitHub
Fixes #442
2017-06-14 17:33:38 -04:00
Bryan W. Weber
c125878a40
Disable external SUNDIALS libraries when building the Matlab toolbox
Resolves #431
2017-06-14 09:08:39 -04:00
Ray Speth
c092484f4d [Matlab] Deprecate npflame_init in favor of CounterFlowDiffusionFlame 2017-06-10 16:44:50 -04:00
KyleLinevitchJr
43bd96b5ba [Matlab] Make counterflow diffusion flame simulation more general
The CounterFlowDiffusionFlame (CFDF) code is able to perform more general cases
of npflame_init for multiple species fuel and oxidizer streams. The
stoichiometric mixture fraction in the CFDF code uses the Bilger definition of
mixture fraction, using the conservation of elements C, H, and O. This method is
used in the python module, but not the MATLAB npflame_init function.

Also, the CFDF code uses the fuel stream density to calculate the fuel stream
velocity and the oxidizer stream density to calculate the oxidizer stream
velocity, where as the npflame_init code uses the fuel density for both velocity
calculations.

The elementMassFraction code is a MATLAB version of the python function:
elemental_mass_fraction, which is needed to run the CFDF code.

Update the diffflame.m example to use the more general CFDF function since the
input parameters are different than the npflame_init function. This example is
the same as the diffusion_flame.py sample in the Python module.
2017-06-10 16:44:50 -04:00
Ray Speth
94a4439bd4 [1D] Impose upper temperature bound based on thermo data
This fixes some platform-specific test failures when compiling in debug mode,
where estimated temperatures during the Newton iterations were too high,
resulting in non-finite reaction rates.
2017-05-16 13:55:40 -04:00
Ray Speth
22ecade329 [1D] Use named offsets for solution components 2017-05-16 13:55:40 -04:00
bangshiuh
1057d20731 [1D] Fix IonFlow docstrings and simplify testIonFlame 2017-05-16 13:55:40 -04:00
bangshiuh
6b6d758f23 [1D] Use named offset constants instead of raw numbers 2017-05-16 13:55:40 -04:00
bangshiuh
9dd0134e31 [1D] Add function for importing transport of electron 2017-05-16 13:55:40 -04:00
bangshiuh
e2f718c65b [1D/Python] Add IonFlow to Python interface, with example and test 2017-05-16 13:55:40 -04:00
bangshiuh
3b12c6d662 [1D] Introduction of IonFlow flame class
tested successfully with gri30
2017-05-16 13:55:40 -04:00
Ray Speth
3accd415e8 [Doc] Fix building Matlab Sphinx docs
Forgot to remove references to deprecated code that has been removed
2017-05-13 00:16:34 -04:00
Jeff Santner
2a38b0a765 Allow user to set flame location
A very small change that allows the user to set the initial location of the flame. The original hard-coded values for "locs" are retained as the default, but the user can now modify locs.
2017-05-12 22:57:29 -04:00
Ray Speth
52dbe8c007 [1D] Correct handling of boundary conditions when energy equation is disabled 2017-03-29 18:46:30 -04:00
Ray Speth
bfdc2b9e1d [Thermo] Allow instantiation of DebyeHuckel without XML 2017-03-25 23:42:46 -04:00
Ray Speth
974bbc7da4 Add electron to the built-in elements as an "isotope" 2017-03-25 23:42:46 -04:00
Ray Speth
56022e8989 Introduce class AnyMap 2017-03-25 23:42:46 -04:00
Ray Speth
2c3512c22a [Thermo] Fix PDSS_HKFT initialization when one property is not given
Calculating one of G0, H0, or S0 requires the parent ThermoPhase object, so this
calculation has to be delayed until m_tp has been set.
2017-03-02 19:53:23 -05:00
Steven DeCaluwe
51f419fbad Enabling charge-transfer/electrochemical surface reactions
The previous formulation will only consider a rection as electrochemical
if a beta value is supplied for that reaction *and* the reaction is an
'edge_reaction.'  This is problematic for two reasons: (1) many/most
charge-transfer reactions of interest occur at two-phase boundaries (see,
for example, Li-ion batteries and PEM fuel cells), not the three-phase-
boundary-like edges (which are most relevant for SOFCs).  (2) determining
whether a reaction is electrochemical or not should not rely at all upon
user input - the program itself should check to see whether charge is
transferred between phases, and the appropriate steps should be taken
during rate-of-progress calcuations.

This commit addresses the former issue.  Currently, if a charge-transfer
reaction is written as a surface_reaction, the code does not apply the
voltage correction to the forward rate.  By default, then, the entire
voltage correction is applied to the reverse reaction, which is the same
as setting beta = 0; not a good 'default' behavior (beta = 0.5 is a more
appropriate default).  With this change, surface reactions can now be
supplied with a beta value in cti or xml formats, and will be recognized
as a charge transfer reaction.

Longer term, it would be better to change the constructor routines such
that charge transfer is automatically detected and handled, rather than
relying upon user-specified flags.
2017-02-25 19:13:38 -05:00
decaluwe
f9d5f16b72 Adding test coverage for ThermoPhase class RedlichKwongMFTP 2017-02-25 11:36:31 -05:00
Ray Speth
95a52b2d34 [Test] Fix test compilation with G++ 4.6
G++ 4.6 doesn't support non-static data member initializers
2017-02-23 23:03:14 -05:00
Ray Speth
afafa34c06 [Thermo] Remove unimplemented options for m_formGC from DebyeHuckel 2017-02-22 22:18:40 -05:00
Ray Speth
a6ac446021 [Thermo] Allow instantiation of IdealMolalSoln without XML 2017-02-22 22:18:40 -05:00
Ray Speth
f8ef4a8b2b [Thermo] Allow instantiation of RedlichKisterVPSSTP without XML 2017-02-22 22:18:40 -05:00
Ray Speth
31d54c3b11 [Thermo] Allow instantiation of MaskellSolidSolnPhase without XML 2017-02-22 22:18:40 -05:00
Ray Speth
b033d44d3e [Thermo] Make PDSS_ConstVol configurable without XML 2017-02-22 22:18:40 -05:00
Ray Speth
2b73fe24ba Deprecate class MixedSolventElectrolyte
No existing tests, no known example input files, and not constructible via
ThermoFactory.

See #267.
2017-02-22 22:18:40 -05:00
Ray Speth
6154e1b4bd Remove unused list of thermo models from ThermoFactory 2017-02-22 22:18:40 -05:00
Ray Speth
5efea12959 [Thermo] Allow instantiation of IdealSolnGasVPSS without XML
This is also the first test of PDSS_IdealGas that doesn't use XML
2017-02-22 22:18:40 -05:00
Ray Speth
3ea2a6caf3 [Thermo] Remove special case for aqueous phases in VPStandardStateTP
The flag 'm_useTmpRefStateStorage' used when one of the species was PDSS_Water
reduced functionality and provided no performance benefit.
2017-02-22 22:18:40 -05:00
Ray Speth
461b63e462 [SCons] Add option to pass flags to GTest 2017-02-22 22:18:40 -05:00