-
-
Notifications
You must be signed in to change notification settings - Fork 346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect temperature ranges in nasa_condensed data #1245
Comments
McBride's report from 1993 shows that the last column should be Molecular weight, page 9 here: https://shepherd.caltech.edu/EDL/PublicResources/sdt/refs/NASA-TM-4513.pdf (finally found the NASA NTRS page for it, https://ntrs.nasa.gov/citations/19940013151. Joe's site ranks higher in Google 😄 ) and that the implicit midpoint temperature is 1000 K. As usual, the first 7 coefficients are for the high-temperature range, but it appears that the "high-temperature range" is defined as ">= 1000 K" in the table on page 9, implying that if the minimum temperature in the first line is >1000 K, and the "low-temperature range" is all zeros, then the minimum temperature is as specified and not at 1000 K. It appears that report is also the original source of the data in the file, Table 2 starting on Page 10. |
I don't think Cantera's aim has ever been to convert the NASA format though, but to convert the Chemkin format, where these columns are specified to contain "Common temperature (if needed, else blank)". In the EDL "modified" file, there are a couple of entries where the max temperature is less than 1000 K, for example:
Here, the common/mid temperature is set the same as the max, and the high temperature coefficients are just zero. For cases where the min temperature is greater than 1000 K, the format seems to be to omit the mid temperature, with the low temp coefficients set to zero:
But I don't know of any explicit documentation specifying this format. In the McBride report, it seems that when the min temperature is greater than 1000 or the max temperature is less than 1000, the same coefficients are given for both temperature ranges. |
I think it's implied by the statement I quoted from the table on page 9
At least for the few examples I looked at in the iron series, the unused coefficients are set to zero.
Yeah, I agree with this statement. It's unfortunate that there appear to be minor discrepancies in the format, presumably as NASA continued to evolve it and make it more flexible while the CHEMKIN format froze the status quo when it came out. I'm not totally sure how to handle this. It hasn't been a problem up to now, at least in so far as no one has reported it. On the other hand, converting into garbage isn't the best behavior... If cases like this can be reliably detected (a single temperature region), they can be "upgraded" to a NASA9 which supports the single temperature region a little better by setting |
Looked a little farther today, one example of the duplicated coefficients is AlF3(a). So it seems both conventions are used. |
I think there are two issues to deal with here. One is to fix what's in
I don't think it's necessary to convert them to the 9-coefficient format; You can just duplicate the parameters for the two temperature ranges (as is done in some of the entries in the McBride database). |
Problem description
Some of the species in the
nasa_condensed.yaml
file specify temperature ranges for the NASA polynomials that are not monotonically increasing, leading to some unexpected results.Steps to reproduce
For example:
Consistent with such a definition, the species reports that both the min and max temperature for the phase is 1000 K. The first polynomial is used below the "middle" temperature, and the second polynomial is used above.
This error in the temperature ranges is a result of strange temperature ranges being specified in the
nasa_condensed.cti
file:However, the behavior is slightly different:
Based on files that were present in the repo at the time this file was originally introduced, it appears to have been generated from a CK-format input that specified the species as:
Besides the "NO_TMID" declaration, which I've never seen before, this file is identical to the one hosted by Caltech's Explosion Dynamics Laboratory at https://shepherd.caltech.edu/EDL/PublicResources/sdt/SDToolbox/cti/NASA7/nasa7.dat.
I don't know that there's ever been a version of
ck2cti
that can handle this format where the last value in the first line is the molecular weight rather than the mid temperature.ck2yaml
somewhat predictably writes this value as the mid temperature, e.g.:Interestingly, the EDL page also has another file, https://shepherd.caltech.edu/EDL/PublicResources/sdt/SDToolbox/cti/NASA7/nasa7mod.dat, where the mid temperature has been inserted for each species, except for those where there is only one valid temperature range, and the description specifically says that it is "useful for generating Cantera .cti files by converting Chemkin-style input files". In this file, the entry for
Fe(c)
looks like:Of course, this has several formatting errors that have to be corrected before
ck2yaml
is happy, at which point we end up with:which doesn't seem quite right, either.
System information
The text was updated successfully, but these errors were encountered: