2025-07-01 11:40:58 -04:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=11" / >
2025-11-28 09:46:00 -05:00
< meta name = "generator" content = "Doxygen 1.9.8" / >
2025-07-01 11:40:58 -04:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > GridFire: gridfire::utils Namespace Reference< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
2025-11-28 09:46:00 -05:00
< script type = "text/javascript" src = "resize.js" > < / script >
2025-07-01 11:40:58 -04:00
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "doxygen-awesome.css" rel = "stylesheet" type = "text/css" / >
< link href = "doxygen-awesome-sidebar-only.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
2025-11-28 09:46:00 -05:00
< div id = "projectname" > GridFire< span id = "projectnumber" >   v0.7.1_rc2< / span >
2025-07-01 11:40:58 -04:00
< / div >
< div id = "projectbrief" > General Purpose Nuclear Network< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2025-11-28 09:46:00 -05:00
<!-- Generated by Doxygen 1.9.8 -->
2025-07-01 11:40:58 -04:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
$(function() {
2025-11-28 09:46:00 -05:00
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
2025-07-01 11:40:58 -04:00
});
/* @license-end */
< / script >
< div id = "main-nav" > < / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699& dn=expat.txt MIT */
2025-11-28 09:46:00 -05:00
$(document).ready(function(){initNavTree('namespacegridfire_1_1utils.html',''); initResizable(); });
2025-07-01 11:40:58 -04:00
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" > < / div >
< div class = "SRStatus" id = "Loading" > Loading...< / div >
< div class = "SRStatus" id = "Searching" > Searching...< / div >
< div class = "SRStatus" id = "NoMatches" > No Matches< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "header" >
< div class = "summary" >
2025-11-04 14:04:26 -05:00
< a href = "#namespaces" > Namespaces< / a > |
2025-10-08 11:17:09 -04:00
< a href = "#nested-classes" > Classes< / a > |
2025-11-24 09:08:28 -05:00
< a href = "#concepts" > Concepts< / a > |
< a href = "#enum-members" > Enumerations< / a > |
< a href = "#func-members" > Functions< / a > |
< a href = "#var-members" > Variables< / a > < / div >
2025-07-01 11:40:58 -04:00
< div class = "headertitle" > < div class = "title" > gridfire::utils Namespace Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< table class = "memberdecls" >
2025-11-04 14:04:26 -05:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "namespaces" name = "namespaces" > < / a >
Namespaces< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:namespacegridfire_1_1utils_1_1hashing" id = "r_namespacegridfire_1_1utils_1_1hashing" > < td class = "memItemLeft" align = "right" valign = "top" > namespace   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils_1_1hashing.html" > hashing< / a > < / td > < / tr >
2025-11-04 14:04:26 -05:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
2025-10-08 11:17:09 -04:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "nested-classes" name = "nested-classes" > < / a >
Classes< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classgridfire_1_1utils_1_1Column.html" > Column< / a > < / td > < / tr >
2025-10-08 11:17:09 -04:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > < / td > < / tr >
2025-10-08 11:17:09 -04:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classgridfire_1_1utils_1_1Table.html" > Table< / a > < / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "classgridfire_1_1utils_1_1TableBase.html" > TableBase< / a > < / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "concepts" name = "concepts" > < / a >
Concepts< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:" > < td class = "memItemLeft" align = "right" valign = "top" > concept   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "conceptgridfire_1_1utils_1_1Streamable.html" > Streamable< / a > < / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "enum-members" name = "enum-members" > < / a >
Enumerations< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a7cea622c9311bfd0f0b9d7b6298ea04e" id = "r_a7cea622c9311bfd0f0b9d7b6298ea04e" > < td class = "memItemLeft" align = "right" valign = "top" > enum class   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > SUNDIALS_RET_CODE_TYPES< / a > { < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04eadd3b4add4b240136cb05dccdd9f74239" > CVODE< / a >
, < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04ea78689531838e490ef6bb41a3b5c43b7d" > KINSOL< / a >
2025-11-24 09:08:28 -05:00
}< / td > < / tr >
< tr class = "separator:a7cea622c9311bfd0f0b9d7b6298ea04e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-10-08 11:17:09 -04:00
< / table > < table class = "memberdecls" >
2025-07-01 11:40:58 -04:00
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "func-members" name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a0dc0b71ddae108a47887458c2f3f780e" id = "r_a0dc0b71ddae108a47887458c2f3f780e" > < td class = "memItemLeft" align = "right" valign = "top" > uint_fast32_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a0dc0b71ddae108a47887458c2f3f780e" > hash_atomic< / a > (const uint16_t a, const uint8_t z) noexcept< / td > < / tr >
2025-11-04 14:04:26 -05:00
< tr class = "memdesc:a0dc0b71ddae108a47887458c2f3f780e" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Generate a unique hash for an isotope given its mass number (A) and atomic number (Z). < br / > < / td > < / tr >
< tr class = "separator:a0dc0b71ddae108a47887458c2f3f780e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a011ac3184b4fcf21322868b1aaa4d2d1" id = "r_a011ac3184b4fcf21322868b1aaa4d2d1" > < td class = "memItemLeft" align = "right" valign = "top" > std::uint64_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a011ac3184b4fcf21322868b1aaa4d2d1" > hash_reaction< / a > (const < a class = "el" href = "classgridfire_1_1reaction_1_1Reaction.html" > reaction::Reaction< / a > & reaction) noexcept< / td > < / tr >
2025-11-04 14:04:26 -05:00
< tr class = "separator:a011ac3184b4fcf21322868b1aaa4d2d1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:af7145934af6bf925dc7c2d2d589f2f85" id = "r_af7145934af6bf925dc7c2d2d589f2f85" > < td class = "memTemplParams" colspan = "2" > template< typename T > < / td > < / tr >
< tr class = "memitem:af7145934af6bf925dc7c2d2d589f2f85" > < td class = "memTemplItemLeft" align = "right" valign = "top" > std::size_t  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#af7145934af6bf925dc7c2d2d589f2f85" > hash_combine< / a > (std::size_t seed, const T & v)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:af7145934af6bf925dc7c2d2d589f2f85" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a3d0646bcc1a6fd8df22ac0c758bfd5c4" id = "r_a3d0646bcc1a6fd8df22ac0c758bfd5c4" > < td class = "memItemLeft" align = "right" valign = "top" > std::string  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a3d0646bcc1a6fd8df22ac0c758bfd5c4" > formatNuclearTimescaleLogString< / a > (const < a class = "el" href = "classgridfire_1_1engine_1_1DynamicEngine.html" > engine::DynamicEngine< / a > & engine, const fourdst::composition::Composition & composition, double T9, double rho)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "memdesc:a3d0646bcc1a6fd8df22ac0c758bfd5c4" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Formats a map of nuclear species timescales into a human-readable string. < br / > < / td > < / tr >
< tr class = "separator:a3d0646bcc1a6fd8df22ac0c758bfd5c4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a334828d5d2b5e67560638ea9b3c031a1" id = "r_a334828d5d2b5e67560638ea9b3c031a1" > < td class = "memTemplParams" colspan = "2" > template< std::ranges::input_range Container, typename Elem = std::ranges::range_reference_t< Container> , typename Transform = std::identity, typename Pred = bool(*)(const std::ranges::range_value_t< Container> & )> < br / >
2025-11-24 09:08:28 -05:00
requires std::invocable< Transform, Elem> & & Streamable< std::invoke_result_t< Transform, Elem> > & & std::predicate< Pred, Elem> < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a334828d5d2b5e67560638ea9b3c031a1" > < td class = "memTemplItemLeft" align = "right" valign = "top" > static std::string  < / td > < td class = "memTemplItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a334828d5d2b5e67560638ea9b3c031a1" > iterable_to_delimited_string< / a > (const Container & container, const std::string_view delimiter=" , " , Transform transform={}, Pred pred=[](const auto & ){ return true;}) noexcept< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:a334828d5d2b5e67560638ea9b3c031a1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:ad72bcf145a772cf83cec4fb3841e8dd4" id = "r_ad72bcf145a772cf83cec4fb3841e8dd4" > < td class = "memItemLeft" align = "right" valign = "top" > const std::unordered_map< int, std::string > &   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#ad72bcf145a772cf83cec4fb3841e8dd4" > sundials_retcode_map< / a > (const < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > SUNDIALS_RET_CODE_TYPES< / a > type)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:ad72bcf145a772cf83cec4fb3841e8dd4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:ab9d0cfc158090ca9ed09646d407b04f2" id = "r_ab9d0cfc158090ca9ed09646d407b04f2" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#ab9d0cfc158090ca9ed09646d407b04f2" > check_cvode_flag< / a > (const int flag, const std::string & func_name)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:ab9d0cfc158090ca9ed09646d407b04f2" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:adfbe36ddda15b6e206d9726236d543ab" id = "r_adfbe36ddda15b6e206d9726236d543ab" > < td class = "memItemLeft" align = "right" valign = "top" > N_Vector  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#adfbe36ddda15b6e206d9726236d543ab" > init_sun_vector< / a > (uint64_t size, SUNContext sun_ctx)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:adfbe36ddda15b6e206d9726236d543ab" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a71be80c2e36e5436cddcad795d61a0d7" id = "r_a71be80c2e36e5436cddcad795d61a0d7" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a71be80c2e36e5436cddcad795d61a0d7" > check_sundials_flag< / a > (const int flag, const std::string & func_name, const < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > SUNDIALS_RET_CODE_TYPES< / a > type)< / td > < / tr >
2025-11-25 14:31:59 -05:00
< tr class = "separator:a71be80c2e36e5436cddcad795d61a0d7" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:ab9afa50593a895415d9314ad853806f3" id = "r_ab9afa50593a895415d9314ad853806f3" > < td class = "memItemLeft" align = "right" valign = "top" > size_t  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#ab9afa50593a895415d9314ad853806f3" > visual_width< / a > (const std::string & s)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:ab9afa50593a895415d9314ad853806f3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a6451ba6762273b91a8281043cfaa5d2a" id = "r_a6451ba6762273b91a8281043cfaa5d2a" > < td class = "memItemLeft" align = "right" valign = "top" > std::string  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a6451ba6762273b91a8281043cfaa5d2a" > format_table< / a > (const std::string & tableName, const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > & columns)< / td > < / tr >
2025-10-08 11:17:09 -04:00
< tr class = "separator:a6451ba6762273b91a8281043cfaa5d2a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a2eed085058abdb9d7fbbdb9647b98323" id = "r_a2eed085058abdb9d7fbbdb9647b98323" > < td class = "memItemLeft" align = "right" valign = "top" > std::string  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a2eed085058abdb9d7fbbdb9647b98323" > format_table< / a > (const < a class = "el" href = "classgridfire_1_1utils_1_1TableBase.html" > TableBase< / a > & table)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:a2eed085058abdb9d7fbbdb9647b98323" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:acbaa76c5f4021940995e274a86c2171a" id = "r_acbaa76c5f4021940995e274a86c2171a" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#acbaa76c5f4021940995e274a86c2171a" > print_table< / a > (const std::string & tableName, const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > & columns)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:acbaa76c5f4021940995e274a86c2171a" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:afd3ba7a23f2affd403d5da4e813874d1" id = "r_afd3ba7a23f2affd403d5da4e813874d1" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#afd3ba7a23f2affd403d5da4e813874d1" > print_table< / a > (const < a class = "el" href = "classgridfire_1_1utils_1_1TableBase.html" > TableBase< / a > & table)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:afd3ba7a23f2affd403d5da4e813874d1" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a6c58048a3127e6b87886971385a7fe06" id = "r_a6c58048a3127e6b87886971385a7fe06" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a6c58048a3127e6b87886971385a7fe06" > to_csv< / a > (const std::string & filename, const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > & columns)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:a6c58048a3127e6b87886971385a7fe06" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:af9f382b1b40867c1e70f062d7fba90cd" id = "r_af9f382b1b40867c1e70f062d7fba90cd" > < td class = "memItemLeft" align = "right" valign = "top" > nlohmann::json  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#af9f382b1b40867c1e70f062d7fba90cd" > to_json< / a > (const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > & columns)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:af9f382b1b40867c1e70f062d7fba90cd" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:adf613180bab406ef2bfbb9b79397148e" id = "r_adf613180bab406ef2bfbb9b79397148e" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#adf613180bab406ef2bfbb9b79397148e" > to_json_file< / a > (const std::string & filename, const std::vector< std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > > & tables, const std::vector< std::string > & tableNames)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:adf613180bab406ef2bfbb9b79397148e" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table > < table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a id = "var-members" name = "var-members" > < / a >
Variables< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a06d386929b2274e2593b97868be2ac51" id = "r_a06d386929b2274e2593b97868be2ac51" > < td class = "memItemLeft" align = "right" valign = "top" > static std::unordered_map< int, std::string >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a06d386929b2274e2593b97868be2ac51" > cvode_ret_code_map< / a > < / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:a06d386929b2274e2593b97868be2ac51" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a96fc2701cfd6cb8172282e9999fe4b34" id = "r_a96fc2701cfd6cb8172282e9999fe4b34" > < td class = "memItemLeft" align = "right" valign = "top" > static std::unordered_map< int, std::string >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1utils.html#a96fc2701cfd6cb8172282e9999fe4b34" > kinsol_ret_code_map< / a > < / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "separator:a96fc2701cfd6cb8172282e9999fe4b34" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-07-01 11:40:58 -04:00
< / table >
2025-11-24 09:08:28 -05:00
< h2 class = "groupheader" > Enumeration Type Documentation< / h2 >
< a id = "a7cea622c9311bfd0f0b9d7b6298ea04e" name = "a7cea622c9311bfd0f0b9d7b6298ea04e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a7cea622c9311bfd0f0b9d7b6298ea04e" > ◆   < / a > < / span > SUNDIALS_RET_CODE_TYPES< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-11-28 09:46:00 -05:00
< td class = "memname" > enum class < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > gridfire::utils::SUNDIALS_RET_CODE_TYPES< / a > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > strong< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< table class = "fieldtable" >
< tr > < th colspan = "2" > Enumerator< / th > < / tr > < tr > < td class = "fieldname" > < a id = "a7cea622c9311bfd0f0b9d7b6298ea04eadd3b4add4b240136cb05dccdd9f74239" name = "a7cea622c9311bfd0f0b9d7b6298ea04eadd3b4add4b240136cb05dccdd9f74239" > < / a > CVODE  < / td > < td class = "fielddoc" > < / td > < / tr >
< tr > < td class = "fieldname" > < a id = "a7cea622c9311bfd0f0b9d7b6298ea04ea78689531838e490ef6bb41a3b5c43b7d" name = "a7cea622c9311bfd0f0b9d7b6298ea04ea78689531838e490ef6bb41a3b5c43b7d" > < / a > KINSOL  < / td > < td class = "fielddoc" > < / td > < / tr >
< / table >
< / div >
< / div >
2025-07-01 11:40:58 -04:00
< h2 class = "groupheader" > Function Documentation< / h2 >
2025-11-24 09:08:28 -05:00
< a id = "ab9d0cfc158090ca9ed09646d407b04f2" name = "ab9d0cfc158090ca9ed09646d407b04f2" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab9d0cfc158090ca9ed09646d407b04f2" > ◆   < / a > < / span > check_cvode_flag()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void gridfire::utils::check_cvode_flag < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const int  < / td >
< td class = "paramname" > < em > flag< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > func_name< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-25 14:31:59 -05:00
< / div >
< / div >
< a id = "a71be80c2e36e5436cddcad795d61a0d7" name = "a71be80c2e36e5436cddcad795d61a0d7" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a71be80c2e36e5436cddcad795d61a0d7" > ◆   < / a > < / span > check_sundials_flag()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void gridfire::utils::check_sundials_flag < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const int  < / td >
< td class = "paramname" > < em > flag< / em > , < / td >
2025-11-25 14:31:59 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > func_name< / em > , < / td >
2025-11-25 14:31:59 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > SUNDIALS_RET_CODE_TYPES< / a >   < / td >
< td class = "paramname" > < em > type< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-25 14:31:59 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-25 14:31:59 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-24 09:08:28 -05:00
< / div >
< / div >
2025-10-08 11:17:09 -04:00
< a id = "a6451ba6762273b91a8281043cfaa5d2a" name = "a6451ba6762273b91a8281043cfaa5d2a" > < / a >
2025-11-24 09:08:28 -05:00
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6451ba6762273b91a8281043cfaa5d2a" > ◆   < / a > < / span > format_table() < span class = "overload" > [1/2]< / span > < / h2 >
2025-10-08 11:17:09 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > std::string gridfire::utils::format_table < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > tableName< / em > , < / td >
2025-10-08 11:17:09 -04:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > &   < / td >
< td class = "paramname" > < em > columns< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-10-08 11:17:09 -04:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-10-08 11:17:09 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2025-11-24 09:08:28 -05:00
< a id = "a2eed085058abdb9d7fbbdb9647b98323" name = "a2eed085058abdb9d7fbbdb9647b98323" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a2eed085058abdb9d7fbbdb9647b98323" > ◆   < / a > < / span > format_table() < span class = "overload" > [2/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > std::string gridfire::utils::format_table < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "classgridfire_1_1utils_1_1TableBase.html" > TableBase< / a > &   < / td >
< td class = "paramname" > < em > table< / em > < / td > < td > )< / td >
2025-11-24 09:08:28 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a3d0646bcc1a6fd8df22ac0c758bfd5c4" name = "a3d0646bcc1a6fd8df22ac0c758bfd5c4" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a3d0646bcc1a6fd8df22ac0c758bfd5c4" > ◆   < / a > < / span > formatNuclearTimescaleLogString()< / h2 >
2025-07-01 11:40:58 -04:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > std::string gridfire::utils::formatNuclearTimescaleLogString < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "classgridfire_1_1engine_1_1DynamicEngine.html" > engine::DynamicEngine< / a > &   < / td >
< td class = "paramname" > < em > engine< / em > , < / td >
2025-07-01 11:40:58 -04:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const fourdst::composition::Composition &   < / td >
< td class = "paramname" > < em > composition< / em > , < / td >
2025-07-01 11:40:58 -04:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > double  < / td >
< td class = "paramname" > < em > T9< / em > , < / td >
2025-07-01 11:40:58 -04:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > double  < / td >
< td class = "paramname" > < em > rho< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-07-01 11:40:58 -04:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-07-01 15:06:22 -04:00
< p > Formats a map of nuclear species timescales into a human-readable string. < / p >
< p > This function takes a reaction network engine and the current plasma conditions to calculate the characteristic timescales for each species. It then formats this information into a neatly aligned ASCII table, which is suitable for logging or printing to the console.< / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
2025-11-24 09:08:28 -05:00
< tr > < td class = "paramname" > engine< / td > < td > A constant reference to a < code > DynamicEngine< / code > object, used to calculate the species timescales. < / td > < / tr >
2025-11-04 14:04:26 -05:00
< tr > < td class = "paramname" > composition< / td > < td > The current composition of the plasma < / td > < / tr >
2025-07-01 15:06:22 -04:00
< tr > < td class = "paramname" > T9< / td > < td > The temperature in units of 10^9 K. < / td > < / tr >
< tr > < td class = "paramname" > rho< / td > < td > The plasma density in g/cm^3. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > A std::string containing the formatted table of species and their timescales.< / dd > < / dl >
< p > < b > Pre-conditions< / b > < / p > < ul >
< li > The < code > engine< / code > must be in a valid state.< / li >
< li > The size of the < code > Y< / code > vector must be consistent with the number of species expected by the < code > engine< / code > .< / li >
< / ul >
< p > < b > Algorithm< / b > < / p > < ol type = "1" >
< li > Calls the < code > getSpeciesTimescales< / code > method on the provided < code > engine< / code > to get the timescale for each species under the given conditions.< / li >
< li > Determines the maximum length of the species names to dynamically set the width of the "Species" column for proper alignment.< / li >
< li > Uses a < code > std::ostringstream< / code > to build the output string.< / li >
< li > Constructs a header for the table with titles "Species" and "Timescale (s)".< / li >
< li > Iterates through the map of timescales, adding a row to the table for each species.< / li >
< li > Timescales are formatted in scientific notation with 3 digits of precision.< / li >
< li > Special handling is included to print "inf" for infinite timescales.< / li >
< li > The final string, including header and footer lines, is returned.< / li >
< / ol >
< p > < b > Usage< / b > < / p > < div class = "fragment" > < div class = "line" > < span class = "comment" > // Assume ' my_engine' is a valid DynamicEngine object and Y, T9, rho are initialized.< / span > < / div >
2025-11-28 09:46:00 -05:00
< div class = "line" > std::string log_output = < a class = "code hl_function" href = "namespacegridfire_1_1utils.html#a3d0646bcc1a6fd8df22ac0c758bfd5c4" > gridfire::utils::formatNuclearTimescaleLogString< / a > (my_engine, Y, T9, rho);< / div >
2025-07-01 15:06:22 -04:00
< div class = "line" > std::cout < < log_output;< / div >
< div class = "line" > < / div >
< div class = "line" > < span class = "comment" > // Example Output:< / span > < / div >
< div class = "line" > < span class = "comment" > // == Timescales (s) ==< / span > < / div >
< div class = "line" > < span class = "comment" > // Species Timescale (s)< / span > < / div >
< div class = "line" > < span class = "comment" > // ==========================< / span > < / div >
< div class = "line" > < span class = "comment" > // h1 1.234e+05< / span > < / div >
< div class = "line" > < span class = "comment" > // he4 inf< / span > < / div >
< div class = "line" > < span class = "comment" > // c12 8.765e-02< / span > < / div >
< div class = "line" > < span class = "comment" > // ==========================< / span > < / div >
2025-11-28 09:46:00 -05:00
< div class = "ttc" id = "anamespacegridfire_1_1utils_html_a3d0646bcc1a6fd8df22ac0c758bfd5c4" > < div class = "ttname" > < a href = "namespacegridfire_1_1utils.html#a3d0646bcc1a6fd8df22ac0c758bfd5c4" > gridfire::utils::formatNuclearTimescaleLogString< / a > < / div > < div class = "ttdeci" > std::string formatNuclearTimescaleLogString(const engine::DynamicEngine & engine, const fourdst::composition::Composition & composition, double T9, double rho)< / div > < div class = "ttdoc" > Formats a map of nuclear species timescales into a human-readable string.< / div > < div class = "ttdef" > < b > Definition< / b > logging.cpp:11< / div > < / div >
2025-07-01 15:06:22 -04:00
< / div > <!-- fragment -->
2025-11-04 14:04:26 -05:00
< / div >
< / div >
< a id = "a0dc0b71ddae108a47887458c2f3f780e" name = "a0dc0b71ddae108a47887458c2f3f780e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a0dc0b71ddae108a47887458c2f3f780e" > ◆   < / a > < / span > hash_atomic()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > uint_fast32_t gridfire::utils::hash_atomic < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const uint16_t  < / td >
< td class = "paramname" > < em > a< / em > , < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const uint8_t  < / td >
< td class = "paramname" > < em > z< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > noexcept< / span > < / span > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Generate a unique hash for an isotope given its mass number (A) and atomic number (Z). < / p >
< p > This function combines the mass number and atomic number into a single 32-bit integer by shifting the mass number 8 bits to the left and OR'ing it with the atomic number. This ensures a unique representation for each isotope within physically possible ranges. < / p > < dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > a< / td > < td > The mass number (A) of the isotope. < / td > < / tr >
< tr > < td class = "paramname" > z< / td > < td > The atomic number (Z) of the isotope. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > A unique 32-bit hash representing the isotope. This is computed as (A < < 8) | Z into an uint32_t. < / dd > < / dl >
2025-11-24 09:08:28 -05:00
< / div >
< / div >
< a id = "af7145934af6bf925dc7c2d2d589f2f85" name = "af7145934af6bf925dc7c2d2d589f2f85" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af7145934af6bf925dc7c2d2d589f2f85" > ◆   < / a > < / span > hash_combine()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
2025-11-28 09:46:00 -05:00
template< typename T > < / div >
2025-11-24 09:08:28 -05:00
< table class = "memname" >
< tr >
< td class = "memname" > std::size_t gridfire::utils::hash_combine < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > std::size_t  < / td >
< td class = "paramname" > < em > seed< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const T &   < / td >
< td class = "paramname" > < em > v< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-04 14:04:26 -05:00
< / div >
< / div >
< a id = "a011ac3184b4fcf21322868b1aaa4d2d1" name = "a011ac3184b4fcf21322868b1aaa4d2d1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a011ac3184b4fcf21322868b1aaa4d2d1" > ◆   < / a > < / span > hash_reaction()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > std::uint64_t gridfire::utils::hash_reaction < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "classgridfire_1_1reaction_1_1Reaction.html" > reaction::Reaction< / a > &   < / td >
< td class = "paramname" > < em > reaction< / em > < / td > < td > )< / td >
2025-11-04 14:04:26 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > noexcept< / span > < / span > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2025-11-24 09:08:28 -05:00
< a id = "adfbe36ddda15b6e206d9726236d543ab" name = "adfbe36ddda15b6e206d9726236d543ab" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#adfbe36ddda15b6e206d9726236d543ab" > ◆   < / a > < / span > init_sun_vector()< / h2 >
2025-11-04 14:04:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-11-24 09:08:28 -05:00
< td class = "memname" > N_Vector gridfire::utils::init_sun_vector < / td >
2025-11-04 14:04:26 -05:00
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > uint64_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > SUNContext  < / td >
< td class = "paramname" > < em > sun_ctx< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a334828d5d2b5e67560638ea9b3c031a1" name = "a334828d5d2b5e67560638ea9b3c031a1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a334828d5d2b5e67560638ea9b3c031a1" > ◆   < / a > < / span > iterable_to_delimited_string()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
2025-11-28 09:46:00 -05:00
template< std::ranges::input_range Container, typename Elem = std::ranges::range_reference_t< Container> , typename Transform = std::identity, typename Pred = bool(*)(const std::ranges::range_value_t< Container> & )> < br / >
2025-11-24 09:08:28 -05:00
requires std::invocable< Transform, Elem> & & Streamable< std::invoke_result_t< Transform, Elem> > & & std::predicate< Pred, Elem> < / div >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > static std::string gridfire::utils::iterable_to_delimited_string < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const Container &   < / td >
< td class = "paramname" > < em > container< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string_view  < / td >
< td class = "paramname" > < em > delimiter< / em > = < code > " ,  " < / code > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > Transform  < / td >
< td class = "paramname" > < em > transform< / em > = < code > {}< / code > , < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > Pred  < / td >
< td class = "paramname" > < em > pred< / em > = < code > [](const  auto& ){  return  true;  }< / code >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > static< / span > < span class = "mlabel" > noexcept< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "acbaa76c5f4021940995e274a86c2171a" name = "acbaa76c5f4021940995e274a86c2171a" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#acbaa76c5f4021940995e274a86c2171a" > ◆   < / a > < / span > print_table() < span class = "overload" > [1/2]< / span > < / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void gridfire::utils::print_table < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > tableName< / em > , < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > &   < / td >
< td class = "paramname" > < em > columns< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
2025-11-24 09:08:28 -05:00
< a id = "afd3ba7a23f2affd403d5da4e813874d1" name = "afd3ba7a23f2affd403d5da4e813874d1" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#afd3ba7a23f2affd403d5da4e813874d1" > ◆   < / a > < / span > print_table() < span class = "overload" > [2/2]< / span > < / h2 >
2025-11-04 14:04:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-11-24 09:08:28 -05:00
< td class = "memname" > void gridfire::utils::print_table < / td >
2025-11-04 14:04:26 -05:00
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "classgridfire_1_1utils_1_1TableBase.html" > TableBase< / a > &   < / td >
< td class = "paramname" > < em > table< / em > < / td > < td > )< / td >
2025-11-24 09:08:28 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ad72bcf145a772cf83cec4fb3841e8dd4" name = "ad72bcf145a772cf83cec4fb3841e8dd4" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ad72bcf145a772cf83cec4fb3841e8dd4" > ◆   < / a > < / span > sundials_retcode_map()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > const std::unordered_map< int, std::string > & gridfire::utils::sundials_retcode_map < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const < a class = "el" href = "namespacegridfire_1_1utils.html#a7cea622c9311bfd0f0b9d7b6298ea04e" > SUNDIALS_RET_CODE_TYPES< / a >   < / td >
< td class = "paramname" > < em > type< / em > < / td > < td > )< / td >
2025-11-24 09:08:28 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a6c58048a3127e6b87886971385a7fe06" name = "a6c58048a3127e6b87886971385a7fe06" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a6c58048a3127e6b87886971385a7fe06" > ◆   < / a > < / span > to_csv()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void gridfire::utils::to_csv < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > filename< / em > , < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > &   < / td >
< td class = "paramname" > < em > columns< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-24 09:08:28 -05:00
< / div >
< / div >
< a id = "af9f382b1b40867c1e70f062d7fba90cd" name = "af9f382b1b40867c1e70f062d7fba90cd" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#af9f382b1b40867c1e70f062d7fba90cd" > ◆   < / a > < / span > to_json()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > nlohmann::json gridfire::utils::to_json < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > &   < / td >
< td class = "paramname" > < em > columns< / em > < / td > < td > )< / td >
2025-11-24 09:08:28 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "adf613180bab406ef2bfbb9b79397148e" name = "adf613180bab406ef2bfbb9b79397148e" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#adf613180bab406ef2bfbb9b79397148e" > ◆   < / a > < / span > to_json_file()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > void gridfire::utils::to_json_file < / td >
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > filename< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::vector< std::unique_ptr< < a class = "el" href = "classgridfire_1_1utils_1_1ColumnBase.html" > ColumnBase< / a > > > > &   < / td >
< td class = "paramname" > < em > tables< / em > , < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::vector< std::string > &   < / td >
< td class = "paramname" > < em > tableNames< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-04 14:04:26 -05:00
< / div >
< / div >
2025-11-24 09:08:28 -05:00
< a id = "ab9afa50593a895415d9314ad853806f3" name = "ab9afa50593a895415d9314ad853806f3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ab9afa50593a895415d9314ad853806f3" > ◆   < / a > < / span > visual_width()< / h2 >
2025-11-04 14:04:26 -05:00
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
2025-11-24 09:08:28 -05:00
< td class = "memname" > size_t gridfire::utils::visual_width < / td >
2025-11-04 14:04:26 -05:00
< td > (< / td >
2025-11-28 09:46:00 -05:00
< td class = "paramtype" > const std::string &   < / td >
< td class = "paramname" > < em > s< / em > < / td > < td > )< / td >
2025-11-04 14:04:26 -05:00
< td > < / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < / span > < / td >
2025-11-04 14:04:26 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
2025-11-24 09:08:28 -05:00
< / div >
< / div >
< h2 class = "groupheader" > Variable Documentation< / h2 >
< a id = "a06d386929b2274e2593b97868be2ac51" name = "a06d386929b2274e2593b97868be2ac51" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a06d386929b2274e2593b97868be2ac51" > ◆   < / a > < / span > cvode_ret_code_map< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > std::unordered_map< int, std::string> gridfire::utils::cvode_ret_code_map< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "a96fc2701cfd6cb8172282e9999fe4b34" name = "a96fc2701cfd6cb8172282e9999fe4b34" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#a96fc2701cfd6cb8172282e9999fe4b34" > ◆   < / a > < / span > kinsol_ret_code_map< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > std::unordered_map< int, std::string> gridfire::utils::kinsol_ret_code_map< / td >
< / tr >
< / table >
< / td >
< td class = "mlabels-right" >
2025-11-28 09:46:00 -05:00
< span class = "mlabels" > < span class = "mlabel" > inline< / span > < span class = "mlabel" > static< / span > < / span > < / td >
2025-11-24 09:08:28 -05:00
< / tr >
< / table >
< / div > < div class = "memdoc" >
< b > Initial value:< / b > < div class = "fragment" > < div class = "line" > {< / div >
< div class = "line" > {0, < span class = "stringliteral" > " KIN_SUCCESS: The solver succeeded." < / span > },< / div >
2025-11-25 14:31:59 -05:00
< div class = "line" > {1, < span class = "stringliteral" > " KIN_INITIAL_GUESS_OKAY: The guess, u=u0, satisfied the system F(u) = 0 within the tolerances specified" < / span > },< / div >
< div class = "line" > {2, < span class = "stringliteral" > " KIN_STEP_LT_STPTOL: KINSOL stopped based on scaled step length. This means that the current iterate may be an approximate solution of the given nonlinear system, but it is also quite possible that the algorithm is “stalled” (making insufficient progress) near an invalid solution, or that the scalar, scsteptol, is too large." < / span > },< / div >
< div class = "line" > {99, < span class = "stringliteral" > " KIN_WARNING: KINSOL succeeded but in an unusual way" < / span > },< / div >
< div class = "line" > {-1, < span class = "stringliteral" > " KIN_MEM_NULL: The KINSOL memory pointer is NULL." < / span > },< / div >
< div class = "line" > {-2, < span class = "stringliteral" > " KIN_ILL_INPUT: An illegal value was specified for an input argument." < / span > },< / div >
2025-11-24 09:08:28 -05:00
< div class = "line" > {-3, < span class = "stringliteral" > " KIN_NO_MALLOC: The KINSOL memory structure has not been allocated." < / span > },< / div >
2025-11-25 14:31:59 -05:00
< div class = "line" > {-4, < span class = "stringliteral" > " KIN_MEM_FAIL: A memory allocation failed." < / span > },< / div >
< div class = "line" > {-5, < span class = "stringliteral" > " KIN_LINESEARCH_NONCONV: The line search algorithm was unable to find an iterate sufficiently distinct from the current iterate." < / span > },< / div >
< div class = "line" > {-6, < span class = "stringliteral" > " KIN_MAXITER_REACHED: The maximum number of iterations was reached before convergence." < / span > },< / div >
< div class = "line" > {-7, < span class = "stringliteral" > " KIN_MXNEWT_5X_EXCEEDED: Five consecutive steps have been taken that satisfy a scaled step length test." < / span > },< / div >
< div class = "line" > {-8, < span class = "stringliteral" > " KIN_LINESEARCH_BCFAIL: The line search algorithm was unable to satisfy the beta-condition for nbcf fails iterations." < / span > },< / div >
< div class = "line" > {-9, < span class = "stringliteral" > " KIN_LINSOLV_NO_RECOVERY: The linear solver' s solve function failed recoverably, but the Jacobian data is already current." < / span > },< / div >
< div class = "line" > {-10, < span class = "stringliteral" > " KIN_LINIT_FAIL: The linear solver' s init routine failed." < / span > },< / div >
< div class = "line" > {-11, < span class = "stringliteral" > " KIN_LSETUP_FAIL: The linear solver' s setup function failed in an unrecoverable manner." < / span > },< / div >
< div class = "line" > {-12, < span class = "stringliteral" > " KIN_LSOLVE_FAIL: The linear solver' s solve function failed in an unrecoverable manner." < / span > },< / div >
< div class = "line" > {-13, < span class = "stringliteral" > " KIN_SYSFUNC_FAIL: The system function failed in an unrecoverable manner." < / span > },< / div >
< div class = "line" > {-14, < span class = "stringliteral" > " KIN_FIRST_SYSFUNC_ERR: The system function failed at the first call." < / span > },< / div >
< div class = "line" > {-15, < span class = "stringliteral" > " KIN_REPTD_SYSFUNC_ERR: Unable to correct repeated recoverable system function errors." < / span > },< / div >
< div class = "line" > {-16, < span class = "stringliteral" > " KIN_VECTOROP_ERR: A vector operation failed." < / span > },< / div >
< div class = "line" > {-17, < span class = "stringliteral" > " KIN_CONTEXT_ERR: A context error occurred." < / span > },< / div >
< div class = "line" > {-18, < span class = "stringliteral" > " KIN_DAMPING_FN_ERR: The damping function failed." < / span > },< / div >
< div class = "line" > {-19, < span class = "stringliteral" > " KIN_DEPTH_FN_ERR: The depth function failed." < / span > }< / div >
2025-11-24 09:08:28 -05:00
< div class = "line" > }< / div >
< / div > <!-- fragment -->
2025-07-01 11:40:58 -04:00
< / div >
< / div >
< / div > <!-- contents -->
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a class = "el" href = "namespacegridfire.html" > gridfire< / a > < / li > < li class = "navelem" > < a class = "el" href = "namespacegridfire_1_1utils.html" > utils< / a > < / li >
2025-11-28 09:46:00 -05:00
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" > < img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" / > < / a > 1.9.8 < / li >
2025-07-01 11:40:58 -04:00
< / ul >
< / div >
< / body >
< / html >