Include dependency graph for scratchpad_abstract.h:</div>
<divclass="dyncontent">
<divclass="center"><iframescrolling="no"frameborder="0"src="scratchpad__abstract_8h__incl.svg"width="218"height="140"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
This graph shows which files directly or indirectly include this file:</div>
<divclass="dyncontent">
<divclass="center"><divclass="zoom"><iframescrolling="no"frameborder="0"src="scratchpad__abstract_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">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>
<divclass="textblock"><p>Abstract base class for scratchpad memory used during engine computations. </p>
<p>This header defines the AbstractScratchPad interface, which provides a common contract for temporary working memory (scratchpads) used by computational engines. Scratchpads are designed to store intermediate results, cached computations, or pre-allocated buffers that can be reused across multiple computational steps, improving performance by avoiding repeated memory allocations.</p>
<li>Pre-allocate working memory once and reuse it across iterations</li>
<li>Store intermediate computational results between solver steps</li>
<li>Enable efficient cloning for parallel execution contexts</li>
<li>Provide a type-erased interface for heterogeneous scratchpad management</li>
</ul>
</dd></dl>
<dlclass="section user"><dt>Examples</dt><dd><divclass="fragment"><divclass="line"><spanclass="comment">// Define a concrete scratchpad for a specific engine</span></div>
<divclass="line"><spanclass="comment">// Use scratchpad for computations</span></div>
<divclass="line"><spanclass="keyword">auto</span> parallel_scratch = scratch->clone(); <spanclass="comment">// Clone for parallel worker</span></div>
<divclass="line">}</div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad_html"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html">gridfire::engine::scratch::AbstractScratchPad</a></div><divclass="ttdoc">Abstract base struct for engine scratchpad memory.</div><divclass="ttdef"><b>Definition</b> scratchpad_abstract.h:82</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad_html_a1ee6453778d15be0b6dc546f1e5e4768"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html#a1ee6453778d15be0b6dc546f1e5e4768">gridfire::engine::scratch::AbstractScratchPad::is_initialized</a></div><divclass="ttdeci">virtual bool is_initialized() const =0</div><divclass="ttdoc">Check whether the scratchpad has been properly initialized.</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad_html_aaaa5135efe8b9635e8f91797e9c85b3e"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html#aaaa5135efe8b9635e8f91797e9c85b3e">gridfire::engine::scratch::AbstractScratchPad::clone</a></div><divclass="ttdeci">virtual std::unique_ptr< AbstractScratchPad > clone() const =0</div><divclass="ttdoc">Create a deep copy of this scratchpad.</div></div>
</div><!-- fragment --></dd></dl>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<divid="nav-path"class="navpath"><!-- id is needed for treeview function! -->
<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>