feat(solver): added callback functions to solver in C++ and python

This commit is contained in:
2025-07-31 15:04:57 -04:00
parent 5b74155477
commit 24049b2658
482 changed files with 4318 additions and 1467 deletions

View File

@@ -48,7 +48,7 @@ PROJECT_NAME = GridFire
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 0.0.1a
PROJECT_NUMBER = 0.6.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewers a

251
README.md
View File

@@ -1,5 +1,5 @@
<p align="center">
<img src="assets/logo/GridFire.png" width="300" alt="OPAT Core Libraries Logo">
<img src="https://github.com/4D-STAR/GridFire/blob/main/assets/logo/GridFire.png?raw=true" width="300" alt="OPAT Core Libraries Logo">
</p>
@@ -531,45 +531,51 @@ view strategies without touching C++ sources.
## C++
### GraphEngine Initialization
```cpp
```c++
#include "gridfire/engine/engine_graph.h"
#include "fourdst/composition/composition.h"
// Define a composition and initialize the engine
fourdst::composition::Composition comp;
gridfire::GraphEngine engine(comp);
int main(){
// Define a composition and initialize the engine
fourdst::composition::Composition comp;
gridfire::GraphEngine engine(comp);
}
```
### Adaptive Network View
```cpp
```c++
#include "gridfire/engine/views/engine_adaptive.h"
#include "gridfire/engine/engine_graph.h"
fourdst::composition::Composition comp;
gridfire::GraphEngine baseEngine(comp);
// Dynamically adapt network topology based on reaction flows
gridfire::AdaptiveEngineView adaptiveView(baseEngine);
int main(){
fourdst::composition::Composition comp;
gridfire::GraphEngine baseEngine(comp);
// Dynamically adapt network topology based on reaction flows
gridfire::AdaptiveEngineView adaptiveView(baseEngine);
}
```
### Composition Initialization
```cpp
```c++
#include "fourdst/composition/composition.h"
#include <vector>
#include <string>
#include <iostream>
fourdst::composition::Composition comp;
int main() {
fourdst::composition::Composition comp;
std::vector<std::string> symbols = {"H-1", "He-4", "C-12"};
std::vector<double> massFractions = {0.7, 0.29, 0.01};
std::vector<std::string> symbols = {"H-1", "He-4", "C-12"};
std::vector<double> massFractions = {0.7, 0.29, 0.01};
comp.registerSymbols(symbols);
comp.setMassFraction(symbols, massFractions);
comp.registerSymbols(symbols);
comp.setMassFraction(symbols, massFractions);
comp.finalize(true);
comp.finalize(true);
std::cout << comp << std::endl;
std::cout << comp << std::endl;
}
```
### Common Workflow Example
@@ -577,45 +583,48 @@ std::cout << comp << std::endl;
A representative workflow often composes multiple engine views to balance
accuracy, stability, and performance when integrating stiff nuclear networks:
```cpp
```c++
#include "gridfire/engine/engine.h" // Unified header for real usage
#include "gridfire/solver/solver.h" // Unified header for solvers
#include "fourdst/composition/composition.h"
// 1. Define initial composition
fourdst::composition::Composition comp;
int main(){
// 1. Define initial composition
fourdst::composition::Composition comp;
std::vector<std::string> symbols = {"H-1", "He-4", "C-12"};
std::vector<double> massFractions = {0.7, 0.29, 0.01};
std::vector<std::string> symbols = {"H-1", "He-4", "C-12"};
std::vector<double> massFractions = {0.7, 0.29, 0.01};
comp.registerSymbols(symbols);
comp.setMassFraction(symbols, massFractions);
comp.registerSymbols(symbols);
comp.setMassFraction(symbols, massFractions);
comp.finalize(true);
comp.finalize(true);
// 2. Create base network engine (full reaction graph)
gridfire::GraphEngine baseEngine(comp, NetworkBuildDepth::SecondOrder)
// 2. Create base network engine (full reaction graph)
gridfire::GraphEngine baseEngine(comp, NetworkBuildDepth::SecondOrder)
// 3. Partition network into fast/slow subsets (reduces stiffness)
gridfire::MultiscalePartitioningEngineView msView(baseEngine);
// 3. Partition network into fast/slow subsets (reduces stiffness)
gridfire::MultiscalePartitioningEngineView msView(baseEngine);
// 4. Adaptively cull negligible flux pathways (reduces dimension & stiffness)
gridfire::AdaptiveEngineView adaptView(msView);
// 4. Adaptively cull negligible flux pathways (reduces dimension & stiffness)
gridfire::AdaptiveEngineView adaptView(msView);
// 5. Construct implicit solver (handles remaining stiffness)
gridfire::DirectNetworkSolver solver(adaptView);
// 5. Construct implicit solver (handles remaining stiffness)
gridfire::DirectNetworkSolver solver(adaptView);
// 6. Prepare input conditions
NetIn input{
// 6. Prepare input conditions
NetIn input{
comp, // composition
1.5e7, // temperature [K]
1.5e2, // density [g/cm^3]
1e-12, // initial timestep [s]
3e17 // integration end time [s]
};
};
// 7. Execute integration
NetOut output = solver.evaluate(input);
std::cout << "Final results are: " << output << std::endl;
// 7. Execute integration
NetOut output = solver.evaluate(input);
std::cout << "Final results are: " << output << std::endl;
}
```
#### Workflow Components and Effects
@@ -632,6 +641,72 @@ integrate the remaining stiff system with adaptive step control.
This layered approach enhances stability for stiff networks while maintaining
accuracy and performance.
### Callback Example
Custom callback functions can be registered with any solver. Because it might make sense for each solver to provide
different context to the callback function, you should use the struct `gridfire::solver::<SolverName>::TimestepContext`
as the argument type for the callback function. This struct contains all of the information provided by that solver to
the callback function.
```c++
#include "gridfire/engine/engine.h" // Unified header for real usage
#include "gridfire/solver/solver.h" // Unified header for solvers
#include "fourdst/composition/composition.h"
#include "fourdst/atomic/species.h"
#include <iostream>
void callback(const gridfire::solver::DirectNetworkSolver::TimestepContext& context) {
int H1Index = context.engine.getSpeciesIndex(fourdst::atomic::H_1);
int He4Index = context.engine.getSpeciesIndex(fourdst::atomic::He_4);
std::cout << context.t << "," << context.state(H1Index) << "," << context.state(He4Index) << "\n";
}
int main(){
// 1. Define initial composition
fourdst::composition::Composition comp;
std::vector<std::string> symbols = {"H-1", "He-4", "C-12"};
std::vector<double> massFractions = {0.7, 0.29, 0.01};
comp.registerSymbols(symbols);
comp.setMassFraction(symbols, massFractions);
comp.finalize(true);
// 2. Create base network engine (full reaction graph)
gridfire::GraphEngine baseEngine(comp, NetworkBuildDepth::SecondOrder)
// 3. Partition network into fast/slow subsets (reduces stiffness)
gridfire::MultiscalePartitioningEngineView msView(baseEngine);
// 4. Adaptively cull negligible flux pathways (reduces dimension & stiffness)
gridfire::AdaptiveEngineView adaptView(msView);
// 5. Construct implicit solver (handles remaining stiffness)
gridfire::DirectNetworkSolver solver(adaptView);
solver.set_callback(callback);
// 6. Prepare input conditions
NetIn input{
comp, // composition
1.5e7, // temperature [K]
1.5e2, // density [g/cm^3]
1e-12, // initial timestep [s]
3e17 // integration end time [s]
};
// 7. Execute integration
NetOut output = solver.evaluate(input);
std::cout << "Final results are: " << output << std::endl;
}
```
>**Note:** A fully detailed list of all available information in the TimestepContext struct is available in the API documentation.
>**Note:** The order of species in the boost state vector (`ctx.state`) is **not guaranteed** to be any particular order run over run. Therefore, in order to reliably extract
> values from it, you **must** use the `getSpeciesIndex` method of the engine to get the index of the species you are interested in (these will always be in the same order).
## Python
The python bindings intentionally look **very** similar to the C++ code.
Generally all examples can be adapted to python by replacing includes of paths
@@ -644,32 +719,100 @@ All GridFire C++ types have been bound and can be passed around as one would exp
### Common Workflow Examople
This example impliments the same logic as the above C++ example
```python
import gridfire
from gridfire.engine import GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView
from gridfire.solver import DirectNetworkSolver
from gridfire.type import NetIn
from fourdst.composition import Composition
symbols = ["H-1", ...]
X = [0.7, ...]
symbols : list[str] = ["H-1", "He-3", "He-4", "C-12", "N-14", "O-16", "Ne-20", "Mg-24"]
X : list[float] = [0.708, 2.94e-5, 0.276, 0.003, 0.0011, 9.62e-3, 1.62e-3, 5.16e-4]
comp = Composition()
comp.registerSymbols(symbols)
comp.setMassFraction(X)
comp.finalize(true)
# Initialize GraphEngine with predefined composition
engine = gridfire.GraphEngine(comp)
netIn = gridfire.types.NetIn
comp.registerSymbol(symbols)
comp.setMassFraction(symbols, X)
comp.finalize(True)
print(f"Initial H-1 mass fraction {comp.getMassFraction("H-1")}")
netIn = NetIn()
netIn.composition = comp
netIn.tMax = 1e-3
netIn.temperature = 1.5e7
netIn.density = 1.6e2
netIn.tMax = 1e-9
netIn.dt0 = 1e-12
# Perform one integration step
netOut = engine.evaluate(netIn)
print(netOut)
baseEngine = GraphEngine(netIn.composition, 2)
baseEngine.setUseReverseReactions(False)
qseEngine = MultiscalePartitioningEngineView(baseEngine)
adaptiveEngine = AdaptiveEngineView(qseEngine)
solver = DirectNetworkSolver(adaptiveEngine)
results = solver.evaluate(netIn)
print(f"Final H-1 mass fraction {results.composition.getMassFraction("H-1")}")
```
### Python callbacks
Just like in C++, python users can register callbacks to be called at the end of each successful timestep. Note that
these may slow down code significantly as the interpreter needs to jump up into the slower python code therefore these
should likely only be used for debugging purposes.
The syntax for registration is very similar to C++
```python
from gridfire.engine import GraphEngine, MultiscalePartitioningEngineView, AdaptiveEngineView
from gridfire.solver import DirectNetworkSolver
from gridfire.type import NetIn
from fourdst.composition import Composition
from fourdst.atomic import species
symbols : list[str] = ["H-1", "He-3", "He-4", "C-12", "N-14", "O-16", "Ne-20", "Mg-24"]
X : list[float] = [0.708, 2.94e-5, 0.276, 0.003, 0.0011, 9.62e-3, 1.62e-3, 5.16e-4]
comp = Composition()
comp.registerSymbol(symbols)
comp.setMassFraction(symbols, X)
comp.finalize(True)
print(f"Initial H-1 mass fraction {comp.getMassFraction("H-1")}")
netIn = NetIn()
netIn.composition = comp
netIn.temperature = 1.5e7
netIn.density = 1.6e2
netIn.tMax = 1e-9
netIn.dt0 = 1e-12
baseEngine = GraphEngine(netIn.composition, 2)
baseEngine.setUseReverseReactions(False)
qseEngine = MultiscalePartitioningEngineView(baseEngine)
adaptiveEngine = AdaptiveEngineView(qseEngine)
solver = DirectNetworkSolver(adaptiveEngine)
def callback(context):
H1Index = context.engine.getSpeciesIndex(species["H-1"])
He4Index = context.engine.getSpeciesIndex(species["He-4"])
C12ndex = context.engine.getSpeciesIndex(species["C-12"])
Mgh24ndex = context.engine.getSpeciesIndex(species["Mg-24"])
print(f"Time: {context.t}, H-1: {context.state[H1Index]}, He-4: {context.state[He4Index]}, C-12: {context.state[C12ndex]}, Mg-24: {context.state[Mgh24ndex]}")
solver.set_callback(callback)
results = solver.evaluate(netIn)
print(f"Final H-1 mass fraction {results.composition.getMassFraction("H-1")}")
```
# Related Projects

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -150,8 +150,10 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_8_" class="arrow" onclick="dynsection.toggleFolder('0_8_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegridfire_1_1solver.html" target="_self">solver</a></td><td class="desc"></td></tr>
<tr id="row_0_8_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_8_0_" class="arrow" onclick="dynsection.toggleFolder('0_8_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html" target="_self">DirectNetworkSolver</a></td><td class="desc">A network solver that directly integrates the reaction network ODEs </td></tr>
<tr id="row_0_8_0_0_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_jacobian_functor.html" target="_self">JacobianFunctor</a></td><td class="desc">Functor for calculating the Jacobian matrix </td></tr>
<tr id="row_0_8_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html" target="_self">RHSManager</a></td><td class="desc"></td></tr>
<tr id="row_0_8_1_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html" target="_self">NetworkSolverStrategy</a></td><td class="desc">Abstract base class for network solver strategies </td></tr>
<tr id="row_0_8_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html" target="_self">RHSManager</a></td><td class="desc">Functor for calculating the right-hand side of the ODEs </td></tr>
<tr id="row_0_8_0_2_" class="odd"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html" target="_self">TimestepContext</a></td><td class="desc">Context for the timestep callback function for the <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html" title="A network solver that directly integrates the reaction network ODEs.">DirectNetworkSolver</a> </td></tr>
<tr id="row_0_8_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html" target="_self">NetworkSolverStrategy</a></td><td class="desc">Abstract base class for network solver strategies </td></tr>
<tr id="row_0_8_2_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1solver_1_1_solver_context_base.html" target="_self">SolverContextBase</a></td><td class="desc">Base class for solver callback contexts </td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_9_" class="arrow" onclick="dynsection.toggleFolder('0_9_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgridfire_1_1_adaptive_engine_view.html" target="_self">AdaptiveEngineView</a></td><td class="desc">An engine view that dynamically adapts the reaction network based on runtime conditions </td></tr>
<tr id="row_0_9_0_" class="odd"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html" target="_self">ReactionFlow</a></td><td class="desc">A struct to hold a reaction and its flow rate </td></tr>
<tr id="row_0_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgridfire_1_1_defined_engine_view.html" target="_self">DefinedEngineView</a></td><td class="desc"></td></tr>
@@ -189,7 +191,6 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_py_network_file_parser.html" target="_self">PyNetworkFileParser</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_py_partition_function.html" target="_self">PyPartitionFunction</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_py_screening.html" target="_self">PyScreening</a></td><td class="desc"></td></tr>
<tr id="row_10_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_r_h_s_functor.html" target="_self">RHSFunctor</a></td><td class="desc">Functor for calculating the right-hand side of the ODEs </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->

View File

@@ -50,7 +50,8 @@ var annotated_dup =
] ],
[ "solver", "namespacegridfire_1_1solver.html", [
[ "DirectNetworkSolver", "classgridfire_1_1solver_1_1_direct_network_solver.html", "classgridfire_1_1solver_1_1_direct_network_solver" ],
[ "NetworkSolverStrategy", "classgridfire_1_1solver_1_1_network_solver_strategy.html", "classgridfire_1_1solver_1_1_network_solver_strategy" ]
[ "NetworkSolverStrategy", "classgridfire_1_1solver_1_1_network_solver_strategy.html", "classgridfire_1_1solver_1_1_network_solver_strategy" ],
[ "SolverContextBase", "structgridfire_1_1solver_1_1_solver_context_base.html", "structgridfire_1_1solver_1_1_solver_context_base" ]
] ],
[ "AdaptiveEngineView", "classgridfire_1_1_adaptive_engine_view.html", "classgridfire_1_1_adaptive_engine_view" ],
[ "DefinedEngineView", "classgridfire_1_1_defined_engine_view.html", "classgridfire_1_1_defined_engine_view" ],
@@ -83,6 +84,5 @@ var annotated_dup =
[ "PyEngineView", "class_py_engine_view.html", "class_py_engine_view" ],
[ "PyNetworkFileParser", "class_py_network_file_parser.html", "class_py_network_file_parser" ],
[ "PyPartitionFunction", "class_py_partition_function.html", "class_py_partition_function" ],
[ "PyScreening", "class_py_screening.html", "class_py_screening" ],
[ "RHSFunctor", "struct_r_h_s_functor.html", null ]
[ "PyScreening", "class_py_screening.html", "class_py_screening" ]
];

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -166,14 +166,19 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:ab4cfdca5e15957c5cef75ffa6dedeee5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current electron screening model. <br /></td></tr>
<tr class="separator:ab4cfdca5e15957c5cef75ffa6dedeee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ee1d745c1c21b9fcb652c96c42f1091" id="r_a2ee1d745c1c21b9fcb652c96c42f1091"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2ee1d745c1c21b9fcb652c96c42f1091">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a2ee1d745c1c21b9fcb652c96c42f1091"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:a2ee1d745c1c21b9fcb652c96c42f1091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61bb4b430fe740cfb2c24e5cc673e4ac" id="r_a61bb4b430fe740cfb2c24e5cc673e4ac"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a61bb4b430fe740cfb2c24e5cc673e4ac">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">gridfire::NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a61bb4b430fe740cfb2c24e5cc673e4ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a NetIn object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a61bb4b430fe740cfb2c24e5cc673e4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22a10412be6649bf379e6d61113c878" id="r_ac22a10412be6649bf379e6d61113c878"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">gridfire::PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac22a10412be6649bf379e6d61113c878">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">gridfire::NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:ac22a10412be6649bf379e6d61113c878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:ac22a10412be6649bf379e6d61113c878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adba68716d832b6100e08d32fbc36f13c" id="r_adba68716d832b6100e08d32fbc36f13c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">gridfire::BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adba68716d832b6100e08d32fbc36f13c">getDepth</a> () const override</td></tr>
<tr class="memdesc:adba68716d832b6100e08d32fbc36f13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:adba68716d832b6100e08d32fbc36f13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d30a9116825ab2c5c209bc2712126bc" id="r_a3d30a9116825ab2c5c209bc2712126bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3d30a9116825ab2c5c209bc2712126bc">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">gridfire::BuildDepthType</a> depth) override</td></tr>
<tr class="memdesc:a3d30a9116825ab2c5c209bc2712126bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a3d30a9116825ab2c5c209bc2712126bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -429,6 +434,10 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the depth of the network. </p>
<dl class="section return"><dt>Returns</dt><dd>The depth of the network, which may indicate the level of detail or complexity in the reaction network.</dd></dl>
<p>This method is intended to provide information about the network's structure, such as how many layers of reactions or species are present. It can be useful for diagnostics and understanding the network's complexity. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -625,6 +634,15 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to look up.</td></tr>
</table>
</dd>
</dl>
<p>This method allows querying the index of a specific species in the engine's internal representation. It is useful for accessing species data efficiently. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -769,6 +787,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Map a NetIn object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the input conditions into a vector of molar abundances, which can be used for further calculations or diagnostics. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine</a>.</p>
</div>
@@ -796,6 +824,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Prime the engine with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>PrimingReport containing information about the priming process.</dd></dl>
<p>This method is used to prepare the engine for calculations by setting up initial conditions, reactions, and species. It may involve compiling reaction rates, initializing internal data structures, and performing any necessary pre-computation. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine</a>.</p>
</div>
@@ -827,6 +865,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Rebuild the network with a specified depth. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>The composition to rebuild the network with. </td></tr>
<tr><td class="paramname">depth</td><td>The desired depth of the network.</td></tr>
</table>
</dd>
</dl>
<p>This method is intended to allow dynamic adjustment of the network's depth, which may involve adding or removing species and reactions based on the specified depth. However, not all engines support this operation. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">gridfire::DynamicEngine</a>.</p>
</div>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -105,12 +105,14 @@ $(function(){initNavTree('class_py_dynamic_network_solver_strategy.html',''); in
<p>This is the complete list of members for <a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a2095abb83ed6229ebb27b4883cec51c4">evaluate</a>(const gridfire::NetIn &amp;netIn) override</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a147a0a543268427a5930143902217ac3">describe_callback_context</a>() const override</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a2095abb83ed6229ebb27b4883cec51c4">evaluate</a>(const gridfire::NetIn &amp;netIn) override</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a4a3fce2a9853e7192354834bf2b36159">PyDynamicNetworkSolverStrategy</a>(gridfire::DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a4a3fce2a9853e7192354834bf2b36159">PyDynamicNetworkSolverStrategy</a>(gridfire::DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html#a112a7babc03858a69d6994a7155370d3">set_callback</a>(const std::any &amp;callback) override</td><td class="entry"><a class="el" href="class_py_dynamic_network_solver_strategy.html">PyDynamicNetworkSolverStrategy</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318">~NetworkSolverStrategy</a>()=default</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318">~NetworkSolverStrategy</a>()=default</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -124,6 +124,12 @@ Private Member Functions</h2></td></tr>
<tr class="memitem:a2095abb83ed6229ebb27b4883cec51c4" id="r_a2095abb83ed6229ebb27b4883cec51c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_net_out.html">gridfire::NetOut</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2095abb83ed6229ebb27b4883cec51c4">evaluate</a> (const <a class="el" href="structgridfire_1_1_net_in.html">gridfire::NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a2095abb83ed6229ebb27b4883cec51c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates the network for a given timestep. <br /></td></tr>
<tr class="separator:a2095abb83ed6229ebb27b4883cec51c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a112a7babc03858a69d6994a7155370d3" id="r_a112a7babc03858a69d6994a7155370d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a112a7babc03858a69d6994a7155370d3">set_callback</a> (const std::any &amp;callback) override</td></tr>
<tr class="memdesc:a112a7babc03858a69d6994a7155370d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the callback function to be called at the end of each timestep. <br /></td></tr>
<tr class="separator:a112a7babc03858a69d6994a7155370d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a147a0a543268427a5930143902217ac3" id="r_a147a0a543268427a5930143902217ac3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a147a0a543268427a5930143902217ac3">describe_callback_context</a> () const override</td></tr>
<tr class="memdesc:a147a0a543268427a5930143902217ac3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describe the context that will be passed to the callback function. <br /></td></tr>
<tr class="separator:a147a0a543268427a5930143902217ac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -175,6 +181,37 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a147a0a543268427a5930143902217ac3" name="a147a0a543268427a5930143902217ac3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a147a0a543268427a5930143902217ac3">&#9670;&#160;</a></span>describe_callback_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt; PyDynamicNetworkSolverStrategy::describe_callback_context </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Describe the context that will be passed to the callback function. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector of tuples, each containing a string for the parameter's name and a string for its type.</dd></dl>
<p>This method should be overridden by derived classes to provide a description of the context that will be passed to the callback function. The intent of this method is that an end user can investigate the context that will be passed to the callback function, and use this information to craft their own callback function. </p>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ae09169769774f17df8701c42a64ed656">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<a id="a2095abb83ed6229ebb27b4883cec51c4" name="a2095abb83ed6229ebb27b4883cec51c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2095abb83ed6229ebb27b4883cec51c4">&#9670;&#160;</a></span>evaluate()</h2>
@@ -209,6 +246,42 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ace539b0482db171845ff1bd38d76b70f">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<a id="a112a7babc03858a69d6994a7155370d3" name="a112a7babc03858a69d6994a7155370d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a112a7babc03858a69d6994a7155370d3">&#9670;&#160;</a></span>set_callback()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void PyDynamicNetworkSolverStrategy::set_callback </td>
<td>(</td>
<td class="paramtype">const std::any &amp;</td> <td class="paramname"><span class="paramname"><em>callback</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel private">private</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>set the callback function to be called at the end of each timestep. </p>
<p>This function allows the user to set a callback function that will be called at the end of each timestep. The callback function will receive a <a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>::&lt;SOMESOLVER&gt;::TimestepContext object. Note that depending on the solver, this context may contain different information. Further, the exact signature of the callback function is left up to each solver. Every solver should provide a type or type alias TimestepCallback that defines the signature of the callback function so that the user can easily get that type information.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">callback</td><td>The callback function to be called at the end of each timestep. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a4d97ee85933d5e5f90d4194bb021a1dc">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>

View File

@@ -1,5 +1,7 @@
var class_py_dynamic_network_solver_strategy =
[
[ "PyDynamicNetworkSolverStrategy", "class_py_dynamic_network_solver_strategy.html#a4a3fce2a9853e7192354834bf2b36159", null ],
[ "evaluate", "class_py_dynamic_network_solver_strategy.html#a2095abb83ed6229ebb27b4883cec51c4", null ]
[ "describe_callback_context", "class_py_dynamic_network_solver_strategy.html#a147a0a543268427a5930143902217ac3", null ],
[ "evaluate", "class_py_dynamic_network_solver_strategy.html#a2095abb83ed6229ebb27b4883cec51c4", null ],
[ "set_callback", "class_py_dynamic_network_solver_strategy.html#a112a7babc03858a69d6994a7155370d3", null ]
];

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -154,13 +154,13 @@ $(function(){initNavTree('classes.html',''); initResizable(true); });
<dd><a class="el" href="structgridfire_1_1_q_s_e_cache_config.html">QSECacheConfig</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html">QSECacheKey</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html">MultiscalePartitioningEngineView::QSEGroup</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
<dd><a class="el" href="structgridfire_1_1reaction_1_1_rate_coefficient_set.html">RateCoefficientSet</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd><dd><a class="el" href="structgridfire_1_1partition_1_1record_1_1_rauscher_thielemann_partition_data_record.html">RauscherThielemannPartitionDataRecord</a> (<a class="el" href="namespacegridfire_1_1partition_1_1record.html">gridfire::partition::record</a>)</dd><dd><a class="el" href="classgridfire_1_1partition_1_1_rauscher_thielemann_partition_function.html">RauscherThielemannPartitionFunction</a> (<a class="el" href="namespacegridfire_1_1partition.html">gridfire::partition</a>)</dd><dd><a class="el" href="classgridfire_1_1_reaction.html">Reaction</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd><dd><a class="el" href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html">AdaptiveEngineView::ReactionFlow</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="structgridfire_1_1reaclib_1_1_reaction_record.html">ReactionRecord</a> (<a class="el" href="namespacegridfire_1_1reaclib.html">gridfire::reaclib</a>)</dd><dd><a class="el" href="struct_r_h_s_functor.html">RHSFunctor</a></dd><dd><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html">DirectNetworkSolver::RHSManager</a> (<a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>)</dd></dl>
<dd><a class="el" href="structgridfire_1_1reaction_1_1_rate_coefficient_set.html">RateCoefficientSet</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd><dd><a class="el" href="structgridfire_1_1partition_1_1record_1_1_rauscher_thielemann_partition_data_record.html">RauscherThielemannPartitionDataRecord</a> (<a class="el" href="namespacegridfire_1_1partition_1_1record.html">gridfire::partition::record</a>)</dd><dd><a class="el" href="classgridfire_1_1partition_1_1_rauscher_thielemann_partition_function.html">RauscherThielemannPartitionFunction</a> (<a class="el" href="namespacegridfire_1_1partition.html">gridfire::partition</a>)</dd><dd><a class="el" href="classgridfire_1_1_reaction.html">Reaction</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">Reaction</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd><dd><a class="el" href="structgridfire_1_1_adaptive_engine_view_1_1_reaction_flow.html">AdaptiveEngineView::ReactionFlow</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd><dd><a class="el" href="structgridfire_1_1reaclib_1_1_reaction_record.html">ReactionRecord</a> (<a class="el" href="namespacegridfire_1_1reaclib.html">gridfire::reaclib</a>)</dd><dd><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html">DirectNetworkSolver::RHSManager</a> (<a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="classgridfire_1_1screening_1_1_screening_model.html">ScreeningModel</a> (<a class="el" href="namespacegridfire_1_1screening.html">gridfire::screening</a>)</dd><dd><a class="el" href="classgridfire_1_1io_1_1_simple_reaction_list_file_parser.html">SimpleReactionListFileParser</a> (<a class="el" href="namespacegridfire_1_1io.html">gridfire::io</a>)</dd><dd><a class="el" href="classgridfire_1_1exceptions_1_1_stale_engine_error.html">StaleEngineError</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">StaleEngineError</a> (<a class="el" href="namespacegridfire_1_1expectations.html">gridfire::expectations</a>)</dd><dd><a class="el" href="classgridfire_1_1exceptions_1_1_stale_engine_trigger.html">StaleEngineTrigger</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1exceptions_1_1_stale_engine_trigger_1_1state.html">StaleEngineTrigger::state</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd></dl>
<dd><a class="el" href="classgridfire_1_1screening_1_1_screening_model.html">ScreeningModel</a> (<a class="el" href="namespacegridfire_1_1screening.html">gridfire::screening</a>)</dd><dd><a class="el" href="classgridfire_1_1io_1_1_simple_reaction_list_file_parser.html">SimpleReactionListFileParser</a> (<a class="el" href="namespacegridfire_1_1io.html">gridfire::io</a>)</dd><dd><a class="el" href="structgridfire_1_1solver_1_1_solver_context_base.html">SolverContextBase</a> (<a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>)</dd><dd><a class="el" href="classgridfire_1_1exceptions_1_1_stale_engine_error.html">StaleEngineError</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1expectations_1_1_stale_engine_error.html">StaleEngineError</a> (<a class="el" href="namespacegridfire_1_1expectations.html">gridfire::expectations</a>)</dd><dd><a class="el" href="classgridfire_1_1exceptions_1_1_stale_engine_trigger.html">StaleEngineTrigger</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1exceptions_1_1_stale_engine_trigger_1_1state.html">StaleEngineTrigger::state</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd><dd><a class="el" href="structgridfire_1_1_step_derivatives.html">StepDerivatives</a> (<a class="el" href="namespacegridfire.html">gridfire</a>)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="classgridfire_1_1reaction_1_1_templated_reaction_set.html">TemplatedReactionSet</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd></dl>
<dd><a class="el" href="classgridfire_1_1reaction_1_1_templated_reaction_set.html">TemplatedReactionSet</a> (<a class="el" href="namespacegridfire_1_1reaction.html">gridfire::reaction</a>)</dd><dd><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html">DirectNetworkSolver::TimestepContext</a> (<a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="classgridfire_1_1exceptions_1_1_unable_to_set_network_reactions_error.html">UnableToSetNetworkReactionsError</a> (<a class="el" href="namespacegridfire_1_1exceptions.html">gridfire::exceptions</a>)</dd></dl>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -183,17 +183,22 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:a0ab1199f900a58f309c3c36532c9164f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the screening model from the base engine. <br /></td></tr>
<tr class="separator:a0ab1199f900a58f309c3c36532c9164f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9055feb245524a5a9549ace935f059ff" id="r_a9055feb245524a5a9549ace935f059ff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9055feb245524a5a9549ace935f059ff">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a9055feb245524a5a9549ace935f059ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:a9055feb245524a5a9549ace935f059ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d0237956bf3ec7230bc51d88e7f8019" id="r_a7d0237956bf3ec7230bc51d88e7f8019"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7d0237956bf3ec7230bc51d88e7f8019">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a7d0237956bf3ec7230bc51d88e7f8019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a7d0237956bf3ec7230bc51d88e7f8019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70005361262bc180d4417b608661e3c3" id="r_a70005361262bc180d4417b608661e3c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a70005361262bc180d4417b608661e3c3">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a70005361262bc180d4417b608661e3c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:a70005361262bc180d4417b608661e3c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_dynamic_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_dynamic_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -1093,6 +1098,15 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to look up.</td></tr>
</table>
</dd>
</dl>
<p>This method allows querying the index of a specific species in the engine's internal representation. It is useful for accessing species data efficiently. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1399,6 +1413,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the input conditions into a vector of molar abundances, which can be used for further calculations or diagnostics. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1426,6 +1450,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Prime the engine with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
<p>This method is used to prepare the engine for calculations by setting up initial conditions, reactions, and species. It may involve compiling reaction rates, initializing internal data structures, and performing any necessary pre-computation. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine</a>.</p>
</div>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -174,17 +174,22 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:a3c657b82a0117118a4bb0ce7f624ae0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the screening model from the base engine. <br /></td></tr>
<tr class="separator:a3c657b82a0117118a4bb0ce7f624ae0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfee22688617ffe91c69be93049c89b3" id="r_abfee22688617ffe91c69be93049c89b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abfee22688617ffe91c69be93049c89b3">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:abfee22688617ffe91c69be93049c89b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:abfee22688617ffe91c69be93049c89b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72789c1c3379594b65b560da50192de2" id="r_a72789c1c3379594b65b560da50192de2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a72789c1c3379594b65b560da50192de2">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a72789c1c3379594b65b560da50192de2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a72789c1c3379594b65b560da50192de2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13033abd3b44904f98b58c93e22da460" id="r_a13033abd3b44904f98b58c93e22da460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13033abd3b44904f98b58c93e22da460">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a13033abd3b44904f98b58c93e22da460"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:a13033abd3b44904f98b58c93e22da460"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_dynamic_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_dynamic_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -797,6 +802,15 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to look up.</td></tr>
</table>
</dd>
</dl>
<p>This method allows querying the index of a specific species in the engine's internal representation. It is useful for accessing species data efficiently. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -986,6 +1000,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the input conditions into a vector of molar abundances, which can be used for further calculations or diagnostics. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1127,6 +1151,16 @@ Private Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Prime the engine with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
<p>This method is used to prepare the engine for calculations by setting up initial conditions, reactions, and species. It may involve compiling reaction rates, initializing internal data structures, and performing any necessary pre-computation. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine</a>.</p>
</div>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -168,14 +168,19 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:a7a203f8e0f3a6744ddc912dfbcfdbcc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current electron screening model. <br /></td></tr>
<tr class="separator:a7a203f8e0f3a6744ddc912dfbcfdbcc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3d56a8b9161b9cc7f4da51f6bf7e8c9" id="r_ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const =0</td></tr>
<tr class="memdesc:ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:ad3d56a8b9161b9cc7f4da51f6bf7e8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55f1b7e5ebe2840e1d7c54665ca5411a" id="r_a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a55f1b7e5ebe2840e1d7c54665ca5411a">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const =0</td></tr>
<tr class="memdesc:a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a55f1b7e5ebe2840e1d7c54665ca5411a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21c34f59c080a853fafa38a25175124e" id="r_a21c34f59c080a853fafa38a25175124e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21c34f59c080a853fafa38a25175124e">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn)=0</td></tr>
<tr class="memdesc:a21c34f59c080a853fafa38a25175124e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:a21c34f59c080a853fafa38a25175124e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -394,6 +399,10 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the depth of the network. </p>
<dl class="section return"><dt>Returns</dt><dd>The depth of the network, which may indicate the level of detail or complexity in the reaction network.</dd></dl>
<p>This method is intended to provide information about the network's structure, such as how many layers of reactions or species are present. It can be useful for diagnostics and understanding the network's complexity. </p>
<p>Reimplemented in <a class="el" href="classgridfire_1_1_graph_engine.html#a166a5f4349580f9aa0b930afec73fcc4">gridfire::GraphEngine</a>, and <a class="el" href="class_py_dynamic_engine.html#adba68716d832b6100e08d32fbc36f13c">PyDynamicEngine</a>.</p>
</div>
@@ -562,6 +571,15 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Get the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species to look up.</td></tr>
</table>
</dd>
</dl>
<p>This method allows querying the index of a specific species in the engine's internal representation. It is useful for accessing species data efficiently. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a9055feb245524a5a9549ace935f059ff">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#abfee22688617ffe91c69be93049c89b3">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a914f6abc61805cddaebcb8f3cf470dda">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a91d32b7197fcb27ee697d5bfde960f3f">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a2ee1d745c1c21b9fcb652c96c42f1091">PyDynamicEngine</a>.</p>
</div>
@@ -706,6 +724,16 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the input conditions into a vector of molar abundances, which can be used for further calculations or diagnostics. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a7d0237956bf3ec7230bc51d88e7f8019">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a72789c1c3379594b65b560da50192de2">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a27f3a928e1f6bbe7e847cffed6db729f">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#aada497e8df74a295fdf5df7d7cdf64e0">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#a61bb4b430fe740cfb2c24e5cc673e4ac">PyDynamicEngine</a>.</p>
</div>
@@ -733,6 +761,16 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Prime the engine with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
<p>This method is used to prepare the engine for calculations by setting up initial conditions, reactions, and species. It may involve compiling reaction rates, initializing internal data structures, and performing any necessary pre-computation. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#a70005361262bc180d4417b608661e3c3">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#a13033abd3b44904f98b58c93e22da460">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#ae7a371be61ab09b3fa4a93f05bd44e5e">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a05730ced13ac5331060ca011f0da6235">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#ac22a10412be6649bf379e6d61113c878">PyDynamicEngine</a>.</p>
</div>
@@ -764,6 +802,16 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Rebuild the network with a specified depth. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>The composition to rebuild the network with. </td></tr>
<tr><td class="paramname">depth</td><td>The desired depth of the network.</td></tr>
</table>
</dd>
</dl>
<p>This method is intended to allow dynamic adjustment of the network's depth, which may involve adding or removing species and reactions based on the specified depth. However, not all engines support this operation. </p>
<p>Reimplemented in <a class="el" href="classgridfire_1_1_graph_engine.html#ad9d6c70ace5cbbf7f3aa7b31fce39490">gridfire::GraphEngine</a>, and <a class="el" href="class_py_dynamic_engine.html#a3d30a9116825ab2c5c209bc2712126bc">PyDynamicEngine</a>.</p>
</div>
@@ -831,7 +879,7 @@ Public Member Functions</h2></td></tr>
</div><!-- fragment --></dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The engine will use the specified screening model for subsequent rate calculations. </dd></dl>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#aae4ddbef1c4e2202fd236221a4bf376b">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#abf2da57c83c3c4c635cb301f53088258">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a8110e687844f921438bb517e1d8ce62f">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1a0c0a0ade632eb10f0eecab828a059f">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#afa3abfd612033336a656f092721c14ac">PyDynamicEngine</a>.</p>
<p>Implemented in <a class="el" href="classgridfire_1_1_adaptive_engine_view.html#aae4ddbef1c4e2202fd236221a4bf376b">gridfire::AdaptiveEngineView</a>, <a class="el" href="classgridfire_1_1_defined_engine_view.html#abf2da57c83c3c4c635cb301f53088258">gridfire::DefinedEngineView</a>, <a class="el" href="classgridfire_1_1_graph_engine.html#a9bc768ca8ca59d442c0d05cb04e36d7c">gridfire::GraphEngine</a>, <a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html#a1a0c0a0ade632eb10f0eecab828a059f">gridfire::MultiscalePartitioningEngineView</a>, and <a class="el" href="class_py_dynamic_engine.html#afa3abfd612033336a656f092721c14ac">PyDynamicEngine</a>.</p>
</div>
</div>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -180,17 +180,22 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:a3c657b82a0117118a4bb0ce7f624ae0c inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the screening model from the base engine. <br /></td></tr>
<tr class="separator:a3c657b82a0117118a4bb0ce7f624ae0c inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_abfee22688617ffe91c69be93049c89b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#abfee22688617ffe91c69be93049c89b3">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_a72789c1c3379594b65b560da50192de2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#a72789c1c3379594b65b560da50192de2">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_a13033abd3b44904f98b58c93e22da460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#a13033abd3b44904f98b58c93e22da460">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_dynamic_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_dynamic_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -172,7 +172,7 @@ $(function(){initNavTree('classgridfire_1_1_graph_engine.html',''); initResizabl
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a8d0c0bd54a2908cff62dae7af0c149b5">reserveJacobianMatrix</a>() const</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a371ba0881d6903ddb2d586faa61805d0">setNetworkReactions</a>(const reaction::LogicalReactionSet &amp;reactions) override</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a6c5410878496abc349ba30b691cdf0f1">setPrecomputation</a>(bool precompute)</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a8110e687844f921438bb517e1d8ce62f">setScreeningModel</a>(screening::ScreeningType) override</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a9bc768ca8ca59d442c0d05cb04e36d7c">setScreeningModel</a>(screening::ScreeningType model) override</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a409991d527ea4d4b05d1af907fe5d197">setUseReverseReactions</a>(bool useReverse)</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#acdce8d87e23a2cd1504bc9472e538c0f">syncInternalMaps</a>()</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html#a5ac7cff23e70bd07ba7e510b753e2ab6">update</a>(const NetIn &amp;netIn) override</td><td class="entry"><a class="el" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -191,37 +191,49 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a832e2fe066381811a3e0464806ff5e95" id="r_a832e2fe066381811a3e0464806ff5e95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a832e2fe066381811a3e0464806ff5e95">exportToCSV</a> (const std::string &amp;filename) const</td></tr>
<tr class="memdesc:a832e2fe066381811a3e0464806ff5e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exports the network to a CSV file for analysis. <br /></td></tr>
<tr class="separator:a832e2fe066381811a3e0464806ff5e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8110e687844f921438bb517e1d8ce62f" id="r_a8110e687844f921438bb517e1d8ce62f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8110e687844f921438bb517e1d8ce62f">setScreeningModel</a> (<a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>) override</td></tr>
<tr class="memdesc:a8110e687844f921438bb517e1d8ce62f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the electron screening model. <br /></td></tr>
<tr class="separator:a8110e687844f921438bb517e1d8ce62f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9bc768ca8ca59d442c0d05cb04e36d7c" id="r_a9bc768ca8ca59d442c0d05cb04e36d7c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9bc768ca8ca59d442c0d05cb04e36d7c">setScreeningModel</a> (<a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> model) override</td></tr>
<tr class="memdesc:a9bc768ca8ca59d442c0d05cb04e36d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the electron screening model for reaction rate calculations. <br /></td></tr>
<tr class="separator:a9bc768ca8ca59d442c0d05cb04e36d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a697f2004e0d02c59e83c7890742d7c9a" id="r_a697f2004e0d02c59e83c7890742d7c9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a697f2004e0d02c59e83c7890742d7c9a">getScreeningModel</a> () const override</td></tr>
<tr class="memdesc:a697f2004e0d02c59e83c7890742d7c9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current electron screening model. <br /></td></tr>
<tr class="memdesc:a697f2004e0d02c59e83c7890742d7c9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the current electron screening model. <br /></td></tr>
<tr class="separator:a697f2004e0d02c59e83c7890742d7c9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c5410878496abc349ba30b691cdf0f1" id="r_a6c5410878496abc349ba30b691cdf0f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c5410878496abc349ba30b691cdf0f1">setPrecomputation</a> (bool precompute)</td></tr>
<tr class="memdesc:a6c5410878496abc349ba30b691cdf0f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether to precompute reaction rates. <br /></td></tr>
<tr class="separator:a6c5410878496abc349ba30b691cdf0f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015f8975701f028c29835d3a9794e00f" id="r_a015f8975701f028c29835d3a9794e00f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a015f8975701f028c29835d3a9794e00f">isPrecomputationEnabled</a> () const</td></tr>
<tr class="memdesc:a015f8975701f028c29835d3a9794e00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if precomputation of reaction rates is enabled. <br /></td></tr>
<tr class="separator:a015f8975701f028c29835d3a9794e00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add98ece49ec5c538bddf3cc77004fe44" id="r_add98ece49ec5c538bddf3cc77004fe44"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgridfire_1_1partition_1_1_partition_function.html">partition::PartitionFunction</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#add98ece49ec5c538bddf3cc77004fe44">getPartitionFunction</a> () const</td></tr>
<tr class="memdesc:add98ece49ec5c538bddf3cc77004fe44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the partition function used for reaction rate calculations. <br /></td></tr>
<tr class="separator:add98ece49ec5c538bddf3cc77004fe44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b7b85f824e1021ae6e56b644db53b28" id="r_a0b7b85f824e1021ae6e56b644db53b28"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b7b85f824e1021ae6e56b644db53b28">calculateReverseRate</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, double T9) const</td></tr>
<tr class="memdesc:a0b7b85f824e1021ae6e56b644db53b28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reverse rate for a given reaction. <br /></td></tr>
<tr class="separator:a0b7b85f824e1021ae6e56b644db53b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01fc9fd5d576b66d07360d05e821c755" id="r_a01fc9fd5d576b66d07360d05e821c755"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a01fc9fd5d576b66d07360d05e821c755">calculateReverseRateTwoBody</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, const double T9, const double forwardRate, const double expFactor) const</td></tr>
<tr class="memdesc:a01fc9fd5d576b66d07360d05e821c755"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the reverse rate for a two-body reaction. <br /></td></tr>
<tr class="separator:a01fc9fd5d576b66d07360d05e821c755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af28950c5af3a92eb03a1a64ed0f913e7" id="r_af28950c5af3a92eb03a1a64ed0f913e7"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af28950c5af3a92eb03a1a64ed0f913e7">calculateReverseRateTwoBodyDerivative</a> (const <a class="el" href="classgridfire_1_1reaction_1_1_reaction.html">reaction::Reaction</a> &amp;reaction, const double T9, const double reverseRate) const</td></tr>
<tr class="separator:af28950c5af3a92eb03a1a64ed0f913e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7a210d9ab13ad5fb0c612f027acabd0" id="r_ae7a210d9ab13ad5fb0c612f027acabd0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae7a210d9ab13ad5fb0c612f027acabd0">isUsingReverseReactions</a> () const</td></tr>
<tr class="memdesc:ae7a210d9ab13ad5fb0c612f027acabd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if reverse reactions are enabled. <br /></td></tr>
<tr class="separator:ae7a210d9ab13ad5fb0c612f027acabd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a409991d527ea4d4b05d1af907fe5d197" id="r_a409991d527ea4d4b05d1af907fe5d197"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a409991d527ea4d4b05d1af907fe5d197">setUseReverseReactions</a> (bool useReverse)</td></tr>
<tr class="memdesc:a409991d527ea4d4b05d1af907fe5d197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether to use reverse reactions in the engine. <br /></td></tr>
<tr class="separator:a409991d527ea4d4b05d1af907fe5d197"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a914f6abc61805cddaebcb8f3cf470dda" id="r_a914f6abc61805cddaebcb8f3cf470dda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a914f6abc61805cddaebcb8f3cf470dda">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:a914f6abc61805cddaebcb8f3cf470dda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the index of a species in the network. <br /></td></tr>
<tr class="separator:a914f6abc61805cddaebcb8f3cf470dda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27f3a928e1f6bbe7e847cffed6db729f" id="r_a27f3a928e1f6bbe7e847cffed6db729f"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a27f3a928e1f6bbe7e847cffed6db729f">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a27f3a928e1f6bbe7e847cffed6db729f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maps the <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a27f3a928e1f6bbe7e847cffed6db729f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7a371be61ab09b3fa4a93f05bd44e5e" id="r_ae7a371be61ab09b3fa4a93f05bd44e5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae7a371be61ab09b3fa4a93f05bd44e5e">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:ae7a371be61ab09b3fa4a93f05bd44e5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the engine for calculations with initial conditions. <br /></td></tr>
<tr class="separator:ae7a371be61ab09b3fa4a93f05bd44e5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a166a5f4349580f9aa0b930afec73fcc4" id="r_a166a5f4349580f9aa0b930afec73fcc4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a166a5f4349580f9aa0b930afec73fcc4">getDepth</a> () const override</td></tr>
<tr class="memdesc:a166a5f4349580f9aa0b930afec73fcc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the depth of the network. <br /></td></tr>
<tr class="separator:a166a5f4349580f9aa0b930afec73fcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9d6c70ace5cbbf7f3aa7b31fce39490" id="r_ad9d6c70ace5cbbf7f3aa7b31fce39490"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad9d6c70ace5cbbf7f3aa7b31fce39490">rebuild</a> (const fourdst::composition::Composition &amp;comp, const <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth) override</td></tr>
<tr class="memdesc:ad9d6c70ace5cbbf7f3aa7b31fce39490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuilds the reaction network based on a new composition. <br /></td></tr>
<tr class="separator:ad9d6c70ace5cbbf7f3aa7b31fce39490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -845,6 +857,17 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Calculates the reverse rate for a given reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the reverse rate. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reverse rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the reverse rate based on the forward rate and thermodynamic properties of the reaction. </p>
</div>
</div>
<a id="a01fc9fd5d576b66d07360d05e821c755" name="a01fc9fd5d576b66d07360d05e821c755"></a>
@@ -884,6 +907,19 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Calculates the reverse rate for a two-body reaction. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">reaction</td><td>The reaction for which to calculate the reverse rate. </td></tr>
<tr><td class="paramname">T9</td><td>Temperature in units of 10^9 K. </td></tr>
<tr><td class="paramname">forwardRate</td><td>The forward rate of the reaction. </td></tr>
<tr><td class="paramname">expFactor</td><td>Exponential factor for the reaction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reverse rate for the two-body reaction (e.g., mol/g/s).</dd></dl>
<p>This method computes the reverse rate using the forward rate and thermodynamic properties of the reaction. </p>
</div>
</div>
<a id="af28950c5af3a92eb03a1a64ed0f913e7" name="af28950c5af3a92eb03a1a64ed0f913e7"></a>
@@ -1230,6 +1266,10 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Gets the depth of the network. </p>
<dl class="section return"><dt>Returns</dt><dd>The build depth of the network.</dd></dl>
<p>This method returns the current build depth of the reaction network, which indicates how many levels of reactions are included in the network. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1394,6 +1434,10 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Gets the partition function used for reaction rate calculations. </p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the PartitionFunction object.</dd></dl>
<p>This method provides access to the partition function used in the engine, which is essential for calculating thermodynamic properties and reaction rates. </p>
</div>
</div>
<a id="a697f2004e0d02c59e83c7890742d7c9a" name="a697f2004e0d02c59e83c7890742d7c9a"></a>
@@ -1419,12 +1463,11 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Get the current electron screening model. </p>
<p>Gets the current electron screening model. </p>
<dl class="section return"><dt>Returns</dt><dd>The currently active screening model type.</dd></dl>
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line"><a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> currentModel = myEngine.getScreeningModel();</div>
<p>Example usage: </p><div class="fragment"><div class="line"><a class="code hl_enumeration" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">screening::ScreeningType</a> currentModel = engine.getScreeningModel();</div>
<div class="ttc" id="anamespacegridfire_1_1screening_html_aa82aafbc4f8c28d0a75b60798e3a7d25"><div class="ttname"><a href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25">gridfire::screening::ScreeningType</a></div><div class="ttdeci">ScreeningType</div><div class="ttdoc">Enumerates the available plasma screening models.</div><div class="ttdef"><b>Definition</b> screening_types.h:15</div></div>
</div><!-- fragment --> </dd></dl>
</div><!-- fragment -->
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1488,6 +1531,16 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Gets the index of a species in the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">species</td><td>The species for which to get the index. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Index of the species in the network, or -1 if not found.</dd></dl>
<p>This method returns the index of the given species in the network's species vector. If the species is not found, it returns -1. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1640,6 +1693,10 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Checks if precomputation of reaction rates is enabled. </p>
<dl class="section return"><dt>Returns</dt><dd>True if precomputation is enabled, false otherwise.</dd></dl>
<p>This method allows checking the current state of precomputation for reaction rates in the engine. </p>
</div>
</div>
<a id="af04a9f8a629d6f6c58c477af0f1ab9e5" name="af04a9f8a629d6f6c58c477af0f1ab9e5"></a>
@@ -1692,6 +1749,10 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Checks if reverse reactions are enabled. </p>
<dl class="section return"><dt>Returns</dt><dd>True if reverse reactions are enabled, false otherwise.</dd></dl>
<p>This method allows checking whether the engine is configured to use reverse reactions in its calculations. </p>
</div>
</div>
<a id="a27f3a928e1f6bbe7e847cffed6db729f" name="a27f3a928e1f6bbe7e847cffed6db729f"></a>
@@ -1717,6 +1778,16 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Maps the <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object containing the input conditions. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector of molar abundances corresponding to the species in the network.</dd></dl>
<p>This method converts the <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object into a vector of molar abundances for each species in the network, which can be used for further calculations. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1825,6 +1896,16 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Prepares the engine for calculations with initial conditions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">netIn</td><td>The input conditions for the network. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structgridfire_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a> containing information about the priming process.</dd></dl>
<p>This method initializes the engine with the provided input conditions, setting up reactions, species, and precomputing necessary data. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1856,6 +1937,16 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Rebuilds the reaction network based on a new composition. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">comp</td><td>The new composition to use for rebuilding the network. </td></tr>
<tr><td class="paramname">depth</td><td>The build depth to use for the network.</td></tr>
</table>
</dd>
</dl>
<p>This method rebuilds the reaction network using the provided composition and build depth. It updates all internal data structures accordingly. </p>
<p>Reimplemented from <a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">gridfire::DynamicEngine</a>.</p>
</div>
@@ -1964,10 +2055,19 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Sets whether to precompute reaction rates. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">precompute</td><td>True to enable precomputation, false to disable.</td></tr>
</table>
</dd>
</dl>
<p>This method allows enabling or disabling precomputation of reaction rates for performance optimization. When enabled, reaction rates are computed once and stored for later use. </p>
</div>
</div>
<a id="a8110e687844f921438bb517e1d8ce62f" name="a8110e687844f921438bb517e1d8ce62f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8110e687844f921438bb517e1d8ce62f">&#9670;&#160;</a></span>setScreeningModel()</h2>
<a id="a9bc768ca8ca59d442c0d05cb04e36d7c" name="a9bc768ca8ca59d442c0d05cb04e36d7c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9bc768ca8ca59d442c0d05cb04e36d7c">&#9670;&#160;</a></span>setScreeningModel()</h2>
<div class="memitem">
<div class="memproto">
@@ -1989,18 +2089,14 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Set the electron screening model. </p>
<p>Sets the electron screening model for reaction rate calculations. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>The type of screening model to use for reaction rate calculations.</td></tr>
<tr><td class="paramname">model</td><td>The type of screening model to use.</td></tr>
</table>
</dd>
</dl>
<p>This method allows changing the screening model at runtime. Screening corrections account for the electrostatic shielding of nuclei by electrons, which affects reaction rates in dense stellar plasmas.</p>
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line">myEngine.setScreeningModel(<a class="code hl_enumvalue" href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25a32c7d8943bec86a6d7d5e03598670ca8">screening::ScreeningType::WEAK</a>);</div>
<div class="ttc" id="anamespacegridfire_1_1screening_html_aa82aafbc4f8c28d0a75b60798e3a7d25a32c7d8943bec86a6d7d5e03598670ca8"><div class="ttname"><a href="namespacegridfire_1_1screening.html#aa82aafbc4f8c28d0a75b60798e3a7d25a32c7d8943bec86a6d7d5e03598670ca8">gridfire::screening::ScreeningType::WEAK</a></div><div class="ttdeci">@ WEAK</div><div class="ttdoc">Weak screening model (Salpeter, 1954).</div><div class="ttdef"><b>Definition</b> screening_types.h:35</div></div>
</div><!-- fragment --></dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The engine will use the specified screening model for subsequent rate calculations. </dd></dl>
<p>This method allows changing the screening model at runtime. Screening corrections account for the electrostatic shielding of nuclei by electrons, which affects reaction rates in dense stellar plasmas. </p>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd">gridfire::DynamicEngine</a>.</p>
@@ -2021,6 +2117,15 @@ template&lt;IsArithmeticOrAD T&gt; </div>
</table>
</div><div class="memdoc">
<p>Sets whether to use reverse reactions in the engine. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">useReverse</td><td>True to enable reverse reactions, false to disable.</td></tr>
</table>
</dd>
</dl>
<p>This method allows enabling or disabling reverse reactions in the engine. If disabled, only forward reactions will be considered in calculations. </p>
</div>
</div>
<a id="acdce8d87e23a2cd1504bc9472e538c0f" name="acdce8d87e23a2cd1504bc9472e538c0f"></a>

View File

@@ -49,7 +49,7 @@ var classgridfire_1_1_graph_engine =
[ "reserveJacobianMatrix", "classgridfire_1_1_graph_engine.html#a8d0c0bd54a2908cff62dae7af0c149b5", null ],
[ "setNetworkReactions", "classgridfire_1_1_graph_engine.html#a371ba0881d6903ddb2d586faa61805d0", null ],
[ "setPrecomputation", "classgridfire_1_1_graph_engine.html#a6c5410878496abc349ba30b691cdf0f1", null ],
[ "setScreeningModel", "classgridfire_1_1_graph_engine.html#a8110e687844f921438bb517e1d8ce62f", null ],
[ "setScreeningModel", "classgridfire_1_1_graph_engine.html#a9bc768ca8ca59d442c0d05cb04e36d7c", null ],
[ "setUseReverseReactions", "classgridfire_1_1_graph_engine.html#a409991d527ea4d4b05d1af907fe5d197", null ],
[ "syncInternalMaps", "classgridfire_1_1_graph_engine.html#acdce8d87e23a2cd1504bc9472e538c0f", null ],
[ "update", "classgridfire_1_1_graph_engine.html#a5ac7cff23e70bd07ba7e510b753e2ab6", null ],

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -228,8 +228,10 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>
@@ -308,14 +310,15 @@ Private Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An engine view that partitions the reaction network into multiple groups based on timescales. </p>
<p>@purpose This class is designed to accelerate the integration of stiff nuclear reaction networks. It identifies species that react on very short timescales ("fast" species) and treats them as being in Quasi-Steady-State Equilibrium (QSE). Their abundances are solved for algebraically, removing their stiff differential equations from the system. The remaining "slow" or "dynamic" species are integrated normally. This significantly improves the stability and performance of the solver.</p>
<p>@how The core logic resides in the <code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> and <code><a class="el" href="#a4bc879246c6fbd8633b05052858df51d" title="Equilibrates the network by partitioning and solving for QSE abundances.">equilibrateNetwork()</a></code> methods. The partitioning process involves:</p><ol type="1">
<dl class="section user"><dt>Purpose</dt><dd>This class is designed to accelerate the integration of stiff nuclear reaction networks. It identifies species that react on very short timescales ("fast" species) and treats them as being in Quasi-Steady-State Equilibrium (QSE). Their abundances are solved for algebraically, removing their stiff differential equations from the system. The remaining "slow" or "dynamic" species are integrated normally. This significantly improves the stability and performance of the solver.</dd></dl>
<dl class="section user"><dt>How</dt><dd>The core logic resides in the <code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> and <code><a class="el" href="#a4bc879246c6fbd8633b05052858df51d" title="Equilibrates the network by partitioning and solving for QSE abundances.">equilibrateNetwork()</a></code> methods. The partitioning process involves:<ol type="1">
<li><b>Timescale Analysis:</b> Using <code>getSpeciesDestructionTimescales</code> from the base engine, all species are sorted by their characteristic timescales.</li>
<li><b>Gap Detection:</b> The sorted list of timescales is scanned for large gaps (e.g., several orders of magnitude) to create distinct "timescale pools".</li>
<li><b>Connectivity Analysis:</b> Each pool is analyzed for internal reaction connectivity to form cohesive groups.</li>
<li><b>Flux Validation:</b> Candidate QSE groups are validated by comparing the total reaction flux <em>within</em> the group to the flux <em>leaving</em> the group. A high internal-to-external flux ratio indicates a valid QSE group.</li>
<li><b>QSE Solve:</b> For valid QSE groups, <code>solveQSEAbundances</code> uses a Levenberg-Marquardt nonlinear solver (<code>Eigen::LevenbergMarquardt</code>) to find the equilibrium abundances of the "algebraic" species, holding the "seed" species constant.</li>
</ol>
</dd></dl>
<p>All calculations are cached using <code><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html" title="Key struct for the QSE abundance cache.">QSECacheKey</a></code> to avoid re-partitioning and re-solving for similar thermodynamic conditions.</p>
<dl class="section user"><dt>Usage Example:</dt><dd><div class="fragment"><div class="line"><span class="comment">// 1. Create a base engine (e.g., GraphEngine)</span></div>
<div class="line"><a class="code hl_class" href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a> baseEngine(composition);</div>
@@ -333,7 +336,7 @@ Private Attributes</h2></td></tr>
<div class="line"><span class="keyword">auto</span> Y_initial = multiscaleEngine.mapNetInToMolarAbundanceVector({equilibratedComp, ...});</div>
<div class="line"><span class="keyword">auto</span> derivatives = multiscaleEngine.calculateRHSAndEnergy(Y_initial, T9, rho);</div>
<div class="ttc" id="aclassgridfire_1_1_graph_engine_html"><div class="ttname"><a href="classgridfire_1_1_graph_engine.html">gridfire::GraphEngine</a></div><div class="ttdoc">A reaction network engine that uses a graph-based representation.</div><div class="ttdef"><b>Definition</b> engine_graph.h:100</div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html">gridfire::MultiscalePartitioningEngineView</a></div><div class="ttdoc">An engine view that partitions the reaction network into multiple groups based on timescales.</div><div class="ttdef"><b>Definition</b> engine_multiscale.h:174</div></div>
<div class="ttc" id="aclassgridfire_1_1_multiscale_partitioning_engine_view_html"><div class="ttname"><a href="classgridfire_1_1_multiscale_partitioning_engine_view.html">gridfire::MultiscalePartitioningEngineView</a></div><div class="ttdoc">An engine view that partitions the reaction network into multiple groups based on timescales.</div><div class="ttdef"><b>Definition</b> engine_multiscale.h:182</div></div>
<div class="ttc" id="astructgridfire_1_1_net_in_html"><div class="ttname"><a href="structgridfire_1_1_net_in.html">gridfire::NetIn</a></div><div class="ttdef"><b>Definition</b> network.h:53</div></div>
</div><!-- fragment --></dd></dl>
<p>&lt;DynamicEngine&gt; </p>
@@ -438,8 +441,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of vectors of species indices, where each inner vector represents a single connected component.</dd></dl>
<p>@purpose To merge timescale pools that are strongly connected by reactions, forming cohesive groups for QSE analysis.</p>
<p>@how For each pool, it builds a reaction connectivity graph using <code>buildConnectivityGraph</code>. It then finds the connected components within that graph using a Breadth-First Search (BFS). The resulting components from all pools are collected and returned. </p>
<dl class="section user"><dt>Purpose</dt><dd>To merge timescale pools that are strongly connected by reactions, forming cohesive groups for QSE analysis.</dd></dl>
<dl class="section user"><dt>How</dt><dd>For each pool, it builds a reaction connectivity graph using <code>buildConnectivityGraph</code>. It then finds the connected components within that graph using a Breadth-First Search (BFS). The resulting components from all pools are collected and returned. </dd></dl>
</div>
</div>
@@ -474,8 +477,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An unordered map representing the adjacency list of the connectivity graph, where keys are species indices and values are vectors of connected species indices.</dd></dl>
<p>@purpose To represent the reaction pathways among a subset of reactions.</p>
<p>@how It iterates through the specified fast reactions. For each reaction, it creates a two-way edge in the graph between every reactant and every product, signifying that mass can flow between them. </p>
<dl class="section user"><dt>Purpose</dt><dd>To represent the reaction pathways among a subset of reactions.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It iterates through the specified fast reactions. For each reaction, it creates a two-way edge in the graph between every reactant and every product, signifying that mass can flow between them. </dd></dl>
</div>
</div>
@@ -510,8 +513,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An unordered map representing the adjacency list of the connectivity graph.</dd></dl>
<p>@purpose To find reaction connections within a specific group of species.</p>
<p>@how It iterates through all reactions in the base engine. If a reaction involves at least two distinct species from the input <code>species_pool</code> (one as a reactant and one as a product), it adds edges between all reactants and products from that reaction that are also in the pool. </p>
<dl class="section user"><dt>Purpose</dt><dd>To find reaction connections within a specific group of species.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It iterates through all reactions in the base engine. If a reaction involves at least two distinct species from the input <code>species_pool</code> (one as a reactant and one as a product), it adds edges between all reactants and products from that reaction that are also in the pool. </dd></dl>
</div>
</div>
@@ -563,8 +566,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Molar flow rate for the reaction (e.g., mol/g/s).</dd></dl>
<p>@purpose To compute the net rate of a single reaction.</p>
<p>@how It first checks the QSE cache. On a hit, it retrieves the cached equilibrium abundances for the algebraic species. It creates a mutable copy of <code>Y_full</code>, overwrites the algebraic species abundances with the cached equilibrium values, and then calls the base engine's <code>calculateMolarReactionFlow</code> with this modified abundance vector.</p>
<dl class="section user"><dt>Purpose</dt><dd>To compute the net rate of a single reaction.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It first checks the QSE cache. On a hit, it retrieves the cached equilibrium abundances for the algebraic species. It creates a mutable copy of <code>Y_full</code>, overwrites the algebraic species abundances with the cached equilibrium values, and then calls the base engine's <code>calculateMolarReactionFlow</code> with this modified abundance vector.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The engine must have a valid QSE cache entry for the given state. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
@@ -619,8 +622,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code>std::expected</code> containing <code><a class="el" href="structgridfire_1_1_step_derivatives.html" title="Structure holding derivatives and energy generation for a network step.">StepDerivatives</a>&lt;double&gt;</code> on success, or a <code>StaleEngineError</code> if the engine's QSE cache does not contain a solution for the given state.</dd></dl>
<p>@purpose To compute the time derivatives for the ODE solver. This implementation modifies the derivatives from the base engine to enforce the QSE condition.</p>
<p>@how It first performs a lookup in the QSE abundance cache (<code>m_qse_abundance_cache</code>). If a cache hit occurs, it calls the base engine's <code>calculateRHSAndEnergy</code>. It then manually sets the time derivatives (<code>dydt</code>) of all identified algebraic species to zero, effectively removing their differential equations from the system being solved.</p>
<dl class="section user"><dt>Purpose</dt><dd>To compute the time derivatives for the ODE solver. This implementation modifies the derivatives from the base engine to enforce the QSE condition.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It first performs a lookup in the QSE abundance cache (<code>m_qse_abundance_cache</code>). If a cache hit occurs, it calls the base engine's <code>calculateRHSAndEnergy</code>. It then manually sets the time derivatives (<code>dydt</code>) of all identified algebraic species to zero, effectively removing their differential equations from the system being solved.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The engine must have been updated via <code><a class="el" href="#a6bee75b5a6e508e6eebf83f0d48c50b8" title="Updates the internal state of the engine, performing partitioning and QSE equilibration.">update()</a></code> or <code><a class="el" href="#a4bc879246c6fbd8633b05052858df51d" title="Equilibrates the network by partitioning and solving for QSE abundances.">equilibrateNetwork()</a></code> for the current thermodynamic conditions, so that a valid entry exists in the QSE cache. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The returned derivatives will have <code>dydt=0</code> for all algebraic species.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
@@ -682,7 +685,7 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html" title="Struct representing a QSE group.">QSEGroup</a></code> structs, ready for flux validation.</dd></dl>
<p>@how For each input pool, it identifies "bridge" reactions that connect the pool to species outside the pool. The reactants of these bridge reactions that are <em>not</em> in the pool are identified as "seed" species. The original pool members are the "algebraic" species. It then bundles the seed and algebraic species into a <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html" title="Struct representing a QSE group.">QSEGroup</a></code> struct.</p>
<dl class="section user"><dt>How</dt><dd>For each input pool, it identifies "bridge" reactions that connect the pool to species outside the pool. The reactants of these bridge reactions that are <em>not</em> in the pool are identified as "seed" species. The original pool members are the "algebraic" species. It then bundles the seed and algebraic species into a <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html" title="Struct representing a QSE group.">QSEGroup</a></code> struct.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The <code>candidate_pools</code> should be connected components from <code>analyzeTimescalePoolConnectivity</code>. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>A list of candidate <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_q_s_e_group.html" title="Struct representing a QSE group.">QSEGroup</a></code> objects is returned. </dd></dl>
@@ -711,8 +714,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The equilibrated composition.</dd></dl>
<p>@purpose A convenience overload for <code>equilibrateNetwork</code>.</p>
<p>@how It unpacks the <code>netIn</code> struct into <code>Y</code>, <code>T9</code>, and <code>rho</code> and then calls the primary <code>equilibrateNetwork</code> method. </p>
<dl class="section user"><dt>Purpose</dt><dd>A convenience overload for <code>equilibrateNetwork</code>.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It unpacks the <code>netIn</code> struct into <code>Y</code>, <code>T9</code>, and <code>rho</code> and then calls the primary <code>equilibrateNetwork</code> method. </dd></dl>
</div>
</div>
@@ -750,8 +753,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A new composition object with the equilibrated abundances.</dd></dl>
<p>@purpose A convenience method to run the full QSE analysis and get an equilibrated composition object as a result.</p>
<p>@how It first calls <code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> with the given state to define the QSE groups. Then, it calls <code><a class="el" href="#a3c5fcb8e3396d74359fd601554c9ffa9" title="Solves for the QSE abundances of the algebraic species in a given state.">solveQSEAbundances()</a></code> to compute the new equilibrium abundances for the algebraic species. Finally, it packs the resulting full abundance vector into a new <code>fourdst::composition::Composition</code> object and returns it.</p>
<dl class="section user"><dt>Purpose</dt><dd>A convenience method to run the full QSE analysis and get an equilibrated composition object as a result.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It first calls <code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> with the given state to define the QSE groups. Then, it calls <code><a class="el" href="#a3c5fcb8e3396d74359fd601554c9ffa9" title="Solves for the QSE abundances of the algebraic species in a given state.">solveQSEAbundances()</a></code> to compute the new equilibrium abundances for the algebraic species. Finally, it packs the resulting full abundance vector into a new <code>fourdst::composition::Composition</code> object and returns it.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The input state (Y, T9, rho) must be a valid physical state. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The engine's internal partition is updated. A new composition object is returned. </dd></dl>
@@ -796,8 +799,8 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@purpose To visualize the partitioned network graph.</p>
<p>@how This method delegates the DOT file export to the base engine. It does not currently add any partitioning information to the output graph. </p>
<dl class="section user"><dt>Purpose</dt><dd>To visualize the partitioned network graph.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This method delegates the DOT file export to the base engine. It does not currently add any partitioning information to the output graph. </dd></dl>
</div>
</div>
@@ -842,8 +845,8 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@purpose To compute the Jacobian matrix required by implicit ODE solvers.</p>
<p>@how It first performs a QSE cache lookup. On a hit, it delegates the full Jacobian calculation to the base engine. While this view could theoretically return a modified, sparser Jacobian reflecting the QSE constraints, the current implementation returns the full Jacobian from the base engine. The solver is expected to handle the algebraic constraints (e.g., via <code>dydt=0</code> from <code>calculateRHSAndEnergy</code>).</p>
<dl class="section user"><dt>Purpose</dt><dd>To compute the Jacobian matrix required by implicit ODE solvers.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It first performs a QSE cache lookup. On a hit, it delegates the full Jacobian calculation to the base engine. While this view could theoretically return a modified, sparser Jacobian reflecting the QSE constraints, the current implementation returns the full Jacobian from the base engine. The solver is expected to handle the algebraic constraints (e.g., via <code>dydt=0</code> from <code>calculateRHSAndEnergy</code>).</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The engine must have a valid QSE cache entry for the given state. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The base engine's internal Jacobian is updated.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
@@ -881,8 +884,8 @@ Private Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Generates the stoichiometry matrix for the network. </p>
<p>@purpose To prepare the stoichiometry matrix for later queries.</p>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#abe76a46784b1ebc8ad67a9eec40d369a" title="Generates the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a></code>. The stoichiometry is based on the full, unpartitioned network. </p>
<dl class="section user"><dt>Purpose</dt><dd>To prepare the stoichiometry matrix for later queries.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#abe76a46784b1ebc8ad67a9eec40d369a" title="Generates the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a></code>. The stoichiometry is based on the full, unpartitioned network. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#aeae6d84ef74d88fd2cdf07b82e98a16f">gridfire::DynamicEngine</a>.</p>
@@ -943,8 +946,8 @@ Private Attributes</h2></td></tr>
<p>Gets the dynamic species in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the vector of species identified as "dynamic" or "slow".</dd></dl>
<p>@purpose To allow external queries of the partitioning results.</p>
<p>@how It returns a const reference to the <code>m_dynamic_species</code> member vector.</p>
<dl class="section user"><dt>Purpose</dt><dd>To allow external queries of the partitioning results.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It returns a const reference to the <code>m_dynamic_species</code> member vector.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> must have been called. </dd></dl>
</div>
@@ -974,8 +977,8 @@ Private Attributes</h2></td></tr>
<p>Gets the fast species in the network. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector of species identified as "fast" or "algebraic" by the partitioning.</dd></dl>
<p>@purpose To allow external queries of the partitioning results.</p>
<p>@how It returns a copy of the <code>m_algebraic_species</code> member vector.</p>
<dl class="section user"><dt>Purpose</dt><dd>To allow external queries of the partitioning results.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It returns a copy of the <code>m_algebraic_species</code> member vector.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="#a7d26945df5395b9317552a3989c42d1c" title="Partitions the network into dynamic and algebraic (QSE) groups based on timescales.">partitionNetwork()</a></code> must have been called. </dd></dl>
</div>
@@ -1016,8 +1019,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of the Jacobian matrix at (i_full, j_full).</dd></dl>
<p>@purpose To provide Jacobian entries to an implicit solver.</p>
<p>@how This method directly delegates to the base engine's <code>getJacobianMatrixEntry</code>. It does not currently modify the Jacobian to reflect the QSE algebraic constraints, as these are handled by setting <code>dY/dt = 0</code> in <code>calculateRHSAndEnergy</code>.</p>
<dl class="section user"><dt>Purpose</dt><dd>To provide Jacobian entries to an implicit solver.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This method directly delegates to the base engine's <code>getJacobianMatrixEntry</code>. It does not currently modify the Jacobian to reflect the QSE algebraic constraints, as these are handled by setting <code>dY/dt = 0</code> in <code>calculateRHSAndEnergy</code>.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="#acdf5ad8765290ea2b78170235aea391d" title="Generates the Jacobian matrix for the current state.">generateJacobianMatrix()</a></code> must have been called for the current state. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a05d15ff35a6bc06a2fa7eda19838bd07">gridfire::DynamicEngine</a>.</p>
@@ -1109,7 +1112,7 @@ Private Attributes</h2></td></tr>
<p>Gets the current electron screening model. </p>
<dl class="section return"><dt>Returns</dt><dd>The currently active screening model type.</dd></dl>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#a7bfb4e6fec2f337a1dea69e3d4f1fc82" title="Gets the current electron screening model.">getScreeningModel()</a></code>. </p>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#a7bfb4e6fec2f337a1dea69e3d4f1fc82" title="Gets the current electron screening model.">getScreeningModel()</a></code>. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a7a203f8e0f3a6744ddc912dfbcfdbcc0">gridfire::DynamicEngine</a>.</p>
@@ -1157,8 +1160,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code>std::expected</code> containing a map from <code>Species</code> to their characteristic destruction timescales (s) on success, or a <code>StaleEngineError</code> on failure.</dd></dl>
<p>@purpose To get the timescale for species destruction, which is used as the primary metric for network partitioning.</p>
<p>@how It delegates the calculation to the base engine. For any species identified as algebraic (in QSE), it manually sets their timescale to 0.0.</p>
<dl class="section user"><dt>Purpose</dt><dd>To get the timescale for species destruction, which is used as the primary metric for network partitioning.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It delegates the calculation to the base engine. For any species identified as algebraic (in QSE), it manually sets their timescale to 0.0.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The engine must have a valid QSE cache entry for the given state. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
@@ -1202,7 +1205,7 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index of the species in the base engine's network.</dd></dl>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#a91d32b7197fcb27ee697d5bfde960f3f" title="Gets the index of a species in the full network.">getSpeciesIndex()</a></code>. </p>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#a91d32b7197fcb27ee697d5bfde960f3f" title="Gets the index of a species in the full network.">getSpeciesIndex()</a></code>. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#ad3d56a8b9161b9cc7f4da51f6bf7e8c9">gridfire::DynamicEngine</a>.</p>
@@ -1250,8 +1253,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code>std::expected</code> containing a map from <code>Species</code> to their characteristic timescales (s) on success, or a <code>StaleEngineError</code> on failure.</dd></dl>
<p>@purpose To get the characteristic timescale <code>Y / (dY/dt)</code> for each species.</p>
<p>@how It delegates the calculation to the base engine. For any species identified as algebraic (in QSE), it manually sets their timescale to 0.0 to signify that they equilibrate instantaneously on the timescale of the solver.</p>
<dl class="section user"><dt>Purpose</dt><dd>To get the characteristic timescale <code>Y / (dY/dt)</code> for each species.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It delegates the calculation to the base engine. For any species identified as algebraic (in QSE), it manually sets their timescale to 0.0 to signify that they equilibrate instantaneously on the timescale of the solver.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The engine must have a valid QSE cache entry for the given state. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
@@ -1300,8 +1303,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Stoichiometric coefficient for the species in the reaction.</dd></dl>
<p>@purpose To query the stoichiometric relationship between a species and a reaction.</p>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#a510b920dea726aef859ac1f6d051807e" title="Gets an entry from the stoichiometry matrix.">getStoichiometryMatrixEntry()</a></code>.</p>
<dl class="section user"><dt>Purpose</dt><dd>To query the stoichiometric relationship between a species and a reaction.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#a510b920dea726aef859ac1f6d051807e" title="Gets an entry from the stoichiometry matrix.">getStoichiometryMatrixEntry()</a></code>.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd><code><a class="el" href="#abe76a46784b1ebc8ad67a9eec40d369a" title="Generates the stoichiometry matrix for the network.">generateStoichiometryMatrix()</a></code> must have been called. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#afa108dd5227dbb1045e90d7b3bd8b84f">gridfire::DynamicEngine</a>.</p>
@@ -1356,8 +1359,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The index of the pool with the largest (slowest) mean destruction timescale.</dd></dl>
<p>@purpose To identify the core set of dynamic species that will not be part of any QSE group.</p>
<p>@how It calculates the geometric mean of the destruction timescales for all species in each pool and returns the index of the pool with the maximum mean timescale. </p>
<dl class="section user"><dt>Purpose</dt><dd>To identify the core set of dynamic species that will not be part of any QSE group.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It calculates the geometric mean of the destruction timescales for all species in each pool and returns the index of the pool with the maximum mean timescale. </dd></dl>
</div>
</div>
@@ -1392,8 +1395,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the engine is stale, <code>false</code> otherwise.</dd></dl>
<p>@purpose To determine if <code><a class="el" href="#a6bee75b5a6e508e6eebf83f0d48c50b8" title="Updates the internal state of the engine, performing partitioning and QSE equilibration.">update()</a></code> needs to be called.</p>
<p>@how It creates a <code><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html" title="Key struct for the QSE abundance cache.">QSECacheKey</a></code> from the <code>netIn</code> data and checks for its existence in the <code>m_qse_abundance_cache</code>. A cache miss indicates the engine is stale because it does not have a valid QSE partition for the current conditions. It also queries the base engine's <code><a class="el" href="#ae7847959fc5af2b83f5446dd73567b46" title="Checks if the engine&#39;s internal state is stale relative to the provided conditions.">isStale()</a></code> method. </p>
<dl class="section user"><dt>Purpose</dt><dd>To determine if <code><a class="el" href="#a6bee75b5a6e508e6eebf83f0d48c50b8" title="Updates the internal state of the engine, performing partitioning and QSE equilibration.">update()</a></code> needs to be called.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It creates a <code><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html" title="Key struct for the QSE abundance cache.">QSECacheKey</a></code> from the <code>netIn</code> data and checks for its existence in the <code>m_qse_abundance_cache</code>. A cache miss indicates the engine is stale because it does not have a valid QSE partition for the current conditions. It also queries the base engine's <code><a class="el" href="#ae7847959fc5af2b83f5446dd73567b46" title="Checks if the engine&#39;s internal state is stale relative to the provided conditions.">isStale()</a></code> method. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a942e65ced17ca602482cc42e469d6398">gridfire::DynamicEngine</a>.</p>
@@ -1430,7 +1433,7 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances corresponding to the species order in the base engine.</dd></dl>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#aada497e8df74a295fdf5df7d7cdf64e0" title="Maps a NetIn struct to a molar abundance vector for the full network.">mapNetInToMolarAbundanceVector()</a></code>. </p>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#aada497e8df74a295fdf5df7d7cdf64e0" title="Maps a NetIn struct to a molar abundance vector for the full network.">mapNetInToMolarAbundanceVector()</a></code>. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a55f1b7e5ebe2840e1d7c54665ca5411a">gridfire::DynamicEngine</a>.</p>
@@ -1478,8 +1481,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of vectors of species indices, where each inner vector represents a timescale pool.</dd></dl>
<p>@purpose To group species into "pools" based on their destruction timescales.</p>
<p>@how It retrieves all species destruction timescales from the base engine, sorts them, and then iterates through the sorted list, creating a new pool whenever it detects a gap between consecutive timescales that is larger than a predefined threshold (e.g., a factor of 100). </p>
<dl class="section user"><dt>Purpose</dt><dd>To group species into "pools" based on their destruction timescales.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It retrieves all species destruction timescales from the base engine, sorts them, and then iterates through the sorted list, creating a new pool whenever it detects a gap between consecutive timescales that is larger than a predefined threshold (e.g., a factor of 100). </dd></dl>
</div>
</div>
@@ -1505,8 +1508,8 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@purpose A convenience overload for <code>partitionNetwork</code>.</p>
<p>@how It unpacks the <code>netIn</code> struct into <code>Y</code>, <code>T9</code>, and <code>rho</code> and then calls the primary <code>partitionNetwork</code> method. </p>
<dl class="section user"><dt>Purpose</dt><dd>A convenience overload for <code>partitionNetwork</code>.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It unpacks the <code>netIn</code> struct into <code>Y</code>, <code>T9</code>, and <code>rho</code> and then calls the primary <code>partitionNetwork</code> method. </dd></dl>
</div>
</div>
@@ -1543,7 +1546,7 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@purpose To perform the core partitioning logic that identifies which species are "fast" (and can be treated algebraically) and which are "slow" (and must be integrated dynamically).</p>
<dl class="section user"><dt>Purpose</dt><dd>To perform the core partitioning logic that identifies which species are "fast" (and can be treated algebraically) and which are "slow" (and must be integrated dynamically).</dd></dl>
<p>@how</p><ol type="1">
<li><b><code>partitionByTimescale</code></b>: Gets species destruction timescales from the base engine, sorts them, and looks for large gaps to create timescale "pools".</li>
<li><b><code>identifyMeanSlowestPool</code></b>: The pool with the slowest average timescale is designated as the core set of dynamic species.</li>
@@ -1587,8 +1590,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structgridfire_1_1_priming_report.html" title="Captures the result of a network priming operation.">PrimingReport</a></code> struct containing information about the priming process.</dd></dl>
<p>@purpose To prepare the network for ignition or specific pathway studies.</p>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#a05730ced13ac5331060ca011f0da6235" title="Primes the engine with a specific species.">primeEngine()</a></code>. The multiscale view does not currently interact with the priming process. </p>
<dl class="section user"><dt>Purpose</dt><dd>To prepare the network for ignition or specific pathway studies.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#a05730ced13ac5331060ca011f0da6235" title="Primes the engine with a specific species.">primeEngine()</a></code>. The multiscale view does not currently interact with the priming process. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a21c34f59c080a853fafa38a25175124e">gridfire::DynamicEngine</a>.</p>
@@ -1624,8 +1627,8 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@purpose To modify the reaction network.</p>
<p>@how This operation is not supported by the <code><a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html" title="An engine view that partitions the reaction network into multiple groups based on timescales.">MultiscalePartitioningEngineView</a></code> as it would invalidate the partitioning logic. It logs a critical error and throws an exception. <a class="el" href="classgridfire_1_1_network.html">Network</a> modifications should be done on the base engine before it is wrapped by this view.</p>
<dl class="section user"><dt>Purpose</dt><dd>To modify the reaction network.</dd></dl>
<dl class="section user"><dt>How</dt><dd>This operation is not supported by the <code><a class="el" href="classgridfire_1_1_multiscale_partitioning_engine_view.html" title="An engine view that partitions the reaction network into multiple groups based on timescales.">MultiscalePartitioningEngineView</a></code> as it would invalidate the partitioning logic. It logs a critical error and throws an exception. <a class="el" href="classgridfire_1_1_network.html">Network</a> modifications should be done on the base engine before it is wrapped by this view.</dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1_unable_to_set_network_reactions_error.html">exceptions::UnableToSetNetworkReactionsError</a></td><td>Always. </td></tr>
@@ -1667,7 +1670,7 @@ Private Attributes</h2></td></tr>
</table>
</dd>
</dl>
<p>@how This method delegates directly to the base engine's <code><a class="el" href="#a1a0c0a0ade632eb10f0eecab828a059f" title="Sets the electron screening model.">setScreeningModel()</a></code>. </p>
<dl class="section user"><dt>How</dt><dd>This method delegates directly to the base engine's <code><a class="el" href="#a1a0c0a0ade632eb10f0eecab828a059f" title="Sets the electron screening model.">setScreeningModel()</a></code>. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1_dynamic_engine.html#a3fb44b6f55563a2f590f31916528f2bd">gridfire::DynamicEngine</a>.</p>
@@ -1715,8 +1718,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of molar abundances for the algebraic species.</dd></dl>
<p>@purpose To find the equilibrium abundances of the algebraic species that satisfy the QSE conditions.</p>
<p>@how It uses the Levenberg-Marquardt algorithm via Eigen's <code>LevenbergMarquardt</code> class. The problem is defined by the <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html" title="Functor for solving QSE abundances using Eigen&#39;s nonlinear optimization.">EigenFunctor</a></code> which computes the residuals and Jacobian for the QSE equations.</p>
<dl class="section user"><dt>Purpose</dt><dd>To find the equilibrium abundances of the algebraic species that satisfy the QSE conditions.</dd></dl>
<dl class="section user"><dt>How</dt><dd>It uses the Levenberg-Marquardt algorithm via Eigen's <code>LevenbergMarquardt</code> class. The problem is defined by the <code><a class="el" href="structgridfire_1_1_multiscale_partitioning_engine_view_1_1_eigen_functor.html" title="Functor for solving QSE abundances using Eigen&#39;s nonlinear optimization.">EigenFunctor</a></code> which computes the residuals and Jacobian for the QSE equations.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The input state (Y_full, T9, rho) must be a valid physical state. </dd></dl>
<dl class="section post"><dt>Postcondition</dt><dd>The algebraic species in the QSE cache are updated with the new equilibrium abundances. </dd></dl>
@@ -1753,7 +1756,7 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The new composition after QSE species have been brought to equilibrium.</dd></dl>
<p>@purpose This is the main entry point for preparing the multiscale engine for use. It triggers the network partitioning and solves for the initial QSE abundances, caching the result.</p>
<dl class="section user"><dt>Purpose</dt><dd>This is the main entry point for preparing the multiscale engine for use. It triggers the network partitioning and solves for the initial QSE abundances, caching the result.</dd></dl>
<p>@how</p><ol type="1">
<li>It first checks the QSE cache. If a valid entry already exists for the input state, it returns the input composition, as no work is needed.</li>
<li>If the cache misses, it calls <code><a class="el" href="#a4bc879246c6fbd8633b05052858df51d" title="Equilibrates the network by partitioning and solving for QSE abundances.">equilibrateNetwork()</a></code>.</li>
@@ -1817,8 +1820,8 @@ Private Attributes</h2></td></tr>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A vector of validated QSE groups that meet the flux criteria.</dd></dl>
<p>@purpose To ensure that a candidate QSE group is truly in equilibrium by checking that the reaction fluxes <em>within</em> the group are much larger than the fluxes <em>leaving</em> the group.</p>
<p>@how For each candidate group, it calculates the sum of all internal reaction fluxes and the sum of all external (bridge) reaction fluxes. If the ratio of internal to external flux exceeds a configurable threshold, the group is considered valid and is added to the returned vector. </p>
<dl class="section user"><dt>Purpose</dt><dd>To ensure that a candidate QSE group is truly in equilibrium by checking that the reaction fluxes <em>within</em> the group are much larger than the fluxes <em>leaving</em> the group.</dd></dl>
<dl class="section user"><dt>How</dt><dd>For each candidate group, it calculates the sum of all internal reaction fluxes and the sum of all external (bridge) reaction fluxes. If the ratio of internal to external flux exceeds a configurable threshold, the group is considered valid and is added to the returned vector. </dd></dl>
</div>
</div>
@@ -2060,7 +2063,7 @@ Private Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Cache for QSE abundances based on T9, rho, and Y. </p>
<p>@purpose This is the core of the caching mechanism. It stores the results of QSE solves to avoid re-computation. The key is a <code><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html" title="Key struct for the QSE abundance cache.">QSECacheKey</a></code> which hashes the thermodynamic state, and the value is the vector of solved molar abundances for the algebraic species. </p>
<dl class="section user"><dt>Purpose</dt><dd>This is the core of the caching mechanism. It stores the results of QSE solves to avoid re-computation. The key is a <code><a class="el" href="structgridfire_1_1_q_s_e_cache_key.html" title="Key struct for the QSE abundance cache.">QSECacheKey</a></code> which hashes the thermodynamic state, and the value is the vector of solved molar abundances for the algebraic species. </dd></dl>
</div>
</div>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -182,17 +182,22 @@ Public Member Functions</h2></td></tr>
<tr class="memdesc:a3c657b82a0117118a4bb0ce7f624ae0c inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the screening model from the base engine. <br /></td></tr>
<tr class="separator:a3c657b82a0117118a4bb0ce7f624ae0c inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_abfee22688617ffe91c69be93049c89b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#abfee22688617ffe91c69be93049c89b3">getSpeciesIndex</a> (const fourdst::atomic::Species &amp;species) const override</td></tr>
<tr class="memdesc:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index of a species in the network. <br /></td></tr>
<tr class="separator:abfee22688617ffe91c69be93049c89b3 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_a72789c1c3379594b65b560da50192de2"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#a72789c1c3379594b65b560da50192de2">mapNetInToMolarAbundanceVector</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) const override</td></tr>
<tr class="memdesc:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> object to a vector of molar abundances. <br /></td></tr>
<tr class="separator:a72789c1c3379594b65b560da50192de2 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view" id="r_a13033abd3b44904f98b58c93e22da460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_priming_report.html">PrimingReport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_defined_engine_view.html#a13033abd3b44904f98b58c93e22da460">primeEngine</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prime the engine with initial conditions. <br /></td></tr>
<tr class="separator:a13033abd3b44904f98b58c93e22da460 inherit pub_methods_classgridfire_1_1_defined_engine_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_dynamic_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_dynamic_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_dynamic_engine.html">gridfire::DynamicEngine</a></td></tr>
<tr class="memitem:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a818d942efa843959393e4eed3263b7e7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a818d942efa843959393e4eed3263b7e7">generateJacobianMatrix</a> (const std::vector&lt; double &gt; &amp;Y_dynamic, double T9, double rho, const <a class="el" href="namespacegridfire.html#a898dfe22579e649935645cbd6f073178">SparsityPattern</a> &amp;sparsityPattern) const</td></tr>
<tr class="separator:a818d942efa843959393e4eed3263b7e7 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a04317b66ef14d519264bc30ee69f5bf9"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a04317b66ef14d519264bc30ee69f5bf9">getDepth</a> () const</td></tr>
<tr class="memdesc:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the depth of the network. <br /></td></tr>
<tr class="separator:a04317b66ef14d519264bc30ee69f5bf9 inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine" id="r_a4e2c8b896661b7a89beffe0066cb21cf"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_dynamic_engine.html#a4e2c8b896661b7a89beffe0066cb21cf">rebuild</a> (const fourdst::composition::Composition &amp;comp, <a class="el" href="namespacegridfire.html#a3b1f70dc7ff5b501809330a97079e4f6">BuildDepthType</a> depth)</td></tr>
<tr class="memdesc:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rebuild the network with a specified depth. <br /></td></tr>
<tr class="separator:a4e2c8b896661b7a89beffe0066cb21cf inherit pub_methods_classgridfire_1_1_dynamic_engine"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1_engine"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1_engine')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1_engine.html">gridfire::Engine</a></td></tr>
<tr class="memitem:a2e7970bed2100699f226f4141d5db037 inherit pub_methods_classgridfire_1_1_engine" id="r_a2e7970bed2100699f226f4141d5db037"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1_engine.html#a2e7970bed2100699f226f4141d5db037">~Engine</a> ()=default</td></tr>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -105,13 +105,17 @@ $(function(){initNavTree('classgridfire_1_1solver_1_1_direct_network_solver.html
<p>This is the complete list of members for <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a0e8a4b8ef656e0b084d11bea982e412a">evaluate</a>(const NetIn &amp;netIn) override</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a053c9c1343af8f30ced69707e1d899e3">describe_callback_context</a>() const override</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a0e8a4b8ef656e0b084d11bea982e412a">evaluate</a>(const NetIn &amp;netIn) override</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a44fbc45faa9e4b6864ac6b81282941b5">m_callback</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a2cc12e737a753a42b72a45be3fbfa8ab">m_config</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a093aa89fd23c2fe03266e286871c7079">m_logger</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(DynamicEngine &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a6bb0738eef5669b3ad83a3c65a0d1e96">set_callback</a>(const std::any &amp;callback) override</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a171bd0c8c292da79ed41f6653fdd47df">TimestepCallback</a> typedef</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html">gridfire::solver::DirectNetworkSolver</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318">~NetworkSolverStrategy</a>()=default</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318">~NetworkSolverStrategy</a>()=default</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -101,6 +101,7 @@ $(function(){initNavTree('classgridfire_1_1solver_1_1_direct_network_solver.html
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgridfire_1_1solver_1_1_direct_network_solver-members.html">List of all members</a> </div>
@@ -128,13 +129,29 @@ Classes</h2></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor for calculating the Jacobian matrix. <a href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_jacobian_functor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html">RHSManager</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functor for calculating the right-hand side of the ODEs. <a href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html">TimestepContext</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context for the timestep callback function for the <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html" title="A network solver that directly integrates the reaction network ODEs.">DirectNetworkSolver</a>. <a href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a171bd0c8c292da79ed41f6653fdd47df" id="r_a171bd0c8c292da79ed41f6653fdd47df"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a171bd0c8c292da79ed41f6653fdd47df">TimestepCallback</a> = std::function&lt;void(const <a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html">TimestepContext</a>&amp; context)&gt;</td></tr>
<tr class="memdesc:a171bd0c8c292da79ed41f6653fdd47df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type alias for a timestep callback function. <br /></td></tr>
<tr class="separator:a171bd0c8c292da79ed41f6653fdd47df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0e8a4b8ef656e0b084d11bea982e412a" id="r_a0e8a4b8ef656e0b084d11bea982e412a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1_net_out.html">NetOut</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0e8a4b8ef656e0b084d11bea982e412a">evaluate</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn) override</td></tr>
<tr class="memdesc:a0e8a4b8ef656e0b084d11bea982e412a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates the network for a given timestep using direct integration. <br /></td></tr>
<tr class="separator:a0e8a4b8ef656e0b084d11bea982e412a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bb0738eef5669b3ad83a3c65a0d1e96" id="r_a6bb0738eef5669b3ad83a3c65a0d1e96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6bb0738eef5669b3ad83a3c65a0d1e96">set_callback</a> (const std::any &amp;callback) override</td></tr>
<tr class="memdesc:a6bb0738eef5669b3ad83a3c65a0d1e96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the callback function to be called at the end of each timestep. <br /></td></tr>
<tr class="separator:a6bb0738eef5669b3ad83a3c65a0d1e96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a053c9c1343af8f30ced69707e1d899e3" id="r_a053c9c1343af8f30ced69707e1d899e3"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a053c9c1343af8f30ced69707e1d899e3">describe_callback_context</a> () const override</td></tr>
<tr class="memdesc:a053c9c1343af8f30ced69707e1d899e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describe the context that will be passed to the callback function. <br /></td></tr>
<tr class="separator:a053c9c1343af8f30ced69707e1d899e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1solver_1_1_network_solver_strategy"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1solver_1_1_network_solver_strategy')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a></td></tr>
<tr class="memitem:a01cbbec0eb5c3a60f50da38cdaf66505 inherit pub_methods_classgridfire_1_1solver_1_1_network_solver_strategy" id="r_a01cbbec0eb5c3a60f50da38cdaf66505"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a> (<a class="el" href="classgridfire_1_1_dynamic_engine.html">DynamicEngine</a> &amp;engine)</td></tr>
<tr class="memdesc:a01cbbec0eb5c3a60f50da38cdaf66505 inherit pub_methods_classgridfire_1_1solver_1_1_network_solver_strategy"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for the <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html" title="Abstract base class for network solver strategies.">NetworkSolverStrategy</a>. <br /></td></tr>
@@ -157,6 +174,8 @@ Private Attributes</h2></td></tr>
<tr class="memitem:a2cc12e737a753a42b72a45be3fbfa8ab" id="r_a2cc12e737a753a42b72a45be3fbfa8ab"><td class="memItemLeft" align="right" valign="top">Config &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2cc12e737a753a42b72a45be3fbfa8ab">m_config</a> = Config::getInstance()</td></tr>
<tr class="memdesc:a2cc12e737a753a42b72a45be3fbfa8ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration instance. <br /></td></tr>
<tr class="separator:a2cc12e737a753a42b72a45be3fbfa8ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44fbc45faa9e4b6864ac6b81282941b5" id="r_a44fbc45faa9e4b6864ac6b81282941b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a171bd0c8c292da79ed41f6653fdd47df">TimestepCallback</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a44fbc45faa9e4b6864ac6b81282941b5">m_callback</a></td></tr>
<tr class="separator:a44fbc45faa9e4b6864ac6b81282941b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -171,7 +190,56 @@ Additional Inherited Members</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A network solver that directly integrates the reaction network ODEs. </p>
<p>This solver uses a Runge-Kutta method to directly integrate the reaction network ODEs. It is simpler than the QSENetworkSolver, but it can be less efficient for stiff networks with disparate timescales. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a171bd0c8c292da79ed41f6653fdd47df" name="a171bd0c8c292da79ed41f6653fdd47df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a171bd0c8c292da79ed41f6653fdd47df">&#9670;&#160;</a></span>TimestepCallback</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="#a171bd0c8c292da79ed41f6653fdd47df">gridfire::solver::DirectNetworkSolver::TimestepCallback</a> = std::function&lt;void(const <a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html">TimestepContext</a>&amp; context)&gt;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Type alias for a timestep callback function. </p>
<p>The type alias for the callback function that will be called at the end of each timestep. Type alias for a timestep callback function. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a053c9c1343af8f30ced69707e1d899e3" name="a053c9c1343af8f30ced69707e1d899e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a053c9c1343af8f30ced69707e1d899e3">&#9670;&#160;</a></span>describe_callback_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt; gridfire::solver::DirectNetworkSolver::describe_callback_context </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Describe the context that will be passed to the callback function. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector of tuples, each containing a string for the parameter's name and a string for its type.</dd></dl>
<p>This method provides a description of the context that will be passed to the callback function. The intent is that an end user can investigate the context and use this information to craft their own callback function. </p>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ae09169769774f17df8701c42a64ed656">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<a id="a0e8a4b8ef656e0b084d11bea982e412a" name="a0e8a4b8ef656e0b084d11bea982e412a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e8a4b8ef656e0b084d11bea982e412a">&#9670;&#160;</a></span>evaluate()</h2>
@@ -206,9 +274,67 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ace539b0482db171845ff1bd38d76b70f">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<a id="a6bb0738eef5669b3ad83a3c65a0d1e96" name="a6bb0738eef5669b3ad83a3c65a0d1e96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bb0738eef5669b3ad83a3c65a0d1e96">&#9670;&#160;</a></span>set_callback()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void gridfire::solver::DirectNetworkSolver::set_callback </td>
<td>(</td>
<td class="paramtype">const std::any &amp;</td> <td class="paramname"><span class="paramname"><em>callback</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the callback function to be called at the end of each timestep. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">callback</td><td>The callback function to be called at the end of each timestep.</td></tr>
</table>
</dd>
</dl>
<p>This function allows the user to set a callback function that will be called at the end of each timestep. The callback function will receive a <a class="el" href="structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html" title="Context for the timestep callback function for the DirectNetworkSolver.">gridfire::solver::DirectNetworkSolver::TimestepContext</a> object. </p>
<p>Implements <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a4d97ee85933d5e5f90d4194bb021a1dc">gridfire::solver::NetworkSolverStrategy&lt; DynamicEngine &gt;</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a44fbc45faa9e4b6864ac6b81282941b5" name="a44fbc45faa9e4b6864ac6b81282941b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44fbc45faa9e4b6864ac6b81282941b5">&#9670;&#160;</a></span>m_callback</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="#a171bd0c8c292da79ed41f6653fdd47df">TimestepCallback</a> gridfire::solver::DirectNetworkSolver::m_callback</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2cc12e737a753a42b72a45be3fbfa8ab" name="a2cc12e737a753a42b72a45be3fbfa8ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cc12e737a753a42b72a45be3fbfa8ab">&#9670;&#160;</a></span>m_config</h2>

View File

@@ -2,7 +2,12 @@ var classgridfire_1_1solver_1_1_direct_network_solver =
[
[ "JacobianFunctor", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_jacobian_functor.html", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_jacobian_functor" ],
[ "RHSManager", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager.html", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_r_h_s_manager" ],
[ "TimestepContext", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context.html", "structgridfire_1_1solver_1_1_direct_network_solver_1_1_timestep_context" ],
[ "TimestepCallback", "classgridfire_1_1solver_1_1_direct_network_solver.html#a171bd0c8c292da79ed41f6653fdd47df", null ],
[ "describe_callback_context", "classgridfire_1_1solver_1_1_direct_network_solver.html#a053c9c1343af8f30ced69707e1d899e3", null ],
[ "evaluate", "classgridfire_1_1solver_1_1_direct_network_solver.html#a0e8a4b8ef656e0b084d11bea982e412a", null ],
[ "set_callback", "classgridfire_1_1solver_1_1_direct_network_solver.html#a6bb0738eef5669b3ad83a3c65a0d1e96", null ],
[ "m_callback", "classgridfire_1_1solver_1_1_direct_network_solver.html#a44fbc45faa9e4b6864ac6b81282941b5", null ],
[ "m_config", "classgridfire_1_1solver_1_1_direct_network_solver.html#a2cc12e737a753a42b72a45be3fbfa8ab", null ],
[ "m_logger", "classgridfire_1_1solver_1_1_direct_network_solver.html#a093aa89fd23c2fe03266e286871c7079", null ]
];

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -105,9 +105,11 @@ $(function(){initNavTree('classgridfire_1_1solver_1_1_network_solver_strategy.ht
<p>This is the complete list of members for <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ace539b0482db171845ff1bd38d76b70f">evaluate</a>(const NetIn &amp;netIn)=0</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(EngineT &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ae09169769774f17df8701c42a64ed656">describe_callback_context</a>() const =0</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#ace539b0482db171845ff1bd38d76b70f">evaluate</a>(const NetIn &amp;netIn)=0</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8">m_engine</a></td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505">NetworkSolverStrategy</a>(EngineT &amp;engine)</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a4d97ee85933d5e5f90d4194bb021a1dc">set_callback</a>(const std::any &amp;callback)=0</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318">~NetworkSolverStrategy</a>()=default</td><td class="entry"><a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy&lt; EngineT &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
@@ -123,6 +123,12 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:ace539b0482db171845ff1bd38d76b70f" id="r_ace539b0482db171845ff1bd38d76b70f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="structgridfire_1_1_net_out.html">NetOut</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ace539b0482db171845ff1bd38d76b70f">evaluate</a> (const <a class="el" href="structgridfire_1_1_net_in.html">NetIn</a> &amp;netIn)=0</td></tr>
<tr class="memdesc:ace539b0482db171845ff1bd38d76b70f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates the network for a given timestep. <br /></td></tr>
<tr class="separator:ace539b0482db171845ff1bd38d76b70f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d97ee85933d5e5f90d4194bb021a1dc" id="r_a4d97ee85933d5e5f90d4194bb021a1dc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4d97ee85933d5e5f90d4194bb021a1dc">set_callback</a> (const std::any &amp;callback)=0</td></tr>
<tr class="memdesc:a4d97ee85933d5e5f90d4194bb021a1dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the callback function to be called at the end of each timestep. <br /></td></tr>
<tr class="separator:a4d97ee85933d5e5f90d4194bb021a1dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09169769774f17df8701c42a64ed656" id="r_ae09169769774f17df8701c42a64ed656"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae09169769774f17df8701c42a64ed656">describe_callback_context</a> () const =0</td></tr>
<tr class="memdesc:ae09169769774f17df8701c42a64ed656"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describe the context that will be passed to the callback function. <br /></td></tr>
<tr class="separator:ae09169769774f17df8701c42a64ed656"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
@@ -206,6 +212,39 @@ template&lt;typename EngineT&gt; </div>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae09169769774f17df8701c42a64ed656" name="ae09169769774f17df8701c42a64ed656"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae09169769774f17df8701c42a64ed656">&#9670;&#160;</a></span>describe_callback_context()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename EngineT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual std::vector&lt; std::tuple&lt; std::string, std::string &gt; &gt; <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy</a>&lt; EngineT &gt;::describe_callback_context </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Describe the context that will be passed to the callback function. </p>
<dl class="section return"><dt>Returns</dt><dd>A vector of tuples, each containing a string for the parameter's name and a string for its type.</dd></dl>
<p>This method should be overridden by derived classes to provide a description of the context that will be passed to the callback function. The intent of this method is that an end user can investigate the context that will be passed to the callback function, and use this information to craft their own callback function. </p>
<p>Implemented in <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a053c9c1343af8f30ced69707e1d899e3">gridfire::solver::DirectNetworkSolver</a>, and <a class="el" href="class_py_dynamic_network_solver_strategy.html#a147a0a543268427a5930143902217ac3">PyDynamicNetworkSolverStrategy</a>.</p>
</div>
</div>
<a id="ace539b0482db171845ff1bd38d76b70f" name="ace539b0482db171845ff1bd38d76b70f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace539b0482db171845ff1bd38d76b70f">&#9670;&#160;</a></span>evaluate()</h2>
@@ -242,6 +281,44 @@ template&lt;typename EngineT&gt; </div>
<p>Implemented in <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a0e8a4b8ef656e0b084d11bea982e412a">gridfire::solver::DirectNetworkSolver</a>, and <a class="el" href="class_py_dynamic_network_solver_strategy.html#a2095abb83ed6229ebb27b4883cec51c4">PyDynamicNetworkSolverStrategy</a>.</p>
</div>
</div>
<a id="a4d97ee85933d5e5f90d4194bb021a1dc" name="a4d97ee85933d5e5f90d4194bb021a1dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d97ee85933d5e5f90d4194bb021a1dc">&#9670;&#160;</a></span>set_callback()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename EngineT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void <a class="el" href="classgridfire_1_1solver_1_1_network_solver_strategy.html">gridfire::solver::NetworkSolverStrategy</a>&lt; EngineT &gt;::set_callback </td>
<td>(</td>
<td class="paramtype">const std::any &amp;</td> <td class="paramname"><span class="paramname"><em>callback</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel pure-virtual">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>set the callback function to be called at the end of each timestep. </p>
<p>This function allows the user to set a callback function that will be called at the end of each timestep. The callback function will receive a <a class="el" href="namespacegridfire_1_1solver.html">gridfire::solver</a>::&lt;SOMESOLVER&gt;::TimestepContext object. Note that depending on the solver, this context may contain different information. Further, the exact signature of the callback function is left up to each solver. Every solver should provide a type or type alias TimestepCallback that defines the signature of the callback function so that the user can easily get that type information.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">callback</td><td>The callback function to be called at the end of each timestep. </td></tr>
</table>
</dd>
</dl>
<p>Implemented in <a class="el" href="classgridfire_1_1solver_1_1_direct_network_solver.html#a6bb0738eef5669b3ad83a3c65a0d1e96">gridfire::solver::DirectNetworkSolver</a>, and <a class="el" href="class_py_dynamic_network_solver_strategy.html#a112a7babc03858a69d6994a7155370d3">PyDynamicNetworkSolverStrategy</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>

View File

@@ -2,6 +2,8 @@ var classgridfire_1_1solver_1_1_network_solver_strategy =
[
[ "NetworkSolverStrategy", "classgridfire_1_1solver_1_1_network_solver_strategy.html#a01cbbec0eb5c3a60f50da38cdaf66505", null ],
[ "~NetworkSolverStrategy", "classgridfire_1_1solver_1_1_network_solver_strategy.html#a1693dc93f63599c89587d729aca8e318", null ],
[ "describe_callback_context", "classgridfire_1_1solver_1_1_network_solver_strategy.html#ae09169769774f17df8701c42a64ed656", null ],
[ "evaluate", "classgridfire_1_1solver_1_1_network_solver_strategy.html#ace539b0482db171845ff1bd38d76b70f", null ],
[ "set_callback", "classgridfire_1_1solver_1_1_network_solver_strategy.html#a4d97ee85933d5e5f90d4194bb021a1dc", null ],
[ "m_engine", "classgridfire_1_1solver_1_1_network_solver_strategy.html#a724924d94eaf82b67d9988a55c3261e8", null ]
];

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

View File

@@ -29,7 +29,7 @@
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">GridFire<span id="projectnumber">&#160;0.0.1a</span>
<div id="projectname">GridFire<span id="projectnumber">&#160;0.6.0</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>

Some files were not shown because too many files have changed in this diff Show More