Skip to content

Commit

Permalink
Creating 10.21105.joss.06855.jats
Browse files Browse the repository at this point in the history
  • Loading branch information
editorialbot committed Jul 11, 2024
1 parent e5941e6 commit dc62f7b
Showing 1 changed file with 301 additions and 0 deletions.
301 changes: 301 additions & 0 deletions joss.06855/paper.jats/10.21105.joss.06855.jats
Original file line number Diff line number Diff line change
@@ -0,0 +1,301 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN"
"JATS-publishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other">
<front>
<journal-meta>
<journal-id></journal-id>
<journal-title-group>
<journal-title>Journal of Open Source Software</journal-title>
<abbrev-journal-title>JOSS</abbrev-journal-title>
</journal-title-group>
<issn publication-format="electronic">2475-9066</issn>
<publisher>
<publisher-name>Open Journals</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">6855</article-id>
<article-id pub-id-type="doi">10.21105/joss.06855</article-id>
<title-group>
<article-title>rgfrosh: A Python package for calculating shock
conditions using real gas equations of state</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-8774-3090</contrib-id>
<name>
<surname>Kinney</surname>
<given-names>Cory</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Vasu</surname>
<given-names>Subith</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
</contrib>
<aff id="aff-1">
<institution-wrap>
<institution>Department of Mechanical and Aerospace Engineering,
University of Central Florida, Orlando, FL USA</institution>
</institution-wrap>
</aff>
</contrib-group>
<pub-date date-type="pub" publication-format="electronic" iso-8601-date="2024-04-29">
<day>29</day>
<month>4</month>
<year>2024</year>
</pub-date>
<volume>9</volume>
<issue>99</issue>
<fpage>6855</fpage>
<permissions>
<copyright-statement>Authors of papers retain copyright and release the
work under a Creative Commons Attribution 4.0 International License (CC
BY 4.0)</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>The article authors</copyright-holder>
<license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>Authors of papers retain copyright and release the work under
a Creative Commons Attribution 4.0 International License (CC BY
4.0)</license-p>
</license>
</permissions>
<kwd-group kwd-group-type="author">
<kwd>Python</kwd>
<kwd>shock tube</kwd>
<kwd>normal shock</kwd>
<kwd>frozen shock</kwd>
<kwd>ideal gas</kwd>
<kwd>real gas</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="summary">
<title>Summary</title>
<p><monospace>rgfrosh</monospace> solves the reflected shock equations
for an arbitrary equation of state, allowing for accurate calculation
of the temperature and pressure behind a reflected shock accounting
for real gas effects. Forward and inverse solvers are provided to
calculate experimental conditions based on measurements and to plan
experiments based on desired conditions, respectively.
<monospace>rgfrosh</monospace> is designed to be lightweight and
extensible, with a simple interface for users to utilize existing
thermodynamic libraries.</p>
</sec>
<sec id="statement-of-need">
<title>Statement of need</title>
<p>Combustion is a complex process that is influenced by numerous
factors, including temperature, pressure, and chemical composition.
Combustion modeling relies on chemical kinetics mechanisms that detail
how chemical reaction rates – involving many intermediate species –
vary with temperature and pressure. Experimental data is essential for
measuring reaction rates, refining mechanisms, and validating
predictions from these models for certain fuels and conditions.</p>
<p>Shock tubes are ideal experimental facilities for performing
fundamental research in combustion because they use shock waves to
impart step changes in temperature and pressure to a test gas mixture.
The gas behind the reflected shock is relatively stagnant, and the
system is considered adiabatic on the relevant time-scales; therefore,
the shock tube closely resembles a constant volume zero-dimensional
reactor, allowing for comparison between experimental measurements and
model predictions. Accurate calculation of the reflected shock
conditions is essential for correctly interpreting experimental
results. This is accomplished by solving the reflected shock equations
under an assumed equation of state using the known initial state of
the gas and the measured shock velocity.</p>
<p>Fundamental research into combustion at extremely high-pressure
conditions, such as for rocket engines or direct-fire supercritical
CO<sub>2</sub> power cycles
(<xref alt="Kinney, 2022" rid="ref-kinneyU003A2022" ref-type="bibr">Kinney,
2022</xref>), requires consideration of real gas effects in
experimental measurements and model simulations.</p>
<sec id="state-of-the-field">
<title>State of the field</title>
<p>A shock solver supporting real gas equations of state called
RGFROSH was previously developed in FORTRAN by Davidson &amp; Hanson
(<xref alt="1996" rid="ref-davidsonU003A1996" ref-type="bibr">1996</xref>);
however, there existed a need for a modernized open-source version,
as the original is not generally available nor would it be readily
compatible with modern tools. The extensive SDToolbox
(<xref alt="Browne et al., 2021" rid="ref-sdtoolbox" ref-type="bibr">Browne
et al., 2021</xref>) has functionality for computing the postshock
state for a chemically frozen shock; however, SDToolbox only
supports Cantera
(<xref alt="Goodwin et al., 2023" rid="ref-cantera" ref-type="bibr">Goodwin
et al., 2023</xref>) for thermodynamic properties and does not
provide a convenient interface to obtain the full solution for a
reflected shock for both the forward and inverse problems. Thus, the
present <monospace>rgfrosh</monospace> was developed in Python as a
solution that can utilize any modern thermodynamic library to solve
for the full reflected shock solution for an arbitrary equation of
state to enable further research into high-pressure combustion.</p>
</sec>
</sec>
<sec id="features">
<title>Features</title>
<p><monospace>rgfrosh</monospace> provides a simple interface for
solving the reflected shock equations, allowing the user to obtain the
full solution with a single function call. Two models are provided -
<monospace>IdealShock</monospace> for calorically perfect gases, and
<monospace>FrozenShock</monospace> for arbitrary equations of state.
The former is primarily included for comparison and validation
purposes, while the latter is the primary focus of the package as it
allows for accurate calculation of the reflected shock conditions for
real gases.</p>
<p>To remain as lightweight and extensible as possible,
<monospace>rgfrosh</monospace> relies on external packages for the key
thermodynamic functions required by the
<monospace>FrozenShock</monospace> solver. The required interface is
defined by the <monospace>ThermoInterface</monospace> protocol class,
which was written to provide native support for Cantera
(<xref alt="Goodwin et al., 2023" rid="ref-cantera" ref-type="bibr">Goodwin
et al., 2023</xref>). Additionally, an interface is provided to wrap
CoolProp
(<xref alt="Bell et al., 2014" rid="ref-coolprop" ref-type="bibr">Bell
et al., 2014</xref>), which itself has backend support for NIST
REFPROP
(<xref alt="Lemmon et al., 2002" rid="ref-refprop" ref-type="bibr">Lemmon
et al., 2002</xref>), for use with the solver. These two compatible
packages enable support for a wide range of equations of state which
should cover the majority of use cases; however, any user-defined
class that implements the simple
<monospace>ThermoInterface</monospace> protocol can be used with the
solver.</p>
<p>The primary use cases for <monospace>rgfrosh</monospace> are
experiment postprocessing and experiment planning. The
<monospace>solve_incident</monospace> and
<monospace>solve_reflected</monospace> methods implement the
Newton-Raphson solver detailed by Davidson &amp; Hanson
(<xref alt="1996" rid="ref-davidsonU003A1996" ref-type="bibr">1996</xref>)
for calculating the incident and reflected shock conditions,
respectively, from the initial conditions and the experimentally
measured shock velocity. The <monospace>solve_initial</monospace>
method implements the algorithm derived by the author (see
<xref alt="Kinney, 2022, A.3" rid="ref-kinneyU003A2022" ref-type="bibr">Kinney,
2022, A.3</xref>) for calculating the initial pressure and incident
shock velocity, temperature, and pressure from the initial temperature
and target reflected shock temperature and pressure for an
experiment.</p>
</sec>
<sec id="future-work">
<title>Future work</title>
<p>Future work includes the consideration of vibrational
non-equilibrium in the shock solvers. Current solver functionality
would be classified as equilibrium-equilibrium (EE) mode, referring to
the incident and reflected shock, respectively; frozen-equilibrium and
frozen-frozen modes are planned.</p>
</sec>
<sec id="acknowledgements">
<title>Acknowledgements</title>
<p>We would like to acknowledge D. F. Davidson and R. K. Hanson for
authoring the original software this work is based on, granting
permission to use the package name, and for providing validation data
for comparison. Additionally, the authors appreciate funding from the
University of Central Florida.</p>
</sec>
</body>
<back>
<ref-list>
<title></title>
<ref id="ref-kinneyU003A2022">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Kinney</surname><given-names>Cory</given-names></name>
</person-group>
<article-title>Extreme-pressure ignition studies of methane and natural gas with CO2 with applications in rockets and gas turbines</article-title>
<year iso-8601-date="2022">2022</year>
<uri>https://stars.library.ucf.edu/etd2020/1033</uri>
</element-citation>
</ref>
<ref id="ref-davidsonU003A1996">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Davidson</surname><given-names>David F</given-names></name>
<name><surname>Hanson</surname><given-names>Ronald K</given-names></name>
</person-group>
<article-title>Real gas corrections in shock tube studies at high pressures</article-title>
<source>Israel journal of chemistry</source>
<publisher-name>Wiley Online Library</publisher-name>
<year iso-8601-date="1996">1996</year>
<volume>36</volume>
<issue>3</issue>
<pub-id pub-id-type="doi">10.1002/ijch.199600044</pub-id>
<fpage>321</fpage>
<lpage>326</lpage>
</element-citation>
</ref>
<ref id="ref-sdtoolbox">
<element-citation>
<person-group person-group-type="author">
<name><surname>Browne</surname><given-names>S.</given-names></name>
<name><surname>Ziegler</surname><given-names>J.</given-names></name>
<name><surname>Bitter</surname><given-names>N.</given-names></name>
<name><surname>Schmidt</surname><given-names>B.</given-names></name>
<name><surname>Lawson</surname><given-names>J.</given-names></name>
<name><surname>Shepherd</surname><given-names>J. E.</given-names></name>
</person-group>
<article-title>SDToolbox - numerical tools for shock and detonation wave modeling</article-title>
<publisher-name>California Institute of Technology, Pasadena, CA</publisher-name>
<year iso-8601-date="2021">2021</year>
<uri>https://shepherd.caltech.edu/EDL/PublicResources/sdt/</uri>
</element-citation>
</ref>
<ref id="ref-cantera">
<element-citation>
<person-group person-group-type="author">
<name><surname>Goodwin</surname><given-names>David G.</given-names></name>
<name><surname>Moffat</surname><given-names>Harry K.</given-names></name>
<name><surname>Schoegl</surname><given-names>Ingmar</given-names></name>
<name><surname>Speth</surname><given-names>Raymond L.</given-names></name>
<name><surname>Weber</surname><given-names>Bryan W.</given-names></name>
</person-group>
<article-title>Cantera: An object-oriented software toolkit for chemical kinetics, thermodynamics, and transport processes</article-title>
<publisher-name>https://www.cantera.org</publisher-name>
<year iso-8601-date="2023">2023</year>
<uri>https://doi.org/10.1002/ijch.199600044</uri>
<pub-id pub-id-type="doi">10.5281/zenodo.8137090</pub-id>
</element-citation>
</ref>
<ref id="ref-coolprop">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Bell</surname><given-names>Ian H.</given-names></name>
<name><surname>Wronski</surname><given-names>Jorrit</given-names></name>
<name><surname>Quoilin</surname><given-names>Sylvain</given-names></name>
<name><surname>Lemort</surname><given-names>Vincent</given-names></name>
</person-group>
<article-title>Pure and pseudo-pure fluid thermophysical property evaluation and the open-source thermophysical property library CoolProp</article-title>
<source>Industrial &amp; Engineering Chemistry Research</source>
<year iso-8601-date="2014">2014</year>
<volume>53</volume>
<issue>6</issue>
<uri>http://pubs.acs.org/doi/abs/10.1021/ie4033999</uri>
<pub-id pub-id-type="doi">10.1021/ie4033999</pub-id>
<fpage>2498</fpage>
<lpage>2508</lpage>
</element-citation>
</ref>
<ref id="ref-refprop">
<element-citation publication-type="article-journal">
<person-group person-group-type="author">
<name><surname>Lemmon</surname><given-names>Eric W</given-names></name>
<name><surname>Huber</surname><given-names>Marcia L</given-names></name>
<name><surname>McLinden</surname><given-names>Mark O</given-names></name>
</person-group>
<article-title>NIST reference fluid thermodynamic and transport properties–REFPROP</article-title>
<source>NIST standard reference database</source>
<year iso-8601-date="2002">2002</year>
<volume>23</volume>
<issue>2002</issue>
<fpage>v7</fpage>
<lpage></lpage>
</element-citation>
</ref>
</ref-list>
</back>
</article>

0 comments on commit dc62f7b

Please sign in to comment.