Abstract base class for managers of CCE worldtube data that is provided in large time-series chunks, especially the type provided by input h5 files. BoundaryTags is a tmpl::list of tags on the worldtube boundary.
More...
template<typename BoundaryTags>
class Cce::WorldtubeDataManager< BoundaryTags >
Abstract base class for managers of CCE worldtube data that is provided in large time-series chunks, especially the type provided by input h5 files. BoundaryTags is a tmpl::list of tags on the worldtube boundary.
Details
The methods that are required to be overridden in the derived classes are:
- WorldtubeDataManager::populate_hypersurface_boundary_data(): updates the Variables passed by pointer to contain correct boundary data for the time value passed in. This function should update all of the tags in Tags::characteristic_worldtube_boundary_tags<Tags::BoundaryValue>.
- WorldtubeDataManager::get_clone(): clone function to obtain a std::unique_ptr of the base WorldtubeDataManager, needed to pass around the factory-created object.
- WorldtubeDataManager::get_l_max(): The override should return the l_max that it computes for the collocation data calculated during WorldtubeDataManager::populate_hypersurface_boundary_data().
- WorldtubeBufferUpdater::get_time_span(): The override should return the std::pair of indices that represent the start and end point of the underlying data source. This is primarily used for monitoring the frequency and size of the buffer updates.
template<typename BoundaryTags>
Use interpolator in place of the one supplied at construction when building the boundary value of Du<Dr<BondiJ>>.
Details
That boundary value is consumed only by the initial-data generator, which may want a different time-interpolation order from the one the evolution runs with. A manager that does not produce Du<Dr<BondiJ>> at all cannot honor the request, so rather than drop it silently the default implementation aborts; nullptr (nothing was asked for) is always accepted.
Reimplemented in Cce::BondiWorldtubeDataManager.