Include dependency graph for engine_multiscale_scratchpad.h:</div>
<divclass="dyncontent">
<divclass="center"><divclass="zoom"><iframescrolling="no"frameborder="0"src="engine__multiscale__scratchpad_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>
This graph shows which files directly or indirectly include this file:</div>
<divclass="dyncontent">
<divclass="center"><divclass="zoom"><iframescrolling="no"frameborder="0"src="engine__multiscale__scratchpad_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>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Scratchpad for multiscale partitioning engine computations with QSE groups. <ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#details">More...</a><br/></td></tr>
<divclass="textblock"><p>Scratchpad implementation for the MultiscalePartitioningEngineView. </p>
<p>This header defines the MultiscalePartitioningEngineViewScratchPad, a concrete implementation of AbstractScratchPad designed for use with multiscale partitioning algorithms. It provides thread-local storage for QSE (Quasi-Static Equilibrium) groups, solvers, species classifications, and SUNDIALS contexts required for solving stiff subsystems.</p>
<divclass="line">worker_scratch->initialize(); <spanclass="comment">// Must re-initialize for new SUNContext</span></div>
<divclass="ttc"id="aengine__multiscale__scratchpad_8h_html"><divclass="ttname"><ahref="engine__multiscale__scratchpad_8h.html">engine_multiscale_scratchpad.h</a></div><divclass="ttdoc">Scratchpad implementation for the MultiscalePartitioningEngineView.</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad</a></div><divclass="ttdoc">Scratchpad for multiscale partitioning engine computations with QSE groups.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.h:90</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_a07552ac293e905112014c421ea15eb2f"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#a07552ac293e905112014c421ea15eb2f">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::algebraic_species</a></div><divclass="ttdeci">std::vector< Species > algebraic_species</div><divclass="ttdoc">Species that are solved algebraically (fast timescale/QSE).</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.h:120</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_a38ea81d9d616cd0f74747e44948f4ab9"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#a38ea81d9d616cd0f74747e44948f4ab9">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::dynamic_species</a></div><divclass="ttdeci">std::vector< Species > dynamic_species</div><divclass="ttdoc">Species that evolve on the dynamic (slow) timescale.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.h:117</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_a735335d563bb612f19b531107c89fab6"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#a735335d563bb612f19b531107c89fab6">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::sun_ctx</a></div><divclass="ttdeci">SUNContext sun_ctx</div><divclass="ttdoc">SUNDIALS context for solver operations.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.h:127</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_a7dbce2e9a2f940cbde8888aa67f5f3aa"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#a7dbce2e9a2f940cbde8888aa67f5f3aa">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::clone</a></div><divclass="ttdeci">std::unique_ptr< AbstractScratchPad > clone() const override</div><divclass="ttdoc">Create a partial copy of this scratchpad.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.cpp:37</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_a97f1fffc38872df3edd8c681685aa1fc"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#a97f1fffc38872df3edd8c681685aa1fc">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::initialize</a></div><divclass="ttdeci">void initialize()</div><divclass="ttdoc">Initialize the scratchpad by creating a SUNDIALS context.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.cpp:18</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad_html_ae61c7a93f9d4f8ded1e9c9dd2221d864"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#ae61c7a93f9d4f8ded1e9c9dd2221d864">gridfire::engine::scratch::MultiscalePartitioningEngineViewScratchPad::is_initialized</a></div><divclass="ttdeci">bool is_initialized() const override</div><divclass="ttdoc">Check whether the scratchpad has been initialized.</div><divclass="ttdef"><b>Definition</b> engine_multiscale_scratchpad.cpp:16</div></div>
<dlclass="section user"><dt>Thread Safety</dt><dd>This class is <b>not thread-safe</b>. Each thread must have its own instance because SUNDIALS contexts and QSE solvers maintain internal state. When cloning, the QSE solvers are not copied and the SUNContext is not cloned; the new instance must call initialize() to create its own context.</dd></dl>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.13.2 </li>