Skip to content

Commit

Permalink
Creating 10.21105.joss.06383.jats
Browse files Browse the repository at this point in the history
  • Loading branch information
editorialbot committed Apr 5, 2024
1 parent 215bd13 commit eb2b1b7
Showing 1 changed file with 355 additions and 0 deletions.
355 changes: 355 additions & 0 deletions joss.06383/10.21105.joss.06383.jats
Original file line number Diff line number Diff line change
@@ -0,0 +1,355 @@
<?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">6383</article-id>
<article-id pub-id-type="doi">10.21105/joss.06383</article-id>
<title-group>
<article-title><monospace>lbh15</monospace>: a Python package for
standard use and implementation of physical data of heavy liquid metals
used in nuclear reactors</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0003-0937-8897</contrib-id>
<name>
<surname>Ottino</surname>
<given-names>Gabriele</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
<xref ref-type="corresp" rid="cor-1"><sup>*</sup></xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Panico</surname>
<given-names>Daniele</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-7314-2227</contrib-id>
<name>
<surname>Tomatis</surname>
<given-names>Daniele</given-names>
</name>
<xref ref-type="aff" rid="aff-1"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Pantel</surname>
<given-names>Pierre-Alexandre</given-names>
</name>
<xref ref-type="aff" rid="aff-2"/>
</contrib>
<aff id="aff-1">
<institution-wrap>
<institution>newcleo Srl, via Giuseppe Galliano 27, 10129 Torino,
Italy</institution>
</institution-wrap>
</aff>
<aff id="aff-2">
<institution-wrap>
<institution>newcleo SA, 9 Rue des Cuirassiers, 69003 Lyon,
France</institution>
</institution-wrap>
</aff>
</contrib-group>
<author-notes>
<corresp id="cor-1">* E-mail: <email></email></corresp>
</author-notes>
<pub-date date-type="pub" publication-format="electronic" iso-8601-date="2023-01-08">
<day>8</day>
<month>1</month>
<year>2023</year>
</pub-date>
<volume>9</volume>
<issue>96</issue>
<fpage>6383</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>heavy liquid metal</kwd>
<kwd>lead-bismuth eutectic alloy</kwd>
<kwd>standardization</kwd>
<kwd>nuclear reactor cooling</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="summary">
<title>Summary</title>
<p><monospace>lbh15</monospace> is a Python package that provides
function correlations for the physical properties of the liquid metals
used as coolant in GEN-IV liquid metal fast reactors
(<italic>LMFR</italic>), such as those cooled by molten lead and
lead-bismuth eutectic alloy. The package implements the correlations
contained in the reference handbook edited by OECD/NEA
(<xref alt="Fazio, 2015" rid="ref-nea" ref-type="bibr">Fazio,
2015</xref>), also offering the possibility of adding new customized
properties with minimal effort for the user. The properties of the
liquid metal are uniquely defined by its thermodynamic state, namely
by the temperature and pressure values. Alternatively, the physical
properties can be used at the liquid metal object’s instantiation,
provided that the inverse of the corresponding correlation has at
least one root in the validity range (<italic>injective
function</italic> property).</p>
<p><monospace>lbh15</monospace> package is released under the
<italic>GNU Lesser General Public License v3.0</italic>.</p>
</sec>
<sec id="statement-of-need">
<title>Statement of Need</title>
<p>Thermal-hydraulic analysis is a key factor for the design and
safety studies of <italic>LMFR</italic>s, involving the implementation
and use of several numerical methods and physical data that are
employed in different computational tools. A standardization of the
methods is necessary to guarantee homogeneity, reproducibility, and
comparability of the numerical results. This standardization is
particularly important considering the growing community of users with
robust quality assurance needs. This is an essential point to ensure
effective and successful projects in both industrial and research
environments, especially for nuclear science and engineering.
Additionally, <italic>new</italic>cleo pursues efforts for data
standardization to develop new units of lead-cooled fast reactors
(<italic>LFR</italic>).</p>
<p>In this context, standard libraries providing the correlations of
physical properties for thermal-hydraulic computational tools are
needed, such as CFD, system, and sub-channel codes concerning heavy
liquid metals.</p>
</sec>
<sec id="implementation">
<title>Implementation</title>
<p><monospace>lbh15</monospace> package takes inspiration from the
<monospace>iapws</monospace>
(<xref alt="Romera, 2021" rid="ref-iapwscode" ref-type="bibr">Romera,
2021</xref>) Python package, which implements the water-related
<italic>IAPWS</italic> full standard
(<xref alt="International Association for the Properties of Water and Steam, 2018" rid="ref-iapws" ref-type="bibr">International
Association for the Properties of Water and Steam, 2018</xref>).
However, <monospace>lbh15</monospace> follows a different
implementation approach.</p>
<p>The efficiency and the effectiveness are assured by the
<italic>Object-Oriented</italic> design and the <italic>Dynamic
Loading</italic> approach, which have been applied throughout the
entire development process. <monospace>lbh15</monospace> relies on the
abstract liquid metal class; all classes describing the different
metals inherit from it. The abstract class does not directly implement
the property correlations, but it instead instantiates the property
objects and provides the property values. In other words, the abstract
liquid metal class acts as both <italic>factory</italic> of the
property objects and <italic>proxy</italic> of the property values
(<xref alt="Giridhar, 2016" rid="ref-pybook" ref-type="bibr">Giridhar,
2016</xref>). This allows the user to add new custom properties
without modifying the existing implementation of the liquid metal
class.</p>
</sec>
<sec id="use">
<title>Use</title>
<p>There are two main ways to use the package: either by instantiating
a liquid metal object to access all its properties, or by
instantiating an object for each specific property. The former
approach provides a single entry point to all the liquid metal
properties, which are evaluated at the specified thermodynamic state
after checking that such state is valid (temperature between the
melting and the boiling values, and positive pressure). In addition,
this approach allows users to select the default correlations of the
properties by means of the available class methods. The latter
approach is best suited to cases where only a few specific properties
are required for an individual thermodynamic state, since it offers
faster instantiation and evaluation of the correlation functions.</p>
</sec>
<sec id="implemented-properties">
<title>Implemented Properties</title>
<p>The properties implemented so far can be subdivided into two
groups:</p>
<list list-type="bullet">
<list-item>
<p><italic>thermo-physical</italic>: saturation vapor pressure,
surface tension, density, thermal expansion coefficient, speed of
sound, isentropic compressibility, specific heat capacity,
specific enthalpy, dynamic viscosity, electrical resistivity,
thermal conductivity, and Prandtl number;</p>
</list-item>
<list-item>
<p><italic>thermo-chemical</italic>: diffusivity and solubility of
oxygen and of the impurities in the liquid metals, oxygen partial
pressure, molar enthalpy, molar entropy, Gibbs free energy, and
oxygen concentration range assuring corrosion-protective oxide
layer on metallic structure.</p>
</list-item>
</list>
</sec>
<sec id="implementation-history">
<title>Implementation History</title>
<p>The release of version <italic>1.1.0</italic> of the package
<monospace>lbh15</monospace> was described by Panico &amp; Tomatis
(<xref alt="2023" rid="ref-nureth20" ref-type="bibr">2023</xref>).
This version implemented only the thermo-physical properties.</p>
<p>The current version <italic>2.1.0</italic> implements the
thermo-chemical properties and updates the documentation accordingly,
improving the overall understanding. Moreover, solutions have been
adopted to improve performance and usability of the code such as
enforcing vectorization over the whole implementation and using the
Horner scheme to evaluate polynomials
(<xref alt="Hildebrand, 1974" rid="ref-hornerbook" ref-type="bibr">Hildebrand,
1974</xref>). Great attention is paid to the code quality.
<italic>PEP8</italic> guidelines<xref ref-type="fn" rid="fn1">1</xref>
are ensured by
<italic>pycodestyle</italic><xref ref-type="fn" rid="fn2">2</xref>,
and the automatic static analysis has been performed by applying
<italic>pylint</italic><xref ref-type="fn" rid="fn3">3</xref>. The
documentation of the current version includes a tutorial focusing on a
volume of lead that is subjected to time-varying thermal loads, where
the oxygen concentration is controlled to fall in the range where the
protective oxide layer formation is assured
(<xref alt="Fazio, 2015" rid="ref-nea" ref-type="bibr">Fazio,
2015</xref>).</p>
<p>The implementation of irradiated liquid metals’ properties with new
tutorials is planned as future improvement.</p>
</sec>
<sec id="documentation">
<title>Documentation</title>
<p>The documentation of <monospace>lbh15</monospace> is generated by
<monospace>Sphinx</monospace> and published on
<monospace>lbh15</monospace> <italic>Github Pages</italic> at the
following address:</p>
<p><monospace>https://newcleo-dev-team.github.io/lbh15/index.html</monospace>.</p>
<p>It is composed of parts addressed separately to the developers and
to the users. The documentation contains examples for users, from
basic use to short tutorials for more advanced applications.</p>
</sec>
<sec id="authors-contribution-with-credit">
<title>Authors Contribution with
<ext-link ext-link-type="uri" xlink:href="https://credit.niso.org/">CRediT</ext-link></title>
<list list-type="bullet">
<list-item>
<p>Gabriele Ottino: Software, Validation, Writing - original
draft, Writing - review &amp; editing</p>
</list-item>
<list-item>
<p>Daniele Panico: Conceptualization, Software, Supervision,
Writing - review &amp; editing</p>
</list-item>
<list-item>
<p>Daniele Tomatis: Conceptualization, Project Administration,
Supervision, Writing - original draft, Writing - review &amp;
editing</p>
</list-item>
<list-item>
<p>Pierre-Alexandre Pantel: Writing - review &amp; editing</p>
</list-item>
</list>
</sec>
</body>
<back>
<ref-list>
<ref id="ref-nea">
<element-citation publication-type="book">
<person-group person-group-type="author">
<name><surname>Fazio</surname><given-names>C. et al.</given-names></name>
</person-group>
<source>Handbook on lead-bismuth eutectic alloy and lead properties, materials compatibility, thermal-hydraulics and technologies</source>
<publisher-name>OECD/Nuclear Energy Agency (NEA), Paris, France</publisher-name>
<year iso-8601-date="2015">2015</year>
<uri>https://www.oecd-ilibrary.org/content/publication/42dcd531-en</uri>
<pub-id pub-id-type="doi">10.1787/42dcd531-en</pub-id>
</element-citation>
</ref>
<ref id="ref-pybook">
<element-citation publication-type="book">
<person-group person-group-type="author">
<name><surname>Giridhar</surname><given-names>C.</given-names></name>
</person-group>
<source>Learning python design patterns</source>
<publisher-name>Packt Publishing</publisher-name>
<publisher-loc>Birmingham - Mumbai, 2nd edition</publisher-loc>
<year iso-8601-date="2016">2016</year>
</element-citation>
</ref>
<ref id="ref-nureth20">
<element-citation publication-type="paper-conference">
<person-group person-group-type="author">
<name><surname>Panico</surname><given-names>D.</given-names></name>
<name><surname>Tomatis</surname><given-names>D.</given-names></name>
</person-group>
<article-title>lbh15: A python package implementing lead, bismuth, and lead-bismuth eutectic thermophysical properties for fast reactor applications</article-title>
<source>Proceedings of 20th international topical meeting on nuclear reactor thermal hydraulics (NURETH-20), washington DC, USA</source>
<publisher-name>ANS</publisher-name>
<year iso-8601-date="2023">2023</year>
<pub-id pub-id-type="doi">10.13182/nureth20-40554</pub-id>
<fpage>1</fpage>
<lpage>12</lpage>
</element-citation>
</ref>
<ref id="ref-iapwscode">
<element-citation publication-type="software">
<person-group person-group-type="author">
<name><surname>Romera</surname><given-names>J. J. G.</given-names></name>
</person-group>
<article-title>Jjgomera/iapws:</article-title>
<publisher-name>Zenodo</publisher-name>
<year iso-8601-date="2021-05">2021</year><month>05</month>
<uri>https://doi.org/10.5281/zenodo.4744318</uri>
<pub-id pub-id-type="doi">10.5281/zenodo.4744318</pub-id>
</element-citation>
</ref>
<ref id="ref-iapws">
<element-citation publication-type="report">
<person-group person-group-type="author">
<string-name>International Association for the Properties of Water and Steam</string-name>
</person-group>
<article-title>Revised release on the IAPWS formulation 1995 for the thermodynamic properties of ordinary water substance for general and scientific use</article-title>
<year iso-8601-date="2018">2018</year>
</element-citation>
</ref>
<ref id="ref-hornerbook">
<element-citation publication-type="book">
<person-group person-group-type="author">
<name><surname>Hildebrand</surname><given-names>F. B.</given-names></name>
</person-group>
<source>Introduction to numerical analysis</source>
<publisher-name>McGraw-Hill</publisher-name>
<year iso-8601-date="1974">1974</year>
</element-citation>
</ref>
</ref-list>
<fn-group>
<fn id="fn1">
<label>1</label><p>https://www.python.org/dev/peps/pep-0008/ -
<italic>Style Guide for Python Code. PEP 8.</italic> - G. van
Rossum, B. Warsaw, and Coghlan - 2001</p>
</fn>
<fn id="fn2">
<label>2</label><p>https://pypi.org/project/pycodestyle/ -
pycodestyle 2.11.1</p>
</fn>
<fn id="fn3">
<label>3</label><p>https://pypi.org/project/pylint/ - Pylint
3.1.0</p>
</fn>
</fn-group>
</back>
</article>

0 comments on commit eb2b1b7

Please sign in to comment.