|
SpECTRE
v2025.08.19
|
Holds all data necessary for a single horizon find. More...
#include <Storage.hpp>
Public Member Functions | |
| void | pup (PUP::er &p) |
Public Attributes | |
| std::unordered_map< ElementId< 3 >, VolumeVariables< Fr > > | all_volume_variables |
Map between ElementIds and the volume variables from that element. | |
| std::vector< ElementId< 3 > > | element_order {} |
| Elements in which we have found points to interpolate to in previous iterations, to try first before searching all elements. More... | |
| Iteration< Fr > | current_iteration |
The Iteration data for the current fast flow iteration. | |
| ylm::Strahlkorper< Fr > | previous_iteration_surface |
| The previous iteration surface, used if interpolation fails. | |
| Destination | destination {} |
The ah::Destination for this horizon find. | |
| bool | time_is_ready = false |
| Whether we have checked if the functions of time are up to date for this horizon find. | |
Holds all data necessary for a single horizon find.
This includes volume variables which persist for the entire horizon find, and also interpolated variables that are updated for each iteration.
| std::vector<ElementId<3> > ah::Storage::SingleTimeStorage< Fr >::element_order {} |
Elements in which we have found points to interpolate to in previous iterations, to try first before searching all elements.
This is not only a performance optimization, but also important for robustness. If we try to interpolate from elements in a different order in each iteration, then points that lie directly on element boundaries can fluctuate in interpolated value, preventing convergence (see https://github.com/sxs-collaboration/spectre/issues/3899).