<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Abstract base struct for engine scratchpad memory. <ahref="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Scratchpad for storing working memory used by <aclass="el"href="classgridfire_1_1engine_1_1_adaptive_engine_view.html"title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> computations. <ahref="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Scratchpad for storing working memory used by defined reaction network engines. <ahref="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Scratchpad for storing CppAD automatic differentiation state for <aclass="el"href="classgridfire_1_1engine_1_1_graph_engine.html"title="A reaction network engine that uses a graph-based representation.">GraphEngine</a>. <ahref="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html#details">More...</a><br/></td></tr>
<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>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Container for managing a collection of typed scratchpad instances. <ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Concept that constrains types to valid scratchpad implementations. <br/></td></tr>
<trclass="memdesc:a61cbbc8ec7103cc74fc8e549fd0649be"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Enumeration of all registered scratchpad types. <ahref="#a61cbbc8ec7103cc74fc8e549fd0649be">More...</a><br/></td></tr>
<trclass="memdesc:a7fa4b4931eb98910018ecb9e6d37a778"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get the maximum number of scratchpad types at compile time. <br/></td></tr>
<trclass="memdesc:aca27b37993186128808c8fdd96c54849"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Convert a <aclass="el"href="#a61cbbc8ec7103cc74fc8e549fd0649be"title="Enumeration of all registered scratchpad types.">ScratchPadType</a> to a human-readable name. <br/></td></tr>
<trclass="memdesc:ab8f89f710094bfc93b84e26c818249b9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Retrieve a scratchpad from a <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. <br/></td></tr>
<trclass="memdesc:a322cc33cefc958d2507229aa283e8d4e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Retrieve a const scratchpad from a const <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. <br/></td></tr>
<trclass="memdesc:aeae70212ece1d604b41e434641bd4291"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Retrieve a scratchpad with optional initialization check, throwing on error. <br/></td></tr>
<trclass="memdesc:afd8f2cf5ed25a1c719ba1886836ff892"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Retrieve a const scratchpad with optional initialization check, throwing on error. <br/></td></tr>
<divclass="textblock"><p>Scratchpad memory management for computational engines. </p>
<p>The scratch namespace contains all components related to temporary working memory management for GridFire's computational engines. This includes the abstract scratchpad interface, concrete implementations for each engine type, the <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> container for managing multiple scratchpads, and utilities for convenient access.</p>
<li><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html"title="Abstract base struct for engine scratchpad memory.">AbstractScratchPad</a>: Interface for all scratchpad types</li>
<li><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html"title="Scratchpad for storing CppAD automatic differentiation state for GraphEngine.">GraphEngineScratchPad</a>: Working memory for CppAD-based graph engines</li>
<li><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html"title="Scratchpad for storing working memory used by AdaptiveEngineView computations.">AdaptiveEngineViewScratchPad</a>: Storage for adaptive network computations</li>
<li><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html"title="Scratchpad for storing working memory used by defined reaction network engines.">DefinedEngineViewScratchPad</a>: Storage for static network computations</li>
<li><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html"title="Scratchpad for multiscale partitioning engine computations with QSE groups.">MultiscalePartitioningEngineViewScratchPad</a>: QSE solver state management</li>
<li><aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>: Type-safe container for multiple scratchpads</li>
<li><aclass="el"href="#a61cbbc8ec7103cc74fc8e549fd0649be"title="Enumeration of all registered scratchpad types.">ScratchPadType</a>: Enumeration of registered scratchpad types</li>
<li><aclass="el"href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html"title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>: Concept constraining valid scratchpad types</li>
<li><aclass="el"href="#ab8f89f710094bfc93b84e26c818249b9"title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a>: Utility functions for exception-based retrieval</li>
</ul>
</dd></dl>
<dlclass="section user"><dt>Design Philosophy</dt><dd>The scratchpad system follows these design principles:</dd></dl>
<oltype="1">
<li><b>Separation of Concerns</b>: Working memory is separate from engine configuration</li>
<li><b>Type Safety</b>: Compile-time verification of scratchpad types via concepts</li>
<li><b>Performance</b>: O(1) access via enum-indexed arrays</li>
<li><b>Thread Locality</b>: Each thread owns its scratchpad instances</li>
<li><b>Clonability</b>: Deep copying enables parallel execution patterns </li>
</ol>
</div><h2class="groupheader">Enumeration Type Documentation</h2>
<p>Enumeration of all registered scratchpad types. </p>
<p>Each scratchpad implementation must have a unique type identifier in this enumeration. The concrete scratchpad class should define a static <code>ID</code> member initialized to its corresponding <aclass="el"href="#a61cbbc8ec7103cc74fc8e549fd0649be"title="Enumeration of all registered scratchpad types.">ScratchPadType</a> value.</p>
<dlclass="section note"><dt>Note</dt><dd>The <code>_COUNT</code> enumerator is a sentinel value used to determine the total number of scratchpad types. It must always be the last entry. Do not use <code>_COUNT</code> as an actual scratchpad type. </dd></dl>
<tableclass="fieldtable">
<tr><thcolspan="2">Enumerator</th></tr><tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723"name="a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723"></a>GRAPH_ENGINE_SCRATCHPAD </td><tdclass="fielddoc"><p><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html"title="Scratchpad for storing CppAD automatic differentiation state for GraphEngine.">GraphEngineScratchPad</a> for CppAD-based engines. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649bea04752870c6cbdf741856f817d68f80bc"name="a61cbbc8ec7103cc74fc8e549fd0649bea04752870c6cbdf741856f817d68f80bc"></a>MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD </td><tdclass="fielddoc"><p><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html"title="Scratchpad for multiscale partitioning engine computations with QSE groups.">MultiscalePartitioningEngineViewScratchPad</a> for QSE partitioning. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649bea7ea429f895ad8257bbf75dc52312d999"name="a61cbbc8ec7103cc74fc8e549fd0649bea7ea429f895ad8257bbf75dc52312d999"></a>ADAPTIVE_ENGINE_VIEW_SCRATCHPAD </td><tdclass="fielddoc"><p><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html"title="Scratchpad for storing working memory used by AdaptiveEngineView computations.">AdaptiveEngineViewScratchPad</a> for adaptive networks. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649bead249b18ecc73b7531c3b609272989f04"name="a61cbbc8ec7103cc74fc8e549fd0649bead249b18ecc73b7531c3b609272989f04"></a>DEFINED_ENGINE_VIEW_SCRATCHPAD </td><tdclass="fielddoc"><p><aclass="el"href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html"title="Scratchpad for storing working memory used by defined reaction network engines.">DefinedEngineViewScratchPad</a> for static networks. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649bea051914b0c2bbfe353fa2621902e0a84a"name="a61cbbc8ec7103cc74fc8e549fd0649bea051914b0c2bbfe353fa2621902e0a84a"></a>PRIMING_ENGINE_VIEW_SCRATCHPAD </td><tdclass="fielddoc"><p>PrimingEngineViewScratchPad for engine priming. </p>
</td></tr>
<tr><tdclass="fieldname"><aid="a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103"name="a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103"></a>_COUNT </td><tdclass="fielddoc"><p>Sentinel value representing the total number of scratchpad types. Do not use as a type. </p>
<p>Get the maximum number of scratchpad types at compile time. </p>
<p>Returns the total count of registered scratchpad types, derived from the <aclass="el"href="#a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103"title="Sentinel value representing the total number of scratchpad types. Do not use as a type.">ScratchPadType::_COUNT</a> sentinel value. This is useful for sizing fixed-size arrays that need a slot for each scratchpad type.</p>
<dlclass="section return"><dt>Returns</dt><dd>The number of valid scratchpad types (excluding _COUNT).</dd></dl>
<dlclass="section user"><dt>Examples</dt><dd><divclass="fragment"><divclass="line"><spanclass="comment">// Use at compile time for array sizing</span></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html_a7fa4b4931eb98910018ecb9e6d37a778"><divclass="ttname"><ahref="#a7fa4b4931eb98910018ecb9e6d37a778">gridfire::engine::scratch::get_max_scratchpad_types</a></div><divclass="ttdeci">consteval size_t get_max_scratchpad_types()</div><divclass="ttdoc">Get the maximum number of scratchpad types at compile time.</div><divclass="ttdef"><b>Definition</b> types.h:94</div></div>
<p>Convert a <aclass="el"href="#a61cbbc8ec7103cc74fc8e549fd0649be"title="Enumeration of all registered scratchpad types.">ScratchPadType</a> to a human-readable name. </p>
<p>Returns a string view containing the class name associated with the given scratchpad type. Useful for logging, debugging, and error messages.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">scratchpad_type</td><td>The scratchpad type to convert.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>A string view containing the scratchpad class name, or "UnknownScratchPadType" for unrecognized values.</dd></dl>
<dlclass="section user"><dt>Examples</dt><dd><divclass="fragment"><divclass="line"><aclass="code hl_enumeration"href="#a61cbbc8ec7103cc74fc8e549fd0649be">ScratchPadType</a> type = <aclass="code hl_enumvalue"href="#a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723">ScratchPadType::GRAPH_ENGINE_SCRATCHPAD</a>;</div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html_a61cbbc8ec7103cc74fc8e549fd0649be"><divclass="ttname"><ahref="#a61cbbc8ec7103cc74fc8e549fd0649be">gridfire::engine::scratch::ScratchPadType</a></div><divclass="ttdeci">ScratchPadType</div><divclass="ttdoc">Enumeration of all registered scratchpad types.</div><divclass="ttdef"><b>Definition</b> types.h:65</div></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html_a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723"><divclass="ttname"><ahref="#a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723">gridfire::engine::scratch::ScratchPadType::GRAPH_ENGINE_SCRATCHPAD</a></div><divclass="ttdeci">@ GRAPH_ENGINE_SCRATCHPAD</div><divclass="ttdoc">GraphEngineScratchPad for CppAD-based engines.</div><divclass="ttdef"><b>Definition</b> types.h:66</div></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html_aca27b37993186128808c8fdd96c54849"><divclass="ttname"><ahref="#aca27b37993186128808c8fdd96c54849">gridfire::engine::scratch::get_scratchpad_type_name</a></div><divclass="ttdeci">constexpr std::string_view get_scratchpad_type_name(const ScratchPadType scratchpad_type)</div><divclass="ttdoc">Convert a ScratchPadType to a human-readable name.</div><divclass="ttdef"><b>Definition</b> types.h:122</div></div>
<p>Retrieve a const scratchpad from a const <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. </p>
<p>Const-correct overload of <aclass="el"href="#ab8f89f710094bfc93b84e26c818249b9"title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a> for read-only access to scratchpads. Use this when you have a const reference to the <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> and only need to read from the scratchpad.</p>
<tr><tdclass="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <aclass="el"href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html"title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>).</td></tr>
</table>
</dd>
</dl>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">ctx</td><td>The const <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Const pointer to the requested scratchpad.</dd></dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname"><aclass="el"href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast to the requested type, or any other error occurs.</td></tr>
<divclass="line"><spanclass="comment">// Read from scratch...</span></div>
<divclass="line"> }</div>
<divclass="line">}</div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">gridfire::engine::scratch::StateBlob</a></div><divclass="ttdoc">Container for managing a collection of typed scratchpad instances.</div><divclass="ttdef"><b>Definition</b> blob.h:114</div></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html"><divclass="ttname"><ahref="namespacegridfire_1_1engine_1_1scratch.html">gridfire::engine::scratch</a></div><divclass="ttdoc">Scratchpad memory management for computational engines.</div><divclass="ttdef"><b>Definition</b> blob.h:69</div></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html_ab8f89f710094bfc93b84e26c818249b9"><divclass="ttname"><ahref="#ab8f89f710094bfc93b84e26c818249b9">gridfire::engine::scratch::get_state</a></div><divclass="ttdeci">CTX * get_state(StateBlob &ctx)</div><divclass="ttdoc">Retrieve a scratchpad from a StateBlob, throwing on error.</div><divclass="ttdef"><b>Definition</b> utils.h:87</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad_html"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">gridfire::engine::scratch::GraphEngineScratchPad</a></div><divclass="ttdoc">Scratchpad for storing CppAD automatic differentiation state for GraphEngine.</div><divclass="ttdef"><b>Definition</b> engine_graph_scratchpad.h:83</div></div>
<p>Retrieve a const scratchpad with optional initialization check, throwing on error. </p>
<p>Const-correct overload of the initialization-checking <aclass="el"href="#ab8f89f710094bfc93b84e26c818249b9"title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a>. Combines read-only access with optional initialization verification.</p>
<tr><tdclass="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <aclass="el"href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html"title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>). </td></tr>
<tr><tdclass="paramname">MUST_BE_INITIALIZED</td><td>If true, throws when the scratchpad is not initialized.</td></tr>
</table>
</dd>
</dl>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">ctx</td><td>The const <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Const pointer to the requested scratchpad (guaranteed initialized if MUST_BE_INITIALIZED is true).</dd></dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname"><aclass="el"href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast, is not initialized (when required), or any other error.</td></tr>
<p>Retrieve a scratchpad from a <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. </p>
<p>Convenience wrapper around <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#acedd28277e5c6805865a9baa3991686a"title="Retrieve a scratchpad by type.">StateBlob::get()</a> that converts error codes into exceptions. Use this when you expect the scratchpad to exist and want exception-based error handling.</p>
<tr><tdclass="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <aclass="el"href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html"title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>).</td></tr>
</table>
</dd>
</dl>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">ctx</td><td>The <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Pointer to the requested scratchpad.</dd></dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname"><aclass="el"href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast to the requested type, or any other error occurs.</td></tr>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_aa06d7bb89e67c4b6fd584d8f32a251bf"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#aa06d7bb89e67c4b6fd584d8f32a251bf">gridfire::engine::scratch::StateBlob::enroll</a></div><divclass="ttdeci">void enroll()</div><divclass="ttdoc">Enroll a new scratchpad type into the blob.</div><divclass="ttdef"><b>Definition</b> blob.h:196</div></div>
<p>Retrieve a scratchpad with optional initialization check, throwing on error. </p>
<p>Extended version of <aclass="el"href="#ab8f89f710094bfc93b84e26c818249b9"title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a> that can optionally verify the scratchpad is initialized before returning it. When MUST_BE_INITIALIZED is true, an exception is thrown if the scratchpad exists but hasn't been initialized.</p>
<tr><tdclass="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <aclass="el"href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html"title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>). </td></tr>
<tr><tdclass="paramname">MUST_BE_INITIALIZED</td><td>If true, throws when the scratchpad is not initialized.</td></tr>
</table>
</dd>
</dl>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">ctx</td><td>The <aclass="el"href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html"title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>Pointer to the requested scratchpad (guaranteed initialized if MUST_BE_INITIALIZED is true).</dd></dl>
<dlclass="exception"><dt>Exceptions</dt><dd>
<tableclass="exception">
<tr><tdclass="paramname"><aclass="el"href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast, is not initialized (when required), or any other error.</td></tr>
</table>
</dd>
</dl>
<dlclass="section user"><dt>Examples</dt><dd><divclass="fragment"><divclass="line"><spanclass="comment">// Ensure scratchpad is initialized before use</span></div>
<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>