2025-10-08 11:17:09 -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-10-08 11:17:09 -04:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > GridFire: src/include/gridfire/engine/diagnostics/dynamic_engine_diagnostics.h File 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-10-08 11:17:09 -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-10-08 11:17:09 -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-10-08 11:17:09 -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-10-08 11:17:09 -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('dynamic__engine__diagnostics_8h.html',''); initResizable(); });
2025-10-08 11:17:09 -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" >
< a href = "#namespaces" > Namespaces< / a > |
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" > < div class = "title" > dynamic_engine_diagnostics.h File Reference< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
2025-11-24 09:08:28 -05:00
< p > Diagnostics utilities for DynamicEngine instances.
< a href = "#details" > More...< / a > < / p >
2025-10-08 11:17:09 -04:00
< div class = "textblock" > < code > #include " < a class = "el" href = "engine__abstract_8h.html" > gridfire/engine/engine_abstract.h< / a > " < / code > < br / >
< code > #include < vector> < / code > < br / >
< code > #include < string> < / code > < br / >
2025-11-24 09:08:28 -05:00
< code > #include " nlohmann/json.hpp" < / code > < br / >
2025-11-06 09:16:40 -05:00
< / div > < div class = "textblock" > < div class = "dynheader" >
Include dependency graph for dynamic_engine_diagnostics.h:< / div >
< div class = "dyncontent" >
< div class = "center" > < div class = "zoom" > < iframe scrolling = "no" frameborder = "0" src = "dynamic__engine__diagnostics_8h__incl.svg" width = "100%" height = "600" > < p > < b > This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.< / b > < / p > < / iframe > < / div > < / div >
< / div >
< / div > < div class = "textblock" > < div class = "dynheader" >
This graph shows which files directly or indirectly include this file:< / div >
< div class = "dyncontent" >
2025-11-27 15:06:27 -05:00
< div class = "center" > < div class = "zoom" > < iframe scrolling = "no" frameborder = "0" src = "dynamic__engine__diagnostics_8h__dep__incl.svg" width = "100%" height = "600" > < p > < b > This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.< / b > < / p > < / iframe > < / div > < / div >
2025-11-06 09:16:40 -05:00
< / div >
2025-10-08 11:17:09 -04:00
< / div > < table class = "memberdecls" >
< 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" id = "r_namespacegridfire" > < td class = "memItemLeft" align = "right" valign = "top" > namespace   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire.html" > gridfire< / 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:namespacegridfire_1_1engine" id = "r_namespacegridfire_1_1engine" > < td class = "memItemLeft" align = "right" valign = "top" > namespace   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine.html" > gridfire::engine< / 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:namespacegridfire_1_1engine_1_1diagnostics" id = "r_namespacegridfire_1_1engine_1_1diagnostics" > < td class = "memItemLeft" align = "right" valign = "top" > namespace   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine_1_1diagnostics.html" > gridfire::engine::diagnostics< / a > < / td > < / tr >
2025-10-08 11:17:09 -04: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 = "func-members" name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:ad792baf3c6720fce34a5161c0ade3fc4" id = "r_ad792baf3c6720fce34a5161c0ade3fc4" > < td class = "memItemLeft" align = "right" valign = "top" > std::optional< nlohmann::json >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine_1_1diagnostics.html#ad792baf3c6720fce34a5161c0ade3fc4" > gridfire::engine::diagnostics::report_limiting_species< / a > (const < a class = "el" href = "classgridfire_1_1engine_1_1DynamicEngine.html" > DynamicEngine< / a > & engine, const std::vector< double > & Y_full, const std::vector< double > & E_full, double relTol, double absTol, size_t top_n=10, bool json=false)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "memdesc:ad792baf3c6720fce34a5161c0ade3fc4" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Report the species that are limiting the accuracy of the integration. This is useful for identifying species that may be limiting the timestepping due to their high relative errors compared to the specified tolerances. < br / > < / td > < / tr >
< tr class = "separator:ad792baf3c6720fce34a5161c0ade3fc4" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:aac2570f6bc58b8825674f60f1634149b" id = "r_aac2570f6bc58b8825674f60f1634149b" > < td class = "memItemLeft" align = "right" valign = "top" > std::optional< nlohmann::json >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine_1_1diagnostics.html#aac2570f6bc58b8825674f60f1634149b" > gridfire::engine::diagnostics::inspect_species_balance< / a > (const < a class = "el" href = "classgridfire_1_1engine_1_1DynamicEngine.html" > DynamicEngine< / a > & engine, const std::string & species_name, const fourdst::composition::Composition & comp, double T9, double rho, bool json)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "memdesc:aac2570f6bc58b8825674f60f1634149b" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Inspect the production and destruction balance of a specific species in the reaction network. This function analyzes the reactions that create and destroy the specified species, providing insights into potential imbalances that may affect the accuracy of the simulation. < br / > < / td > < / tr >
< tr class = "separator:aac2570f6bc58b8825674f60f1634149b" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:a8a42702b787f12988ae8fc7e1e6d8186" id = "r_a8a42702b787f12988ae8fc7e1e6d8186" > < td class = "memItemLeft" align = "right" valign = "top" > std::optional< nlohmann::json >   < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine_1_1diagnostics.html#a8a42702b787f12988ae8fc7e1e6d8186" > gridfire::engine::diagnostics::inspect_jacobian_stiffness< / a > (const < a class = "el" href = "classgridfire_1_1engine_1_1DynamicEngine.html" > DynamicEngine< / a > & engine, const fourdst::composition::Composition & comp, double T9, double rho, bool json)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "memdesc:a8a42702b787f12988ae8fc7e1e6d8186" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Inspect the stiffness of the Jacobian matrix for the reaction network at the given temperature and density. This function evaluates the diagonal and off-diagonal elements of the Jacobian to identify potential numerical issues related to stiffness. < br / > < / td > < / tr >
< tr class = "separator:a8a42702b787f12988ae8fc7e1e6d8186" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-11-28 09:46:00 -05:00
< tr class = "memitem:ab247fdf00c23cf857d9131a3462d41ae" id = "r_ab247fdf00c23cf857d9131a3462d41ae" > < td class = "memItemLeft" align = "right" valign = "top" > void  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "namespacegridfire_1_1engine_1_1diagnostics.html#ab247fdf00c23cf857d9131a3462d41ae" > gridfire::engine::diagnostics::save_jacobian_to_file< / a > (const < a class = "el" href = "classgridfire_1_1engine_1_1NetworkJacobian.html" > NetworkJacobian< / a > & jacobian, const std::string & filename)< / td > < / tr >
2025-11-24 09:08:28 -05:00
< tr class = "memdesc:ab247fdf00c23cf857d9131a3462d41ae" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Save the Jacobian matrix to a file for external analysis. < br / > < / td > < / tr >
< tr class = "separator:ab247fdf00c23cf857d9131a3462d41ae" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
2025-10-08 11:17:09 -04:00
< / table >
2025-11-24 09:08:28 -05:00
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< div class = "textblock" > < p > Diagnostics utilities for DynamicEngine instances. < / p >
< p > These free functions provide diagnostic tools for analyzing and reporting on the behavior of DynamicEngine instances in GridFire. They include functions for identifying limiting species, inspecting species balance, and evaluating Jacobian stiffness. Generally these functions are expensive to call and should be avoided in performance-critical code paths or during large simulations. These are primarily intended for debugging and analysis during development.< / p >
< h1 > < a class = "anchor" id = "Functions" > < / a >
Functions< / h1 >
< ul >
< li > report_limiting_species: Identifies species that are limiting the accuracy of the integration based on specified tolerances.< / li >
< li > inspect_species_balance: Analyzes the production and destruction rates of a specified species to identify imbalances.< / li >
< li > inspect_jacobian_stiffness: Evaluates the stiffness of the Jacobian matrix to identify potential numerical issues.< / li >
< li > save_jacobian_to_file: Saves the Jacobian matrix to a file for external analysis.< / li >
< / ul >
< dl class = "section note" > < dt > Note< / dt > < dd > Each of these functions, aside from save_jacobian_to_file, may return results in JSON format for easy integration with other tools and workflows. If the < code > json< / code > parameter is set then the output will be formatted as JSON; otherwise, it will be printed to standard output and < code > std::nullopt< / code > will be returned. < / dd > < / dl >
< / div > < / div > <!-- contents -->
2025-10-08 11:17:09 -04:00
< / 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 = "dir_68267d1309a1af8e8297ef4c3efbcdba.html" > src< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_b0856f6b0d80ccb263b2f415c91f9e17.html" > include< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_3626e0c0e3c5d7812d6b277dfa4ec364.html" > gridfire< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_aff155d61c3b73b9ab7dcdc908c4d49e.html" > engine< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_b893969db6254951682857c720518fa8.html" > diagnostics< / a > < / li > < li class = "navelem" > < a class = "el" href = "dynamic__engine__diagnostics_8h.html" > dynamic_engine_diagnostics.h< / 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-10-08 11:17:09 -04:00
< / ul >
< / div >
< / body >
< / html >