-
Notifications
You must be signed in to change notification settings - Fork 15
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
Proposal: Add shock tube species profiles as an experiment type #60
Comments
To start, we don't need the |
This is excellent! A few thoughts:
OK, lots to think about here! I'm not sure if this is the best way to handle the |
I agree that each file should only contain a single dataset or series—it's ok if there are multiple ChemKED files from a single paper, for example. |
Regarding assumptions, I am also wary of putting something specific to a way of modeling (at least I assume that's what that is for) in a file that is meant to encode the measurement itself. That said, if this sort of information is similar to (e.g.) pre-ignition pressure rise in a shock tube, or compression volume trace or post-compression heat loss in an RCM, then I think it should be included. However, I don't think that is the case. |
Email from Mike Burke to Bryan:
|
Mike, Thanks for the quick response! Some further clarifications:
Values listed in the
This is an intentional design decision on our part. We felt there were two likely scenarios:
In general, our philosophy is "explicit is better than implicit"; therefore, we chose the second scenario. We feel that the danger of someone forgetting to add a required value and having it implicitly filled from the
I can see one important use case, which is specifying constant pressure vs. constant volume, as you mention. There are also some butanol experiments that use what Ron's group calls CRV (constrained reactor volume, I think) that they model as constant p-h rather than the typical constant u-v. Maybe this could be a part of the FYI, we do have a keyword for the pressure rise that's sometimes specified in the constant volume shock tube experiments.
We think the answer to this question is yes. Obviously there is some concern for typos, since there are a bunch of shared properties for the single experiment. I think the solution to this is to specify the common properties once and use a script to write multiple files. We're already sort of planning to have converter scripts from internal data formats to the standard format, so this would fit into that pretty neatly. Another option that we've (I've) considered is putting a binary file encoded as a string into the data file, something like
See here also: http://yaml.org/type/binary.html This is something that Kyle and I haven't come to consensus on yet though. This would obviously not be human-readable, but a large table is barely human-readable anyways. If we went this route, we would prefer a standard data container format such as HDF5.
If we can define how the relative uncertainty and absolute uncertainty combine, then that would be fine, I suppose, although I think my preference would be for the person writing the YAML file to just write out the absolute uncertainty for a single point in time.
Yes, I think the diameter should be a required property if the absorbance is specified, except the diameter (really, path length, right, since there can be multiple reflections?) should be specified in each data point, or in the common properties section and then referenced in each data point. |
I come at this from the perspective of writing a program that will eventually need to import data from a broad range of experiments. I like to break things down to experimental apparatus and observables with the computational pair being reactor/observables. With that in mind, I think it would be useful to keep the assumptions in the file because it provides explicit assumptions the experimentalists are making and would need to taken into account for modeling the experiments. This is also more versatile between experiment types as opposed to having to figure out what the assumptions going into a crv shock tube are. This doesn't necessarily have to be about how to set up the reactor though. An experimentalist could use this information to replicate and/or interpret the results. It's useful for multiple reasons. If assumptions is disliked, perhaps rename it to something like experimental details? Another issue I see is that there are multiple ways of inputting vector data in PyKED. I think that inherently this data is not human readable and the vector data format should be consolidated. I am partial to a standard format such as HDF5. This is already a compromise for people who need to convert their files from whatever they're using for acquisition or from text formats. I dislike the idea of having multiple YAML files because it makes it more difficult to share data and it will be cluttered. This also scales poorly with more measurements. I think that uncertainties could be added as additional columns within the data file and if they are not specified then the common-property would fill in. Related to the vector data issue: How would this format handle measurements with different scales and/or independent variables? Perhaps include a keyword to link Y to a given X or column? I see the value in including the initial reaction temperature and pressure, but I also think that it is important that the initial experimental conditions be added. This allows for recalculation of post shock conditions if thermochemistry is altered. Second, it's more representative of the uncertainties of the actual measurements as opposed to the ballpark estimates often put on T5 and P5. Finally, these properties are important for a number of other experiment types so it could be a parent class property. Currently, I need a shock tube file format that can differentiate between incident shock and reflected shock experiments, as well as, be able to save arbitrary vector observables from such experiments. I am compatible with incident shock shock and 0D reactors. For observables, I can take temperature, pressure, density gradient and various ways of writing out the species quantities (conc., mol frac, etc). However, looking forward I see the possibility of expanding that list to other reactor types and observables. I think that we could work together to merge my needs into chemKED/PyKED and make progress on a standard file format for the community. |
Hi @tsikes! Thanks for your input. Certainly valuable to get notes from people who actually want to use this thing! I just wanted to follow up on one comment, which is that we do allow specifying filenames of CSV files for time-history input, which was added in #104 although it is apparently a little broken, see #115. We do (if I recall correctly) allow users to specify which column contains which data. Unfortunately, as you can probably see from the commit history, this project is on a bit of a hiatus at the moment. We don't have any resources to push it forward, so if you're interested in taking that on, we'd love to have the help. |
Like @tsikes , I am also interested in developing a format for laser-schlieren data, but I think keeping the required fields to a minimum is best with the additional experimental descriptions being optional. Maybe I'm missing something, but I think for the reflected shock experiment types, simulations should be performed by specifying the post-shock conditions T5, P5) that are present at time zero and then the time history of the observable - either a species profile as in laser absorption or H-ARAS. I know this means the thermo data, gas refractivities, etc. as used in the calculation of the density gradient are baked-in and not necessarily determinable from the data format, but I think this is something that would be added as optional fields versus trying to provide the raw signals and process those in PyKED. I do also think that alternatively specifying the incident shock conditions (T2, P2) might be more convenient for someone just looking at the data, but that processing the data by doing the ideal shock calculations first is "better". |
PyKED/ChemKED version
v0.1.5
Code sample
Proposed by Mike Burke's group at Columbia. Mildly edited by Bryan for clarity.
The text was updated successfully, but these errors were encountered: